20250523-在Unity中创建角色动画(2D)(Set up Animator with State Machine)
20250523-在Unity中创建角色动画(2D)(Set up Animator with State Machine)
摘要:本文以类银河恶魔城2D学习案例为依托,简单介绍了如何在Unity中导入精灵图、,创建Animation Controller、Animation Clip、设置角色动画状态机等。
视频教程链接:https://www.udemy.com/course/2d-rpg-alexdev/ 、B站(BV1cM4y1p7RF)
一、主要步骤
- 导入资源:直接将Graphs文件夹拖到Assets窗口
- 创建Animator组件
- 创建动画片段 AnimationClip(图示为后面几节做完后的效果),可能在这之前需要编辑精灵图。
- 在Player脚本中获取Animator对象
- 修改状态脚本
当玩家进入或者离开某个状态时,动画状态机要随之切换角色状态所对应的动画片段;这里是直接修改PlayerState类,因为后面玩家其他的状态类都会继承该类,所以相当于为玩家所有状态都添加了动画播放功能。
主要步骤如上,下面是对这些步骤的小总结及注意事项:
二、总结及注意事项
(1)当前所处动画片段总有一种向其他动画片段转移的趋势,只要从当前动画片段指向其他动画片段的箭头上的条件满足时,就会执行切换。
(2)Animator主要有Sprite Render和Animator组件,先拖动一个小人图形到Hierarchy窗口,就会产生一个游戏物体,这个物体上就自带Sprite Render组件,这个小人图形,应该就是Sprite。
(3)通过鼠标右键可以在Assets窗口创建Animator Controller组件。如下图
(4)点击Hierarchy窗口中挂着Animator组件的对象或者点击Assets中的不同Animator Controller,Animator窗口中就会显示不同的Animator Controller的结构;给对象添加一个Animator组件,在Controller属性处可以指定对应的Animator Controller。
(5)Animator窗口如下图所示,左边主要有【parameter】和【layer】两个属性,顾名思义就是参数和层级的意思,窗口内带颜色的表示各种状态,以及特殊的几个如【Entry】、【Any State】和【Exit】。
(6)双击某个片段可以看到下一层的状态图(如果有下一层的话)。
(7)箭头代表【Transitions】,就是控制状态切换用的;单击某个箭头,可以看到【Inspector】面板上有相应属性,一般【Has Exit Time】取消勾选,【Transition Duration】设置为0;还有注意下面的【Conditions】,代表执行状态切换需要满足的所有条件,条件中可能会用到AC(Animator Controller对象的)参数。
(这里要注意的是,如果不设置任何Condition,则需要勾上【Has Exit Time】,否则动画播放会有问题)
(8)点击Hierarchy中包含Animator组件的对象,可以在Animation窗口中看到该对象包含的所有的状态。可以点击左边下三角图标来创建或者切换Clip,Samples控制动画速度;在创建Clip时一般可以直接拖动几张Sprite到中间这个窗口。
感谢您的阅读,希望本文能对您有所帮助~