Unity Timeline 使用rootmotion驱动角色移动的问题
角色animator的rootmotion用脚本逻辑驱动位移想要播放timeline剧情动画时,使用动画的rootmotion位移驱动角色移动
轨道属性需要选择scene offset
transform offset会让AnimationMotionXToDeltaPlayable设置AbsoluteMotion
AbsoluteMotion为True时AnimationMotionXToDeltaPlayable会设置目标位置为动画的root坐标,角色的位置会被移动到原点附近。
设置scene offset
如果timeline里面只有单段动画时,表现正常
如果有多段动画,rootmotion输出结果比较奇怪,第二段动画播放时会回到初始位置重新开始位移
这是因为AnimationMotionXToDeltaPlayable会重写MotionOutput中的DeltaTransform
最终rootmotion的delta并不是根据动画两帧变化计算出来的结果
AnimationMotionXToDeltaPlayable会缓存上一帧动画结果PreviousX,和这一帧的RootX对比,所以动画变化的那一帧,会不拉回最初的位置开始播放
针对这个问题,timeline插件提供一个功能,Match offsets to previous clip,通过给AnimationOffsetPlayable设置offset,补偿上面的位置,绕过这个问题
页:
[1]