【unity】Animator

animator和animation区别 

A:1.Animation控制一个动画播放的各类方法和数据(当然也可以代码进行动画切换),debug模式切换为Legacy。
      2.Animator则可以实现控制多个动画的播放,切换,叠加等一级对骨骼动画控制等更复杂的效果,是一个动画状态机。除却必要的动画文件,还会生成一个.controller结尾的文件,也因此占内存比Animation更大
 

Animator Layers

A:分层,高层覆盖下层(例如:边走边打)
层设置:Weight:权重   Mask:Mask     Blending:叠加模式 

 

Blend Tree

A:混合,多状态可以处于中间状态(例如:方向移动) BlendTree 

子集动画Sub-State

A:处理多个相同进出条件的动画(例如:技能)
 

IK

A: IK  反向动力学。是根据骨骼的终节点来推算其他父节点的位置的一种方法 (例如:瞄准、人朝着镜头看)
 

Mask

①humanoid类型使用

②Generic类型

先导入Avatar

AnimationEvent

您可以使用动画事件增加动画剪辑的实用性。动画事件允许您在时间轴中的指定点调用对象脚本中的函数。

由动画事件调用的函数也可以接受一个参数。该参数可以是 floatstringint 或 object 引用或 AnimationEvent 对象。AnimationEvent 对象具有一些成员变量,通过这些变量可将浮点、字符串、整数和对象引用以及有关触发函数调用的事件的其他信息一次性传递给该函数。

// 此 C# 函数可由动画事件调用
public void PrintFloat (float theValue) {
    Debug.Log ("PrintFloat is called with a value of " + theValue);
}

要将动画事件添加到当前播放头位置的剪辑,请单击 Event 按钮。要将动画事件添加到动画中的任何点,请在要触发事件的时间点上双击__事件__线。添加事件后,可拖动鼠标重新定位该事件的所在位置。要删除事件,请选择该事件并按 Delete 键,或右键单击该事件并选择 Delete Event

优化

Q:播放动画的主要耗时在哪
A:实时算的,简单的线性插值,采样动画, 以及插值混合,叠加

Q:为什么rebind会有较高耗时
A:unity实现的不好,源数据和runtime数据是两套,bind相当于从源数据重建了一套Runtime数据

Q:融合消耗高如何处理
A:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值