Unity动画系统详解3:如何播放、切换动画?

摘要:【长文预警,建议先收藏】有了模型和多个动画以后,在Unity中如何控制它们的播放和切换呢?本文带你一站式解析Unity的Animator模块。

大话Unity,让你快人几步。你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统。

大智:“小新,还记得Unity的动画来源有哪些么?”

小新:“有Unity中制作和外部导入两种,哦对!还可以用代码写动画,不过我不会,嘿嘿”

大智:“没错,前两天我们学习的其实主要是Animation Clip的内容,也就是一个物体对应的一段动画,是整个动画系统的基本元素。今天我们要着重学习一下Animator。如果把Animation Clip比作是一段视频的话,那么Animator就是一个视频播放器,用来控制多段视频的播放、切换等等。”

Animator组件

想要在一个物体上播放动画,需要在这个物体上添加Animator组件。

Animator中有一个很重要的属性是Controller,这个属性引用了一种叫Animator Controller的资源,这种资源以文件的形式存储在工程中,文件内存储了动画的各种状态以及状态之间的切换规则。本文后半部分会细讲。

Avatar 设置使用的骨骼节点映射。

Apply Root Motion 应用根节点运动。如果不启用,动画播放时根节点会保持在原地,需要通过脚本控制物体的移动。如果启用,如果动画中有运动,动画中的运动会换算到根节点中,根节点会发生运动。(通常用于人物/动物的运动动画)

Update Mode 设置Animator更新的时机以及timescale的设置。

  • Normal Animator按正常的方式更新(随着Update调用更新,timescale减小时,动画播放也会减慢,timescale的具体含义和用法后续会详解)
  • Animate Physics Animator会按照物理系统的频率更新(根据FixedUpdate调用更新,后续会详解),适用于物理交互,例如角色加上了物理属性可以推动周围的其他物体。
  • Unscaled Time 根据Update调用更新,无视timescale。一般用于UI界面,当你使用timescale暂停游戏时,界面保持正常动画。

Culling Mode 裁剪模式

  • Always Animate 动画一直运行,即使物体在屏幕外被裁剪掉并没有渲染
  • Cull Update Transforms 当物体不可见时,禁用Retarget、IK、Transforms的更新(后续动画进阶模块会细讲)
  • Cull Completely 当物体不可见时,完全禁用动画

Animator Controller

Animator Controller是Animator组件必须的资源,这种资源以文件的形式存储在工程中,文件内存储了动画的各种状态以及状态之间的切换规则。

上图中有两个Animator Controller文件

通常一个物体上有不止一段动画,使用Animator Controller可以很容易地管理各段动画以及动画之间的切换。比如角色身上有走、跑、跳、蹲的动画,使用Animator Controller可以很容易管理它们。不过,即使只有一段动画,仍然需要给动画物体添加Animator组件才能播放动画。

大智之前讲过可以使用PlayableAPI绕过Animator Controller来播放动画,感兴趣的话可以去看一下

Animator Controller中使用了一种叫State Machine(状态机)的技术来管理状态以及状态之间的切换。

StateMachine 状态机

状态机由State(状态)和Transition(转换)组成。State代表一个状态,在Animator Controller中一个State可以包含一段动画、一个子状态机或一个混合树(

  • 79
    点赞
  • 342
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大智_Unity玩家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值