Unreal4.21 动画蓝图编辑器的两个坑
UE4动画图编辑器的避坑指南
[闪退] UE4编辑器的多层子图的闪退问题
先打开总动画蓝图,再打开其subinstance蓝图(1级子图)的subinstace蓝图(2级子图),点击编译,UE4会闪退。
总结起来就是: 一个2级子图,且子图中有状态机,先打开根图,再打开该图编译,即会闪退。
UE对2层以上的子图支持的不好,他们应该也没经过充分的测试;因为我们不能修改UE的引擎,目前插件里是没法修好这个bug的。
-
解决方法1: 设计层面,尽量避免多层子图,所有的SubInstance都应该作为Outline的一级子图。
-
解决方法2: 使用插件对2级子图进行编译:插件的编译按钮主要加了一个Guard保护:
TGuardValue<bool> GuardTemplateNameFlag(GCompilingBlueprint, true);
FKismetEditorUtilities::CompileBlueprint(AnimBlueprint);
- 解决方法3(需要可以修改UE引擎):
- 在KismetReinstanceUtilities:: ReplaceObjectHelper找到SkelComponent->InitAnim(true)。
- 在这个之前想办法调用到SkelComponent->ClearAnimScriptInstance()
[闪退] UE4不允许两个蓝图下面有相同Tag的Subinstance
两个动画蓝图A、 B,都有一个Tag同名, 且InstanceClass同名(可以不同path)的SubInstance; 那么先打开A, 再打开B,UE编辑器即闪退
执行一次插件导出,就相当于打开了所有相关的动画蓝图,如果存在同名的SubInstance,也会导致导出插件崩溃。
解决方法1: SubInstance的Tag不要有重名的
解决方法2: 既然SubInstance都重名了,不同角色还是用不同的mesh文件吧。
浙公网安备 33010602011771号