Unity3D Animation——动画复用
本文是教程笔记,教程原链接:【【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肌肉拉伸程度的描述
source选择A模型,点击Apply
此时描述都变为了Animator.xx
- 这样就可以读取动画文件,并通过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
apply之后得到Avatar
- 建立Animator组件,配置controller和avatar
同时不要忘了将动画拖入controller中
大功告成!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)