动画:
点击最右边的controller在左侧弹出controller的asset,打开animator会看到动画片段。
第一:动画模型的导入
将模型文件夹(包含动画,材质)拖动到unity的assets内
第二,动画的导入:勾选import Animation
第三,动画导入的设置
根据要求来选择,如果拖动动画给物体无法拖动时候,试试把Legacy改成Generic即可,如果只有scene视图,没有animator视图,在unity菜单栏Windows——>animator即可
mecanim使用步骤
对于多个动画片段,右击一个片段,选择set ad Default设置成播放动画的源头,选择make Transition可以设置连线拖拽到第二个动画片段实现连续播放,这样实现了动画状态机
有多个条件进行条件判断再跳转时步骤如下:
点击parameters,设置一个参数,点击哪一条线段,在右侧conditions中选择判断条件,当大于等于还是小于参数时,触发对应动画
设置好参数后什么时候触发呢?在代码中拿到animator组件:
到触发的时刻只需代码调整参数值即可:
利用animation来制作简单的动画:
在左侧创建一个空animation,将其拖拽到animator中的对应节点,单击三角下面选择要编辑的动画片段,add curve,选择修改哪个
点击三角左边红点开始记录,单击0.00帧,移动position的x轴到预定位置,这样做出了1帧的位移动画,同理,
1帧叠加许多动画达到目的
序列帧动画(这个没怎么看懂,以后再弄):
条件从上到下已经会了如何再倒回去,也即播完D3—2动画如何再跳到D2,首先点击跳上的箭头,在右侧设置好返回时动画的时间
这样设置好运行发现会一直死循环,我们想让D3-2跳到D2就停止,需要把向下箭头的条件的值修改下,也即把向下的箭头改为不成立,做法如下:
由于是base layer,所以.GetCurrentAnimatorStateInfo为0
方法二:利用Trigger来实现,Trigger的特点,置为true跳转,跳转后自动回到false.
将向下箭头参数设置成Trigger,代码条件改成
即可
人形动画:
导入资源右侧这样,Type选择Humanoid,Definition一般选择create from this model,configure前面省略号说明没有匹配,点击去匹配人物模型
点击automap,pose选择T-pose
Blend Tree 动画融合
右键创建一个blend tree ,双击进去,
一维混合树:
在右侧Blend Type选择1D,创建参数Parameters,在右侧选择该参数,可以选择多次Add motion Field添加多个动画片段
把左侧动画资源拖动到右侧中
对于上面的2个曲线,我们拖动左侧红线来选择动画融合后偏那个动画更多点
如果把automate Threshold关闭,可以在Threshc选择阈值,这里0表示播放第一个动画,1表示播放第二个
这里代码按k进入混合树,随机数大于5,Shootdir的阈值置为1,播放第一个,否则播放第二个动画
在做动画导入图片时,如果是2d在texture选择Sprite(2D and UI)
二维混合树:
这里阈值xy是点位于哪个坐标,拖动对应的动画片段到阈值的左侧
如图红点在不同位置,3个点呈现出不同的圆,圆的范围表示不同红点坐标时刻,3个动画的融合所占百分比,没有圆表示不显示该动画
动画层:
在Base Layer基础上创建多个Layer即可,在每个层设置好动画,Blending一般选择Override
通过avatar Mask来讲多个层动画结合起来,assets右键创建avatar Mask,第二层的动画只关注上半身动作,就把下半身设置为红色
如果从站立到快跑需要有个渐变过程怎么弄:再添加一个速度参数,创建一个一维混合树,加入站立和跑步的动画,当站立切换到跑步条件时,将速度参数设置成混合树那个红线也即权重,通过算法在代码中设置好速度参数即可
测试动画时候有时候需要把动画循环(loop)打开
在animator中有个
比如站立切换跑步,镜头人物面向会慢慢向左,去掉这个钩即可,它会保存动画偏移量
导入动画在属性里面记得勾选import animation