在实际项目中,开发者有时希望不同的骨架间共享同一套动画蓝图,尤其是状态机的重用,从而实现动画转换逻辑的统一的配置。实际运行时仍然使用骨架对应的动画资源。例如不同种类怪物的动画状态机共享。

引擎中的动画蓝图是与骨架绑定的,无法直接跨骨骼应用;这里给出一个简单的蓝图使用小技巧来实现动画蓝图的共享。

示例工程:

下载链接:https://pan.baidu.com/s/1FIWdNvgcYakajbTqJE89LA
适用版本:引擎版本 4.22.2 or later

思路

1、创建一个父动画蓝图 A,在A中实现各种动画以及转换,并且A中使用到的各种动画片段或者是混合空间全部参数化,普通动画片段的参数类型是Anim Sequence Base
2、创建一个不同于A的骨骼的动画蓝图B,创建之后修改B的父类为A,并且在B 的两个Graph都不能添加或者是实现任何
3、这样在B中就可以看见参数化的动画片段或者是混合空间,给它们赋值,
4、这样便实现了不同骨骼使用一个动画蓝图

示例说明:

  1. 打开项目,地图中有两个角色,一个Mixamo_Goblin,一个IggyScorch_Phoenix角色;使用不同骨骼及模型,但共用了同一个动画蓝图(Mixamo_AnimBP_Parent)中的设置。
  2. 运行游戏;可以控制IggyScorch_Phoenix跑跳攻击等;它的动画蓝图(IggyScorch_Phoenix_AnimBP)继承父级的动画蓝图(Mixamo_AnimBP_Parent);角色资产被替换成自己Skeleton对应的动画资产。
  3. 调整修改Mixamo_AnimBP_Parent,再次运行游戏查看父级的动画蓝图的修改对IggyScorch_Phoenix角色的影响。

制作说明:

  • 不同角色需继承自相同Character蓝图,保证操作以及传入动画蓝图的变量相同。
  • 基础动画蓝图的Animation Sequence Object Reference需要使用Pin创建变量,以便在被继承后可以替换动画。
  • 为其中一套骨架创建新的动画蓝图, Parent 指定为基础动画蓝图,并替换掉变量中指定的动画资源。
  • 动画资源仅可使用当前骨架相关联的资源;无法使用基础动画蓝图关联的资源;如果要使用基础动画蓝图关联的骨骼的动画资源需要对其做复制并且Retarget操作
  • 状态Transition的逻辑需要改成比例相关(Get Relevant Anim Time Remaining Fraction),而不是时间相关,因为被替代后动画长度有可能不同
  • 在当前子动画蓝图无法再增加额外的动画逻辑;需要的话可以加在角色的Postprocess
    动画蓝图中,比如物理动画。或者再创建一个动画蓝图,并使用Sub Anim Instance指定当前子动画蓝图为Instance Class,从而扩展混合逻辑。
  • 父级动画蓝图不要有基于特定骨骼的修改,否则继承后丢失骨骼信息出错。
  • 在Python文件夹里提供了一个示例,该脚本根据指定的Parent Anim Blueprint 和 Child Skeleton
    来生成Child Anim Blueprint,同时根据设定的命名规则来替换来对应的Anim Asset

。Tips & Tricks —— 跨骨架共享动画蓝图

