• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

逍遥流

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

posted on 2021-03-07 23:03  逍遥流  阅读(373)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3