UE4升级后如何批量将控件动画When Finished设为Project Default
UE4 4.18升级至4.27后控件动画"When Finished"字段批量修改方案
以下是两种可直接落地的批量修改方案,操作前请先完整备份项目避免资产损坏:
方案1:Python编辑器脚本批量修改(最安全,推荐)
该方案在编辑器内运行,不会直接修改原始资产二进制内容,容错率更高:
- 首先启用UE内置Python插件:编辑 -> 插件 -> 搜索Python Editor Script Plugin,勾选启用后重启编辑器
- 本地新建后缀为
.py的脚本文件,写入以下内容:
import unreal # 扫描项目内所有UMG控件蓝图资产 asset_registry = unreal.AssetRegistryHelpers.get_asset_registry() all_widget_assets = asset_registry.get_assets_by_class("WidgetBlueprint", True) modified_count = 0 for asset_item in all_widget_assets: widget_blueprint = asset_item.get_asset() # 读取控件蓝图下所有动画序列 all_animations = widget_blueprint.get_editor_property("animations") need_save = False for anim in all_animations: # 匹配When Finished为Restore State的项,修改为Project Default if anim.get_editor_property("finish_behavior") == unreal.UMGSequenceFinishBehavior.RESTORE_STATE: anim.set_editor_property("finish_behavior", unreal.UMGSequenceFinishBehavior.PROJECT_DEFAULT) need_save = True modified_count += 1 if need_save: unreal.EditorAssetLibrary.save_asset(asset_item.get_object_path()) print(f"修改完成,共调整{modified_count}个控件动画的When Finished配置")
- 打开UE编辑器的输出日志窗口,输入
py 你的脚本文件完整路径回车执行即可
方案2:批量修改uasset二进制内容(适合超大项目)
该方案不需要启动编辑器,操作速度更快,但对操作精度要求高:
- 完全关闭UE编辑器,解除所有项目资产的占用状态
- 使用支持批量二进制替换的工具(如本地Python脚本、批量文本处理工具),全局扫描所有
.uasset文件中对应Restore State的枚举值编码,替换为Project Default对应的编码 - 替换完成后启动UE,全量重编译所有控件蓝图确认修改生效
注意:该方案需要提前确认你当前UE版本对应两个枚举值的二进制编码,执行前必须全量备份项目,避免替换错误导致资产不可逆损坏。
内容的提问来源于stack exchange,提问作者Ligvest O
相关产品推荐
相关产品推荐

