保存每个对象的名称,和它的属性值(通常是位移旋转缩放)。Unity通过读取对象名称确定它是否能应用于这个动画。如果名称相同,可以实现动画的复用。
Avatar相当于一个替身,A和B都用Avatar绑定骨骼,可以实现不同命名的骨骼,共用一个名称,从而共用一个动画。Humanoid类型将骨骼信息变为Unity的肌肉信息。
可以被几根骨骼控制,默认四根,可Custom自定义
启用会删除原模型上的骨骼,仅用Avatar,优化空间
只要一个对象有替身,就会从它和它所有子物体中检索对应骨骼信息,从而播放动画。
以Generic类型为例,绑定时会创建一个根骨骼,用来在K动画时描述动画整体的的位移和旋转等信息。Root Motion即将动画的根骨骼的位移旋转等信息当作对象的位移和旋转等信息,实时改变对象的Transform值。 Humanoid类型则是由Unity自己计算一个center of mass 重心位置,代替根骨骼。 关闭Root Motion时,一个动画记录的是世界空间下对象的位移旋转等信息,使用Root Motion时,动画记录的则是当前帧和下一帧之间相对的位移旋转等信息。而Root Motion是实时改变对象的Transform值的,所以可以使动画连贯播放。如一个0°旋转到90°的动画,循环播放,使用Root Motion后可以一直旋转下去。 OnAnimationMove()方法可用代码代替Apply Root Motion的使用。
可以用来检索当前播放动画做判定 AnimatorStateInfo.IsTag();
可以为负值(逆序播放) 不能直接再代码修改,需要乘以Multiplier中设置的属性值。
如0.5则播放动画中间点
如0.5则从动画中间开始播放,例如走路中初始左右脚的切换
并不是脚部IK,而是当前脚部位置基于原始动画的脚部IK的修正,修正值仅和原始动画IK位置有关,和当前IK位置无关
开启后,在onEnable()发生时时,记录每个对象的初始属性。如果一个动画没有修改某个属性,则某个属性会恢复默认值,其它属性再开始动画。 状态机出问题的时候最好关了。
可以调节转换的优先级 Solo > 上层 > 下层 > mute
即该转换是否可以被某个状态的其它转换打断
即某个状态的转换优先级高的可以打断优先级低的
即把对多个动画的混合作为一个状态。
即自动计算动画播放速度,使多个动画的移动旋转速度相等。 如前进和后退速度不同,可自动计算需要调整的动画播放速度,使速度相等。
使用道具 举报
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )
GMT+8, 2024-11-16 02:16 , Processed in 0.096193 second(s), 25 queries .
Powered by Discuz! X3.5 Licensed
© 2001-2024 Discuz! Team.