不同骨骼共享动画蓝图相关推荐

  1. 虚幻4混合空间动画蓝图

    角色是一切游戏的基础内容,能对玩家的输入而做出相应动作又是角色的基础,这时便少不了运用混合空间 混合空间是可以联合多个动画并且通过一定逻辑调用的文件(个人理解) (本文如有错误还请大佬斧正) 在创建角 ...

  2. 虚幻C++入门个人笔记(3)——接口、智能指针、动画蓝图、行为树、EQS系统

    接口 接口的词义广泛,用来陈述功能.选项,与其他程序结构进行沟通的方式.接口抽象出了交互结构,提供了两个未知逻辑交互的便捷性.对于编程中,如何更好地设计低耦合程序起到了至关重要的作用.设计者可以在互不 ...

  3. 《赋予角色移动时的动画》part02——动画蓝图

    Animaiton Blueprint(动画蓝图) 相当于一座桥梁,连接了混合空间和角色蓝图. 1.首先,新建一个动画蓝图. 在human文件夹(我们之前用于存放角色蓝图的文件夹)中,我们添加Anim ...

  4. 关于UE5角色动画蓝图的基本操作(基础向)

    1.在做角色蓝图动画前,首先需要有一个可操控的角色.操作方法如下:         新建Player文件夹-在其中创建关于世界设置的蓝图:GameModeBase.PlayerController.以 ...

  5. 虚幻——动画蓝图、状态机制作人物走跑跳动作

    一.名词解释 序列--一段动作. 混合空间--混合不同的动作.将多个序列排序播放. 动画蓝图--根据状态播放不同的动画. 二.混合空间制作走跑动作 由于走和跑的动作比较连续,并且都是由速度控制,所以要 ...

  6. 30_ue4[动画]02_动画蓝图播放蒙太奇和打包

    内容浏览器里面右键,动画,混合空间1D 选择我们新角色的骨骼 进入动画 将部分参数改为 然后看右下角的资源浏览器 全选四个动画,右键,设置为当前预览网格体 这样就可以把鼠标放在动画上进行预览了. 将站 ...

  7. 学习UE4动画蓝图:实现双脚贴地

    目标 在上一篇博客<学习UE4动画蓝图:配置脚部IK>中,IK功能解决了"脚部陷入地下"的问题,但是还是有"脚部悬空"的问题.<[UE4蓝图] ...

  8. UE4 虚幻引擎 Montage蒙太奇/动画蓝图状态机 踩过的坑记录

    惯例先说两句 实在惭愧,和朋友一起做UE4从10月份就说好了,结果依旧拖到了寒假,然而毕设又来了. 第一关的锅我背了三个月还没做完,直到疫情被困在家必须好好干一把了(加油) 以下是在最近做一个简单的道 ...

  9. 学习UE4动画蓝图:配置手部IK

    目标 逆向运动学(Inverse Kinematics)简称IK是相对于 "正向运动学" 的. "正向运动学" 即从骨骼的上级到下级进行旋转来达到自己想要的姿势 ...

最新文章

  1. 【java】将自己写的类生成说明文档的方法
  2. 机器人3·15 | 赛迪「机器人国评中心」揭示机器人产品质量6大痛点!
  3. Dockefile CentOS SSH 服务的实现
  4. python3 使用psutil 查看内存占用
  5. php7下安装event扩展
  6. 打开适配器并捕获数据包
  7. 查看ocx控件方法_Appium自动化测试入门教程No.8——定位控件
  8. 腾讯音乐计划以介绍形式在港交所主板二次上市
  9. LogStash实现MySQL数据增量同步到ElasticSearch
  10. MemCache对PHP页面的缓存加速优化
  11. linux 脚本监听,Linux—编写shell脚本监控主机
  12. python如何移动文件却不覆盖现有文件_在python中创建新文件,不要覆盖现有文件...
  13. Python模块化编程
  14. 机器学习笔记 - AutoML框架FLAML初体验
  15. 计算机蓝牙功能,笔记本电脑蓝牙在哪里?笔记本怎么打开蓝牙功能Bluetooth
  16. 财路网每日原创推送:区块链的“三围”了解
  17. JDK 动态代理之源码解析
  18. Total Control电脑控制Android手机
  19. Android ItemTouchHelper实现RecyclerView交互动画
  20. Saas.为什么要搞Saas,会遇到哪些问题,看看5年Saas开发踩过的坑

热门文章

  1. latex 让表格宽度与文本宽度相同
  2. 规则引擎QLExpress
  3. Otter实现数据库同步
  4. 数据结构 --有向图
  5. GitLab 14 登录
  6. 基于华为eNSP的计算机网络实验(端口VLAN划分,跨以太网交换机的VLAN扩展)
  7. VL8 使用generate_for语句简化代码
  8. 生活的哲理,让自己更淡定
  9. python topn
  10. 检测DNS服务器状态的问题