动画:

unity导入模型动画 unity如何导入动画文件_unity导入模型动画

点击最右边的controller在左侧弹出controller的asset,打开animator会看到动画片段。


第一:动画模型的导入

将模型文件夹(包含动画,材质)拖动到unity的assets内

第二,动画的导入:勾选import Animation

unity导入模型动画 unity如何导入动画文件_拖拽_02

第三,动画导入的设置

unity导入模型动画 unity如何导入动画文件_参数设置_03

根据要求来选择,如果拖动动画给物体无法拖动时候,试试把Legacy改成Generic即可,如果只有scene视图,没有animator视图,在unity菜单栏Windows——>animator即可


mecanim使用步骤

unity导入模型动画 unity如何导入动画文件_unity导入模型动画_04

unity导入模型动画 unity如何导入动画文件_Mask_05

对于多个动画片段,右击一个片段,选择set ad Default设置成播放动画的源头,选择make Transition可以设置连线拖拽到第二个动画片段实现连续播放,这样实现了动画状态机

unity导入模型动画 unity如何导入动画文件_参数设置_06

有多个条件进行条件判断再跳转时步骤如下:

点击parameters,设置一个参数,点击哪一条线段,在右侧conditions中选择判断条件,当大于等于还是小于参数时,触发对应动画

unity导入模型动画 unity如何导入动画文件_Mask_07

设置好参数后什么时候触发呢?在代码中拿到animator组件:

unity导入模型动画 unity如何导入动画文件_Mask_08

到触发的时刻只需代码调整参数值即可:

unity导入模型动画 unity如何导入动画文件_Mask_09

利用animation来制作简单的动画:

unity导入模型动画 unity如何导入动画文件_unity导入模型动画_10

在左侧创建一个空animation,将其拖拽到animator中的对应节点,单击三角下面选择要编辑的动画片段,add curve,选择修改哪个

unity导入模型动画 unity如何导入动画文件_参数设置_11

unity导入模型动画 unity如何导入动画文件_拖拽_12

点击三角左边红点开始记录,单击0.00帧,移动position的x轴到预定位置,这样做出了1帧的位移动画,同理,

1帧叠加许多动画达到目的

unity导入模型动画 unity如何导入动画文件_unity导入模型动画_13

序列帧动画(这个没怎么看懂,以后再弄):


unity导入模型动画 unity如何导入动画文件_拖拽_14

条件从上到下已经会了如何再倒回去,也即播完D3—2动画如何再跳到D2,首先点击跳上的箭头,在右侧设置好返回时动画的时间

unity导入模型动画 unity如何导入动画文件_拖拽_15

这样设置好运行发现会一直死循环,我们想让D3-2跳到D2就停止,需要把向下箭头的条件的值修改下,也即把向下的箭头改为不成立,做法如下:

unity导入模型动画 unity如何导入动画文件_参数设置_16

由于是base layer,所以.GetCurrentAnimatorStateInfo为0

unity导入模型动画 unity如何导入动画文件_Mask_17

方法二:利用Trigger来实现,Trigger的特点,置为true跳转,跳转后自动回到false.

unity导入模型动画 unity如何导入动画文件_Mask_18

将向下箭头参数设置成Trigger,代码条件改成

unity导入模型动画 unity如何导入动画文件_拖拽_19

即可


人形动画:

unity导入模型动画 unity如何导入动画文件_参数设置_20

导入资源右侧这样,Type选择Humanoid,Definition一般选择create from this model,configure前面省略号说明没有匹配,点击去匹配人物模型

unity导入模型动画 unity如何导入动画文件_拖拽_21

点击automap,pose选择T-pose


Blend Tree 动画融合

unity导入模型动画 unity如何导入动画文件_参数设置_22

右键创建一个blend tree ,双击进去,

一维混合树:

在右侧Blend Type选择1D,创建参数Parameters,在右侧选择该参数,可以选择多次Add motion Field添加多个动画片段

unity导入模型动画 unity如何导入动画文件_参数设置_23

把左侧动画资源拖动到右侧中

unity导入模型动画 unity如何导入动画文件_unity导入模型动画_24

unity导入模型动画 unity如何导入动画文件_拖拽_25

对于上面的2个曲线,我们拖动左侧红线来选择动画融合后偏那个动画更多点

如果把automate Threshold关闭,可以在Threshc选择阈值,这里0表示播放第一个动画,1表示播放第二个

unity导入模型动画 unity如何导入动画文件_Mask_26

这里代码按k进入混合树,随机数大于5,Shootdir的阈值置为1,播放第一个,否则播放第二个动画


在做动画导入图片时,如果是2d在texture选择Sprite(2D and UI)


二维混合树:

unity导入模型动画 unity如何导入动画文件_Mask_27

这里阈值xy是点位于哪个坐标,拖动对应的动画片段到阈值的左侧

unity导入模型动画 unity如何导入动画文件_参数设置_28

   

unity导入模型动画 unity如何导入动画文件_unity导入模型动画_29

    

unity导入模型动画 unity如何导入动画文件_拖拽_30

如图红点在不同位置,3个点呈现出不同的圆,圆的范围表示不同红点坐标时刻,3个动画的融合所占百分比,没有圆表示不显示该动画


动画层:

unity导入模型动画 unity如何导入动画文件_拖拽_31

在Base Layer基础上创建多个Layer即可,在每个层设置好动画,Blending一般选择Override

unity导入模型动画 unity如何导入动画文件_拖拽_32

通过avatar Mask来讲多个层动画结合起来,assets右键创建avatar Mask,第二层的动画只关注上半身动作,就把下半身设置为红色

unity导入模型动画 unity如何导入动画文件_Mask_33

如果从站立到快跑需要有个渐变过程怎么弄:再添加一个速度参数,创建一个一维混合树,加入站立和跑步的动画,当站立切换到跑步条件时,将速度参数设置成混合树那个红线也即权重,通过算法在代码中设置好速度参数即可


测试动画时候有时候需要把动画循环(loop)打开

在animator中有个

unity导入模型动画 unity如何导入动画文件_Mask_34

比如站立切换跑步,镜头人物面向会慢慢向左,去掉这个钩即可,它会保存动画偏移量

导入动画在属性里面记得勾选import animation

unity导入模型动画 unity如何导入动画文件_拖拽_35