Mecanim动画系统丶

一 导入模型 
(1)导入模型并设置Model,Rig,Animations。
(2)如果是Humonoid人模式,则需rig下configure检查
二 Animator构建
(1)将模型拖入场景成Animator
(2)新建AnimatiorController,并设置状态,状态动画及状态切换条件。
 
下面是各步骤的详细介绍:
一 导入模型 
(1)导入模型并设置Model,Rig,Animations。
有三栏设置。
第一栏Modle:
ScaleFactor导入的模型缩放系数
Read/Write Enabled 网格数据是否能被改变
【风宇冲】动画系统Mecanim

第二栏Rig:选择类型
Legacy 传统类型,可以用Animation
Generic 普通Animator 
Humanoid 人体
【风宇冲】动画系统Mecanim
 
第三栏Animations:动画设置
主要是检查一遍动画对不对,如果是legacy的话是没有右图Loop和Root的这些设置的。

【风宇冲】动画系统Mecanim 【风宇冲】动画系统Mecanim

Start 动画起始帧
End 动画结束帧
loop match 循环匹配
【风宇冲】动画系统Mecanim
(2)如果是Humonoid人模式,则需在rig栏下面的configure里面检查一遍骨骼节点是否都是绿的(表示骨骼节点设置正确)

【风宇冲】动画系统Mecanim

点击任意骨骼都会在scene和hierarchy下显示对应的位置
【风宇冲】动画系统Mecanim

到目前位置导入工作就完成了。下面是Animator的实现
二 Animator构建
(1)将模型拖入场景成Animator
【风宇冲】动画系统Mecanim

(2)新建AnimatiorController,并设置状态,状态动画及状态切换条件。
设置状态 一般有两种,state和Blend Tree。state就是普通状态,对应单独的动作。Blend Tree可以理解为特殊的state,该state对应的是多个动作的混合。
 
state:  黄色state表示默认初始状态
可以在Animator窗口右键new一个。
或者直接把动作从Assets栏下拖拽进来,直接生成一个和动作同名的state。
下图的Motion即state的对应动作
【风宇冲】动画系统Mecanim

state之间的transition:
从一个state转换到另一个state的 触发条件即下图的Conditions.本图中的意思是 当speed大于等于0.5时,会从idle状态切换到run状态。
【风宇冲】动画系统Mecanim

Blend Tree:
1.创建 右键-> Create -> From New Blend Tree
【风宇冲】动画系统Mecanim
2.双击进入下图
按+ 添加motion。
不勾Automatic Thresholds则可设置 Threshold, 否则Threshold是自动分配的固定值。
红线表示当前的参数值。
左右拖拽左下方的圆钮即可看见 随着input值的变化,状态也在跟着变化
【风宇冲】动画系统Mecanim

layer:
可以用来做局部动作或者混合动作。
如新建一个layer并命名presslayer,动作是左手下压,
新建一个Avatar Mask将其他部位如下图的红色部分都选出来。
【风宇冲】动画系统Mecanim
在presslayer里,
Mask           选择创建好的Avatar Mask,意思是在本layer,Mask设置的上图的红色部分都被屏蔽了,只有绿色部分在本layer能动。
Blending     override表示该layer的动作会覆盖其他layer动作,addictive表示该layer的动作会与其他layer动作混合。
【风宇冲】动画系统Mecanim

如果是addictive的话,最后能实现的效果就是不管人整体的动作是跑还是走路,左手的动作都会和presslayer的左手下压动作混合。

三 IK

Inverse Kinematics, 反向动力学,一般来说骨骼动画都是传统的从父节点骨骼到子节点骨骼一直到根节点骨骼的带动方式。但很多情况,如行走时踩到一块石头落脚点比动画要高时,这时候就需要IK了。IK是指骨骼动画都是从根节点骨骼一直到父节点骨骼的带动方式。

下图第一步设置IK权重,第二步设置LeftHand这个根骨骼的位置

 
 
【风宇冲】动画系统Mecanim

猜你喜欢

转载自www.cnblogs.com/Dearmyh/p/9751720.html