Unity Animation初步学习

一.Animation–最原始的动画系统
①创建Animation–相当于磁带
②为物体添加Animation组件
③设置号组件Animation的属性–加入磁带
④录制Animation–录制磁带
单一动画的时候,能比较省事,多动画的播放设置和后期维护比较麻烦

二.Mecanim
①创建Animator
②为物体创建Animator组件
③创建相关Animation,并添加进Animator
④录制Animation
⑤在Animator中设置Animation的相关状态,如在那个状态下切换成那个动画,都可以通过设置parameters参数进行设置

1.人物动画,要配合美术资源,导入模型文件通常为.fbx后缀。在UNITY中的图标为
Unity Animation初步学习
选中后,会在inspector界面出现:
Unity Animation初步学习
直接配rig的属性
Unity Animation初步学习
第一个为动画类型,有四种:None、Legacy、Generic、Humanoid
第一个为没有动画,第二个为遗留系统使用,第三个为通常物体使用的动画,第四个为人形动画
选择第四个之后会有
Unity Animation初步学习
选择Configure会进入Avatar配置界面
Unity Animation初步学习
要为实线圆圈的Avatar节点配上相应的骨骼(对应Unity没有Component的transform)
Unity Animation初步学习
一般美术会把相关名字命名好,这时候只需要点击Mapping 选择Automap即可
绑定好骨骼之后,就可以选择Muscles&Settings界面进行骨骼肌肉运动幅度的设置
Unity Animation初步学习
Avatar是最基础的部分,要设置好之后,才能做人物的动画。
全部设置好之后或者说确认没有问题之后,点击Done。
进行Animation的设置:
该窗口对美术做好的动画进行帧的切分
Unity Animation初步学习
下面部分是对切分条件的设置,和切分效果的评判
Unity Animation初步学习
除了对动画进行切分还可以对动画曲线,动画事件(难以维护,较少使用),Mask(任务遮罩配合Animator的Layer使用,只有有遮罩的部分才会进行动画效果)等
Unity Animation初步学习
2.设置好之后,就相当于创建好了一个Animation,接下来创建Animator
先在物体/人 添加一个组件Animator
Unity Animation初步学习
第一个要加入一个Animator,在Project中创建一个,添加进去
把fbx中的Avatar加进去,对选中的物体进去Animator窗口
Unity Animation初步学习
把刚刚设置好的Animation添加进来
第一个进来的Animation会自动与Entry相连
Unity Animation初步学习
连接的线称为transtion,可以选中一个Animation进行Create transtion进行创建并与其他的Animation进行相连,transtion的属性设置
Unity Animation初步学习
设置好Conditions表示从当前动画满足Conditions跳转相连接的Animation
Conditions的Parameters可以在Parameters中进行设置,目前有四种值
float,bool,int,trigger
Unity Animation初步学习
还可以创建blend tree动画,点击一个节点,点击Create new blend tree in state ,点击state就进入了下面的界面,添加两个动画,对Blend参数进行设置,趋近0,就越接近第一个,趋近1,就越接近第二个
Unity Animation初步学习
另外还可以添加Layers,相同的物体,同时执行两个Layer的动画
Unity Animation初步学习
Layers的参数设置
Unity Animation初步学习
第一个为权重,第二个为遮罩,可以在project中创建,创建之后点击之后的界面
Unity Animation初步学习
绿色表示有遮罩的部分,会执行相应的动画效果
IK绿色表示允许反动力学的动作,有时候需要反动力学的动画
让动画更接近与实际,如拿水杯的动作,正常是手驱动手指去触碰水杯,可是Unity中是通过水杯确定手指的位置,从而引导手做出相应的动作。

第三个参数表示选择覆盖上一层,或者一起执行。
Sync表示同步那一层的动画
IK pass表示该层允许IK动画。

③脚本控制动画的播放
在Script中声明Animator变量,并且通过setfloat,setbool,settrigger,setint等方法满足condition从而让动画播放。

当然这些只是动画最基础的部分,要想把动画即人物动作做得更贴近现实,需要对更多的参数进行设置,和调试。