import unreal
# レベルで選択されているアクターを取得
selectedActors = unreal.EditorLevelLibrary.get_selected_level_actors()
assetTools = unreal.AssetToolsHelpers.get_asset_tools()
for actor in selectedActors:
# アクターがスタティックメッシュコンポーネントを持っているか確認
staticMeshComponent = None
for component in actor.get_components_by_class(unreal.StaticMeshComponent):
staticMeshComponent = component
break # 最初のStaticMeshComponentのみ処理
if staticMeshComponent:
# 使用されているスタティックメッシュを取得
static_mesh = staticMeshComponent.static_mesh
if static_mesh:
# スタティックメッシュのアセットを再インポート
asset_path = unreal.Paths.get_path(static_mesh.get_path_name())
print(f"Reimporting: {asset_path}")
asset_fileName = static_mesh.get_editor_property('asset_import_data').get_first_filename()
print(f"asset_fileName: {asset_fileName}")
task = unreal.AssetImportTask()
task.set_editor_property('filename', asset_fileName)
task.set_editor_property('destination_path', asset_path)
task.set_editor_property('replace_existing', True)
task.set_editor_property('automated', True)
assetTools.import_asset_tasks([task])
else:
print(f"Actor '{actor.get_name()}' に有効なスタティックメッシュがありません。")
else:
print(f"Actor '{actor.get_name()}' はスタティックメッシュコンポーネントを持っていません。")