参考:
https://www.bilibili.com/video/BV1b4411r7kX?p=3
https://docs.unrealengine.com/zh-CN/Engine/Editor/ScriptingAndAutomation/Python/index.html
内容:
折腾了一晚上,主要就是这个路径的问题,记录一下。
python脚本如下:
import unreal
def build_static_mesh_import_options():
"""
构建导入静态网格选项
:return: options 导入静态网格选项
"""
options = unreal.FbxImportUI()
options.set_editor_property('import_mesh', True)
options.set_editor_property('import_materials', True)
options.set_editor_property('import_as_skeletal', False) # 是否当作骨骼物体来导入
options.static_mesh_import_data.set_editor_property('import_translation', unreal.Vector(0.0, 0.0, 0.0))
options.static_mesh_import_data.set_editor_property('import_rotation', unreal.Rotator(0, 0, 0))
options.static_mesh_import_data.set_editor_property('import_uniform_scale', 1.0)
options.static_mesh_import_data.set_editor_property('combine_meshes', True)
options.static_mesh_import_data.set_editor_property('generate_lightmap_u_vs', True)
options.static_mesh_import_data.set_editor_property('auto_generate_collision', True)
return options
def creatImportTask(filename, destination_path, options=None):
"""
:param filename: 导入的文件的路径 eg: 'F:/workPlace/Scripts/MyTexture.TGA'
:param destination_path: 导出后置产要放在什么位置 eg: '/GAME/Texture'
:param options: 导入置产属性, 静态属性可由函数build_static_mesh_import_options获得,
骨骼属性可由build_skeletal_mesh_import_options获得
:return: Task 返回一个导入任务
"""
importtask = unreal.AssetImportTask()
importtask.set_editor_property("automated", True)
importtask.set_editor_property('destination_name', 'my_asset')
importtask.set_editor_property('destination_path', destination_path)
importtask.set_editor_property('filename', filename)
importtask.set_editor_property('replace_existing', True) # 覆盖现有文件
importtask.set_editor_property('options', options) # 覆盖现有文件
importtask.set_editor_property('save', True)
return importtask
def execute_import_tasks(tasks):
"""
执行导入任务
:param tasks: array 任务池
:return: True
"""
asset_tools = unreal.AssetToolsHelpers.get_asset_tools() # 创建一个资产工具
asset_tools.import_asset_tasks([tasks]) # 导入资产
import_files = "C:\\Users\\41132\\Desktop\\project\\assect\\111.FBX"
destination_path = "/Game/fbx"
options = build_static_mesh_import_options()
import_task = creatImportTask(import_files , destination_path , options )
execute_import_tasks(import_task )
注意事项:
下面两个路径是等价的,不能写错了,不然总是崩溃:
第二:资产的名称,这个是等价的,不要写错了
至于怎么运行,完全参考官方文档。