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)
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)