本文是教程笔记,教程原链接:【【Unity动画系统详解 四】八分钟理解并掌握Avatar和人形动画复用【Unity开发入门教程12】】 https://www.bilibili.com/video/BV1GL4y1B7s1/?share_source=copy_web&vd_source=fc9b875b7d798c12d213e8f6d07a77f9
概念
unity动画需要三个部分:动画片段、动画状态机和动画组件
动画复用
unity动画片段使用YAML文件描述,当动画文件要处理多个物体时,会在文件中写上该物体的名称。 unity会按照文件名称找到正确的物体并按照描述去移动它。
人物的动画通常由许多物体(骨骼)的动画组成,当不同人物的骨骼名称和结构都一致时,就能够复用同一动画文件。但手动修改骨骼名称很费力,所以unity提供了Avatar替身系统。
Avatar
如何把模型a的动作复用在模型b上:
- 将模型A的人型骨骼和Unity标准肌肉对应。将对应关系和A的骨骼保存在A Avatar文件中。
-
对模型B做同样操作保存在B Avatar文件中
-
将动画文件从对模型A骨骼节点的描述,转化为描述Unity肌肉拉伸程度的描述
- 这样就可以读取动画文件,并通过B Avatar映射关系改变模型B骨骼节点的位移旋转等,实现在模型B播放动画
总结
动画文件是描述骨骼节点的移动,不同模型骨骼节点可能不同。要实现动画复用就需要中间桥梁Avatar,完成“对A骨骼的描述——>unity肌肉拉伸描述——>对B骨骼的描述”的转变。
对应Unity中的操作为:
-
选择角色a的rig选项,种类选humanoid,自身创建avatar,应用
-
角色b也这样操作
-
动作库文件的rig选项,种类选humanoid,从a创建avatar
(这样就把动画文件对a骨骼的描述,改变为了对avatar肌肉的描述)
-
在animator组件中为他们指定各自的avatar
-
建立一个animator controller,把动画拖进去
-
再把controller拖到两个角色的animator组件里
实践:
- 下载卡哇伊动画素材包,发现该动作的Rig部分已经设置好了一个Avatar,可以省去步骤1和3
- 按照步骤2打开模型B(要在Project窗口而非Hierarchy中打开)
修改如下,点击apply
- 建立Animator组件,配置controller和avatar
同时不要忘了将动画拖入controller中
大功告成!
标签:Unity3D,骨骼,动画,复用,Animation,Avatar,动画文件,描述 From: https://www.cnblogs.com/neromegumi/p/18589180