def show():
    #Data
    saveDir = r"\\vietsap002\projects\R6\04_WIP\tools\perforce\proxyCheck"
    rootDir = ue.get_content_dir()
    matchType = compile(r'\.uasset\Z')
    allstaticmeshes = ue.get_assets_by_class("StaticMesh")
    uassetfolders = ((root,files) for root, subdirs, files in os.walk(rootDir)
        if any(matchType.search(file) for file in files))
    filterstaticmeshfolder = ((folder, list(
            staticmesh for staticmesh in allstaticmeshes
            if any(match("^{}".format(staticmesh.get_name()), ufile) for ufile in ufiles )))
        for folder, ufiles in uassetfolders)
    staticmeshfolder = ((folder, files) for folder, files in filterstaticmeshfolder if files)
    #UI
    window = SWindow().resize(512,1024).set_title("Export Static Mesh")
    vertical = SVerticalBox()
    #style = ButtonStyle(Normal=SlateBrush(TintColor=SlateColor(SpecifiedColor=FLinearColor(1, 0, 0))))
    #picker = SFilePathPicker(browse_title='Export To', browse_button_style=style, on_path_picked=path_picked)
    button = SButton().set_content(STextBlock().set_text("Export All").set_v_align(2)
    vertical.add_slot(button, v_align=0, h_align=0)
    vertical.add_slot(STextBlock().set_text("Export Folders:"), v_align=0, h_align=0)
    vertical.add_slot(picker, v_align=0, h_align=0)
    vertical.add_slot(STextBlock().set_text("Static Mesh Folders:"), v_align=0, h_align=0)
    for folder, ufiles in staticmeshfolder:
        button = SButton().set_content(STextBlock().set_text(os.path.relpath(folder, rootDir))).set_v_align(2)
        button.bind_on_clicked(partial(export, ufiles, saveDir))
        #vertical.add_slot(button, v_align=2, h_align=2)
        vertical.add_slot(button, v_align=0, h_align=0)
    window.set_content(vertical)
    #window.set_modal(True)
show()
def export_assets_by_class(className, filterPath=["Game"], savePath=None):
    staticMeshes = [
        o for o in ue.get_assets_by_class(className)
        if all((filterName in o.get_path_name() for filterName in filterPath))
    ]
    if not savePath:
        savePath = ue.open_directory_dialog("")
    if savePath:
        ue.export_assets(staticMeshes, savePath)
 def getStaticFolderMeshData(self, rootDir):
     matchType = compile(r'\.uasset\Z')
     allstaticmeshes = ue.get_assets_by_class("StaticMesh")
     uassetfolders = ((root, files)
                      for root, subdirs, files in os.walk(rootDir) if any(
                          matchType.search(file) for file in files))
     filterstaticmeshfolder = ((
         folder,
         list(staticmesh for staticmesh in allstaticmeshes if any(
             match("^{}".format(staticmesh.get_name()), ufile)
             for ufile in ufiles))) for folder, ufiles in uassetfolders)
     return ((folder, files) for folder, files in filterstaticmeshfolder
             if files)
Example #4
0
def WBPall():
    try:
        filename = unreal_engine.save_file_dialog('Save a Text file', '', '',
                                                  'TXT|*.txt')[0]
        # 클래스 네임으로 가져온다
        wbp = ue.get_assets_by_class('WidgetBlueprint')
        settext = []
        count = 0
        startline = '위젯블루프린트이름\t위젯오브젝트이름\t문자열\t폰트이름\tLocalKey\tLocalNameSpace\t기획 로컬 체크\t코드제어 여부\t비고\n'
        settext.append(startline)

        for wb in wbp:
            try:
                ue.log('{0} SaveText : {1}'.format(count, wb.get_name()))
                for i in WBAssetObj(wb):
                    settext.append(i)
            except:
                ue.log('Error!! : {0}'.format(wb.get_name()))
            count = count + 1
        #텍스트파일 생성
        TextwriteAll(settext, filename)
    except:
        ue.log('### 저장을 취소하였습니다###')
 def exportAll(self):
     self.export(ue.get_assets_by_class("StaticMesh"), self._exportFolder)