Unity 2D教程 | 骨骼动画:创建动画

时间:2023-02-08 22:11:09

转载自:2016-02-13 Unity官方平台


本教程主要讲解Unity引擎自带的2D骨骼动画工具,以及2D动画的基本概念。本篇会添加一些动画,如默认状态、跳动、坠落等。


基础动画理论


制作动画要牢记几个重要概念。本篇教程会详细讲解动画基础理论,有基础的开发者可以跳过这节。
制作动画的技术多不胜数,但基本规则是相通的。要理解动画,就得先知道帧的概念。一帧就是组成动画的其中一张图片。将正播放的动画片暂停看到的图片就是一帧。
传统动画与数字动画的区别就在于使用的工具不同。传统动画几乎纯手作,艺术家必须画出组成动画的上万帧。而数字动画不需要那么多工具也简化了整个制作过程,艺术家们只需利用关键帧节点,添加几个关键帧,然后由计算机通过插值计算来生成中间缺失的帧即可。这样能节省大量人力物力。
你可以在动画序列中将关键帧定义为静态图像,它出现在序列中很重要的时间点。举个例子,石头下落的动画,就应该将石头在空中的起始位置和落到地面的最后位置作为关键帧,计算机会生成中间的所有帧。关键帧中间的帧称为补间帧,它们负责制造运动的感觉。
帧也可用作时间单位,比如这个动画共有20帧。动画持续时间取决于帧率,帧率又因动画格式而不同。北美和日本的标准通常是每秒30帧,而其它地方则是每秒25帧。
动画

了解基本的动画概念后,接下来就要在Unity中制作角色动画了。
第一步,在Assets目录下新建文件夹Animations用于存放角色动画。
Unity 2D教程 | 骨骼动画:创建动画

然后打开Animation面板(依次点击Window > Animation):

Unity 2D教程 | 骨骼动画:创建动画

面板的水平方向包含时间轴、记录按钮、播放按钮以及其它用于控制帧的按钮。
将Animation面板停靠在Console旁(使用2D Layout),这样就能在编辑动画的同时看到场景内容。
Unity 2D教程 | 骨骼动画:创建动画

默认动画

将为例中的龙角色创建3个动画,分别是idle(默认)、jump(跳跃)、fall(坠落)。
选中Dragon游戏对象后在Animation面板中点击 Add Curve。在弹出窗口中指定动画文件名称及保存路径。Unity的动画文件扩展名是.anim,将它们保存在之前创建的文件夹下,命名为Idle.anim。
Unity 2D教程 | 骨骼动画:创建动画

注意保存动画文件后,编辑器布局会有所改变:

Unity 2D教程 | 骨骼动画:创建动画

仔细看场景上方的播放按钮,它们变成红色了。Animation面板中的播放按钮也是红色,而且时间轴上多了条红线。也就是说目前处于记录模式下。再看看检视面板,会发现Unity自动在对象上添加了Animator组件。
Animator组件会被Animator Controller引用,用于控制角色行为。其中的设置包括状态机、混合树和由脚本控制的事件。基本上Animator就是用于连接角色及其行为。
后面会详细讲解Animator组件。现在选中Dragon下的Head:
Unity 2D教程 | 骨骼动画:创建动画

在Animation面板中,将时间轴上的红线拽到1:00处(一分钟)。

Unity 2D教程 | 骨骼动画:创建动画

在检视面板将Rotation的Z值设为7.9。现在会发现时间轴上多了几个小标志,用于表示动画的关键帧。

Unity 2D教程 | 骨骼动画:创建动画


再将红线移至2:00处,将Head的Rotation Z设为0。

Unity 2D教程 | 骨骼动画:创建动画


再次点击记录按钮退出记录模式,现在可以点击播放按钮来测试动画了。如果一切正常就会看到龙的头部摆动。


调整动画
龙头运动幅度过大了,我们只需点头即可,下面重新编辑动画。
再次点击按钮进入记录模式,将红线移至1:00处,将Z Rotation设为2.05。
Unity 2D教程 | 骨骼动画:创建动画

再次点击按钮退出记录模式并测试动画。
编辑动画只需选中关键帧进行调整即可。如果想改变动画时间,比如动画过快或过慢时,只需将时间轴上的标记移到合适的帧上即可。
现在头部动画就完成了。因为身体所有部位都位于同一个游戏对象下,所以不需为各部位分别创建动画,只需点击Add Curve 按钮后选中不同部位即可。点击Add Curve 并选中龙尾。
龙尾需要上下摆动。与之前一样,在时间轴的0和2:00处设置关键帧并调整Rotation的Z值。
Unity 2D教程 | 骨骼动画:创建动画

因为尾尖是龙尾的子物体,所以龙尾动时尾尖也会跟着动。当然你也可以单独设置尾尖的动画。
对其它部位重复以上步骤创建完整的默认动画。慢慢调整直至完全满意效果,动画都是需要时间来调整的。最后的时间轴如下:Unity 2D教程 | 骨骼动画:创建动画


注意默认动画不需要改变龙重心(即小黑点)的位置。

跳跃动画

需要为Jump动画新建动画文件。在Animation面板上点击Idle标签,然后选择Create New Clip。


Unity 2D教程 | 骨骼动画:创建动画


命名为Jump.anim放在Animations文件夹下。


Unity 2D教程 | 骨骼动画:创建动画


龙在跳跃时会向上看。上面介绍过如何在Unity中创建动画了,所以这里就不详述了。
与之前一样,选中Dragon后添加动画曲线。首先是头部,动画时长30秒。调整Rotation的Z值让龙向上看

Unity 2D教程 | 骨骼动画:创建动画

为了让龙头不显得僵硬,可以加一点旋转来让它轻微运动。
对其它部位重复以上步骤。注意动画看起来的角色应该是在半空中。
完整的跳跃动画后面会介绍。下图作为龙的姿势参考:
Unity 2D教程 | 骨骼动画:创建动画

完成后就可以添加最后的坠落动画了。

坠落动画


还需要坠落的动画才能组成完整的跳跃。
同上,在Animation面板中点击当前动画名标签,在弹出列表中选择 Create New Clip。
Unity 2D教程 | 骨骼动画:创建动画

新建的动画文件命名为 Fall.anim放在Animations文件夹下。

Unity 2D教程 | 骨骼动画:创建动画

在下落时角色要向下看。同上,点击Add Curve按钮后调整龙的位置。动画时长30秒即可。
对其它部位重复以上步骤,并分别为各部位创建关键帧(除了小黑点)。同样你还可以在中间位置添加关键帧,让角色在下落过程中不会显得太僵硬。