Unity动画系统学习笔记

Unity动画系统学习笔记

动画系统

  • Unity 动画系统

    • 动画片段 Animation Clip:动画资源,用于展示游戏物体变化

    • 动画状态机 Animator Controller:控制游戏物体各动画片段播放与切换

    • 动画组件 Animator Componet:引用动画状态机(和替身),为游戏对象提供动画功能,为游戏脚本提供控制动画功能。

      image

    • 替身 Avatar(人型动画):复用人形动画片段。


动画片段(Animation Clip) 是 Unity 的动画资源,用来展示游戏物体变化情况

它可以是游戏角色的闪转腾挪,也可以是一扇门的开闭,甚至是 UI 界面的淡入和淡出。

在 Unity 中,我们可以导入外部(FBX)的动画资源,也可以选择在 Unity 中自行制作(手动 k 帧)。


有时候我们希望可以对复杂的动画资源进行复用(尤其是人形动画为了解决这一问题,Unity 引入了替身的概念。

替身(Avatar)是一种人形动画骨骼的标准,所有按照同一标准配置好的人形角色都可以播放同一套动画。


在位某个游戏对象,比如玩家角色准备好动画片段之后,我们就可以把它放入动画状态机进行管理。

动画状态机(Animator Componet)会帮助我们跟踪当前动画的播放状态,并且根据我们的设置来决定何时以及如何切换动画片段。

我们知道游戏对象的功能是由组件提供的,那么一个游戏对象,比如玩家角色希望拥有播放动画的功能时,

它就必须要挂载一个相应的组件,这个组件就是动画组件(Animator Componet)


我们会把游戏对象需要的动画状态机放入该组件,如果游戏对象使用了替身系统,我们也需要把它对应的替身放进去,

然后我们就可以在游戏脚本中访问这个动画组件,从而自由地控制游戏对象的动画。

image

​​

动画片段

让我们从动画片段(Animation Clip)开始深入理解整套 Unity 动画系统。

动画片段可以由外部导入,也可以在 Unity 中制作。

外部导入参考【Unity 游戏开发入门 08】:3 分钟学会白嫖顶级人形动画资源——从 Mixamo 到 Unity_哔哩哔哩_bilibili

接下来演示如何在 Unity 中制作简单的动画片段。

制作动画片段

使用 Unity Animation 制作开门动画片段。

1. 制作门

新建一个 3D 游戏对象 Cube,并通过调整其 Scale 参数,使其看起来像一扇门。

image

2. 制作门轴

如果调整门 Rotation 的 Y 参数,门会以自己为中心自转,而不是绕门的一边公转。

所以需要在门的一边设置一个旋转参考点,并设为门的父对象。

此时,调整参考点 Rotation 的 Y 参数,门就会围绕该点公转,实现开门效果。

​​image​​

3. 创建动画文件

打开 Animation 窗口。

选中参考点 Pivot,点击 Animation 的 Create,选择位置保存将要制作的动画片段,

按下 Animation 的 Create 后,我们同时拥有了动画系统的全部三个组成部分。

​​image

动画片段的本质

动画片段文件是使用标记语言 YAML 编写的文件。

动画片段文件是一个描述游戏物体变化正太的文本文件。

Unity 资源文件大多都是 YAML 语言编写的文本文件(动画片段、动画控制器、预制件、场景等等)。

image

image

image

image​​​

4. 制作开门动画

image

image

image

5. 理解动画复用

是否能够用一个动画文件旋转任意一个游戏对象?

动画复用原理

image

image

image

处理多个游戏物体的动画片段,会在文件中写上该些游戏物体的名称。

Unity 通过名称找到正确的游戏物体,然后按照动画文件中的描述改变这些游戏物体,播放动画。

游戏对象的名称如果和动画文件里不一致就无法正常播放。

反之,如果另一组游戏对象的名称都和动画文件里描述一致,就可以复用动画。

image

推广到人物游戏物体,我们把人体的每一个关节都制作成一个 pivot,然后用一个动画片段文件来描述这些 pivot 的旋转,就可以得到一个人物的动画。

这些 pivot 的组织结构就是人体动画的骨骼。

人体动画的骨骼和动画片段,我们一般会通过专门的软件制作,比如 3DMax,Maya 和 Blender。

一个人物动画文件有两部分,分别是骨骼结构和动画片段。

将人物动画文件拖进游戏场景,使其成为游戏对象,并给骨骼挂上蒙皮,就可以看到包含动作的人物游戏物体。

只要骨骼结构一致,命名也一致,那么人体动画文件也可以复用。

但如果从不同地方找到人物模型,他们的骨骼结构和命名方式并不相同,难以复用人体动画。

Unity 为我们提供一个简便的解决方案——Avatar 替身系统。

动画复用实践

image

image

posted @ 2023-06-08 11:48  tongxian  阅读(154)  评论(0编辑  收藏  举报