Unity3D类人角色绑定Animator后滑动、Blend Tree动画不播放问题求助
解决Humanoid角色运行时滑动、动画未正常播放的排查步骤
- 优先检查
Animator组件配置:
如果你是用动画自带根运动驱动角色位移,确认勾选Apply Root Motion;如果是自行写代码控制角色位移,必须取消勾选该选项,避免两套位移逻辑叠加导致滑动。 - 核对动画导入设置:
选中行走动画文件,在Inspector的Animation选项卡下确认:- 勾选
Loop Time与Loop Pose保证行走动画循环衔接自然 - 若使用根运动,不要勾选根变换位移对应的
Bake Into Pose选项,避免动画的位移数据被烘焙到姿势中无法驱动角色移动 - 确认
Root Motion Node选择正确的根骨骼(Humanoid类型默认选自动即可)
- 勾选
- 校验动画速度与角色位移速度匹配度:
如果用代码控制位移,需要保证你给Blend Tree传递的速度参数值,和实际角色位移的速度、动画本身的移动速度完全匹配,速度差是滑步最常见的诱因。可通过调整动画的Speed参数,或者修改代码中角色的移动速度值消除速度差。 - 检查物理组件配置:
若使用Character Controller组件,确认Skin Width值设置为角色半径的1/10左右,数值异常会导致角色和地面碰撞异常出现滑动;若使用刚体控制位移,确认刚体的重力、拖拽参数无异常,没有额外的外力持续作用在角色上。 - 排除逻辑冲突:
确认没有额外的代码在运行时修改角色位置、动画播放速度,也没有错误配置Avatar Mask遮罩了行走相关的动画骨骼。
内容的提问来源于stack exchange,提问作者Farhan Ali
相关产品推荐
相关产品推荐

