Unity3D Animation——动画复用

本文是教程笔记,教程原链接:【【Unity动画系统详解 四】八分钟理解并掌握Avatar和人形动画复用【Unity开发入门教程12】】 https://www.bilibili.com/video/BV1GL4y1B7s1/?share_source=copy_web&vd_source=fc9b875b7d798c12d213e8f6d07a77f9

概念

unity动画需要三个部分:动画片段、动画状态机和动画组件

image

动画复用

unity动画片段使用YAML文件描述,当动画文件要处理多个物体时,会在文件中写上该物体的名称。 unity会按照文件名称找到正确的物体并按照描述去移动它。

人物的动画通常由许多物体(骨骼)的动画组成,当不同人物的骨骼名称和结构都一致时,就能够复用同一动画文件。但手动修改骨骼名称很费力,所以unity提供了Avatar替身系统。

Avatar

如何把模型a的动作复用在模型b上:

  1. 将模型A的人型骨骼和Unity标准肌肉对应。将对应关系和A的骨骼保存在A Avatar文件中。
    image

  2. 对模型B做同样操作保存在B Avatar文件中

  3. 将动画文件从对模型A骨骼节点的描述,转化为描述Unity肌肉拉伸程度的描述

image
source选择A模型,点击Apply
image
此时描述都变为了Animator.xx

  1. 这样就可以读取动画文件,并通过B Avatar映射关系改变模型B骨骼节点的位移旋转等,实现在模型B播放动画

总结

动画文件是描述骨骼节点的移动,不同模型骨骼节点可能不同。要实现动画复用就需要中间桥梁Avatar,完成“对A骨骼的描述——>unity肌肉拉伸描述——>对B骨骼的描述”的转变。

对应Unity中的操作为:

  1. 选择角色a的rig选项,种类选humanoid,自身创建avatar,应用

  2. 角色b也这样操作

  3. 动作库文件的rig选项,种类选humanoid,从a创建avatar

(这样就把动画文件对a骨骼的描述,改变为了对avatar肌肉的描述)

  1. 在animator组件中为他们指定各自的avatar

  2. 建立一个animator controller,把动画拖进去

  3. 再把controller拖到两个角色的animator组件里

实践:

  1. 下载卡哇伊动画素材包,发现该动作的Rig部分已经设置好了一个Avatar,可以省去步骤1和3

image

  1. 按照步骤2打开模型B(要在Project窗口而非Hierarchy中打开)

image
修改如下,点击apply
image
apply之后得到Avatar
image

  1. 建立Animator组件,配置controller和avatar

image

同时不要忘了将动画拖入controller中

image

大功告成!

image

posted @   NeroMegumi  阅读(135)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示