Mecanim
Mecanim 是Unity一个丰富且精密的动画系统,提供了:
- 为人形角色提供的简易工作流和动画创建能力
- Retargeting(动画重定向)功能,即把动画从一个角色模型应用到另一个角色模型上
- 针对Animation Clip(动画片段)的简单工作流
- 一个用于管理动画间复杂交互作用的可视化编辑工具
- 通过不同逻辑来控制不同身体部位运动的能力
Mecanim Workflow
资源的准备和导入(3Dmax/Maya):在Project中右键,Import Package -> Characters
模型与动画设置:
- Model:模型的网格、材质等模型渲染相关的设置
- Rig:模型骨骼的设置
- Animations :模型动画片段的设置
Animation Clip(动画片段)
- 动画片段是 Unity 中的最小的动画构成的模块 用于表示一段独立的动画效果,比如行走、 奔跑、 跳跃
- Project视图中选择模型资源,并在 Inspector 视图中点击 Animation 标签,即可在 Inspector 视图中找到该模型所包含的所有的动画片段
Animator组件
用于控制游戏对象的动画
选择游戏对象 -> Component菜单 -> Miscellaneous -> Animator
属性:
- Animator Controller:动画控制器
- Avatar:角色替身
- Apply Root Motion:角色的位移或旋转是否由动画片段控制
Animation State Machine(动画状态机)
控制角色动画片段的播放和切换
状态:每个状态对应对应一个动画
状态过渡:改变角色所处的状态
参数:状态过渡时与限制条件相关的参数
添加Animator Controller:Project中右键Create -> Animator Controller
打开Animator视图:Windows菜单栏-> Animator
添加状态:空白处右键 -> Create State -> Empty
状态的属性:
- 名称
- Motion:状态播放的动画片段
- Speed:动画片段的播放速度
添加状态过渡:状态上右键Make Transition
状态过渡参数:
- Has Exit Time:状态过渡是否有退出时间
- Exit Time:退出时间
- 状态过渡曲线
- Conditions:状态过渡条件设置
使用脚本控制动画参数
Animation Layer(动画层)
用于合成身体不同部位的动画
Animation Layer属性:
- weight:动画层权重
- mask:身体遮罩
Avatar Mask(身体遮罩)
- 使开发者选择性地启用或禁用人形角色相关关节,以控制动画片段对人形角色的影响:启用的关节受动画控制产生动作,禁用的关节不受动画的控制
- 新建:Project视图中右键 -> Create -> Avatar Mask
- Humanoid:人形角色关节设置,绿色代表启用,红色代表禁用