UE4动画蓝图编辑器的避坑指南

UE4动画图编辑器的避坑指南

[闪退] UE4编辑器的多层子图的闪退问题

先打开总动画蓝图,再打开其subinstance蓝图(1级子图)的subinstace蓝图(2级子图),点击编译,UE4会闪退。

总结起来就是: 一个2级子图,且子图中有状态机,先打开根图,再打开该图编译,即会闪退。

UE对2层以上的子图支持的不好,他们应该也没经过充分的测试;因为我们不能修改UE的引擎,目前插件里是没法修好这个bug的。

  • 解决方法1: 设计层面,尽量避免多层子图,所有的SubInstance都应该作为Outline的一级子图。

  • 解决方法2: 使用插件对2级子图进行编译:插件的编译按钮主要加了一个Guard保护:

TGuardValue 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文件吧。

你可能感兴趣的:(UE4动画蓝图编辑器的避坑指南)