RE4:跳跃¶
跳跃是动作游戏里坑点巨多的一个环节。所以详细分一篇来讲述
重力¶
使用Character controller,不能使用刚体的重力 * 我们使用向下的恒加速度来模拟gravity = -9.8f
起跳¶
起跳速度,我们需要设置一个向上的跳跃速度
- 站在地面上,加速度要设置为0
- Root Motion导致跳跃移动速度受影响:采用玩家离地前几帧的平均值(缓存值实现)
- bake into pose:解决原地跳乱动问题
- 地表检测:球状射线检测,起点位置在角色位置上0.5m,注意skin width带来的变化
- 避免单脚跳跃:复制一份动画,双变量混合树,镜像处理
- 跳跃冷却:协程实现
播放动画¶
- 游戏中,完整的播放一套动画是极其困难的
- 使用垂直速度来控制跳跃混合树
- 为0时,跳跃达到最高点,
-
2时,处于起跳状态,播放jump up
- <-2,处于下落转台,播放fall
- 使用jumpValue计算垂直StringTohash值(高效,不易错)
斜坡下坡¶
即跳跃和正常下落要区分开 * 使用射线检测地面到人物距离是否足够高