找回密码
 立即注册
查看: 297|回复: 0

Unity Timeline 使用rootmotion驱动角色移动的问题

[复制链接]
发表于 2022-1-10 13:00 | 显示全部楼层 |阅读模式
角色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,补偿上面的位置,绕过这个问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-28 02:44 , Processed in 0.093250 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表