a.常识
b.动画制作的基本流程
c.Animation面板的使用
d.Blend Tree混合树
e.Avatar Mask动画混合
【1】常识
1.通常胶片中使用每秒24或30帧。
【2】创建动画的基本流程
(以开箱子动画为例)
1.打开Window-Animation面板
2.在层级视图中,选中要创建动画的对象,点击Animation面板中的Create按钮,创建对应的Animation文件。
3.,在Dopesheet(关键帧清单)面板中,确定创建关键帧的对象,添加要改变的属性(Property),会得到第0秒的关键帧,然后将关键帧选到最后一秒,点击红色录制按钮,改变属性对应物体的相应位置,改变数据,然后再次点击结束录制。
(例如箱子,关键帧的对象就是箱子的上半部分,录制开始后,改变盖子的Transform组件中的Rotation,将盖子旋转至打开状态,就可以结束录制。)
4.点击面板右下角Curves曲线按钮,可以看到物体参数在动画进行过程中的改变曲线,选择关键帧中的紫红色节点,可以通过曲线的变化对动画进行优化。
5.点击Dopesheet面板,左键选择关键帧区域,可以通过蓝色竖线或者直接点击每条关键帧最上面的节点,调整关键帧的位置。
6.选择关键帧,点击右上角添加事件,弹出面板选择需要添加的方法(物体本身绑定的脚本中有方法才能添加)。
【3】Animation面板的使用
1.Animator组件
a.Controller:使用的Animator Controller文件。
b.Avatar:使用的骨骼文件。
c.Apply Root Motion:绑定该组件的GameObject的位置是否可以由动画进行改变(如果存在改变位移的动画)。
d.Update Mode:更新模式:Normal表示使用Update进行更新,Animate Physics表示使用FixUpdate进行更新(一般用在和物体有交互的情况下),Unscale Time表示无视timeScale进行更新(一般用在UI动画中)。
e.Culling Mode:剔除模式:Always Animate表示即使摄像机看不见也要进行动画播放的更新,Cull Update Transform表示摄像机看不见时停止动画播放但是位置会继续更新,Cull Completely表示摄像机看不见时停止动画的所有更新。
2.Animator Controller:用于多个动画的修改、整合,完成播放动画的控制。
当你创建了Animation文件后,会自动生成相关的Animator Controller文件。
三个基本状态:
Entry(表示当进入当前状态机时的入口,该状态连接的状态会成为进入状态机后的第一个状态)
Any State(表示任意的状态,其作用是其指向的状态是在任意时刻都可以切换过去的状态,最高的打断优先级,满足条件后立马跳转到any state)
Exit(表示退出当前的状态机,如果有任意状态指向该出口,表示可以从指定状态退出当前的状态机)
黄色状态表示动画开始后运行的第一个状态。
通过在左边parameters参数栏新建参数来设置状态与状态之间的转化关系。
has exit time:一个有关动画过渡的参数。如果需要达成某一项条件后动画立即转化状态,则不勾选此项。此项可看做额外的过渡条件,勾选此项代表需要同时满足自定义设立的条件和该条件才能转化状态,否则循环到下一次再转化。
Transition Offset:动画状态转化时,下一个动画开始播放的位置,比如Transition Offset为0.5,过渡之后会从B的50%处开始播放。
Transition Duration:过渡的时间。应用场景:当A动画完成不宜马上进入B动画时,例如A动作在空中完成后,需要下落到地上再完成B动作,而不是立即开始B动作。
Interruption Source:打断优先级,当几个条件同时满足,优先级最高的状态指向进行。
3.Dopesheet面板(关键帧清单)
可以Ctrl+c/v的方式复制前一个动画片段Animation Clip的关键帧和相关数据.(例如开箱子,关箱子)
4.Curves面板(曲线面板)
F键可以对正选中的中心。
【4】Blend Tree混合树(1D)
实现不同动画状态之间的切换。
以官方例子,移动共有三个状态,原地不动,走路,跑步。
在Animaion Controller中添加Blend Tree然后在混合树中添加三个Motion,依次设定好三个跑动动画。在左边添加一个Float变量控制三个动画的衔接。
【5】Avatar Mask动画混合
主要实现动画与动画之间的切换
在Animaion Controller中添加新的动画层级,在这一层中添加你想实现的动画。然后再Layer的设置中,添加做好的Avatar Mask,通过脚本控制其中Weight的权重,就可以实现动画的之间的切换,比如从移动到攻击等。
AvatarMask中,打开Humanoid,下面的模型的各个部位,绿色表示可以执行动画,红色表示不可以。
AvatarMask中,打开Transform,将美术导入的Avatar文件拖至Use skeleton from,然后点击Import skeleton,unity会自动将模型所有的骨骼给导入进来,在这里勾选我们需要参与动画混合的骨骼,比如我们需要招手,那就只勾选手部的骨骼,这里会自动勾选他的子节点。
其中,
Override,混合后的动画会覆盖之前的动画。
Additive,仅仅是在需要混合的时候,将混合的动画添加进来,原本的动画不会被彻底覆盖。