跳转至

RE4:跳跃

跳跃是动作游戏里坑点巨多的一个环节。所以详细分一篇来讲述

重力

使用Character controller,不能使用刚体的重力 * 我们使用向下的恒加速度来模拟gravity = -9.8f

起跳

起跳速度,我们需要设置一个向上的跳跃速度

  • 站在地面上,加速度要设置为0
  • Root Motion导致跳跃移动速度受影响:采用玩家离地前几帧的平均值(缓存值实现)
  • bake into pose:解决原地跳乱动问题
  • 地表检测:球状射线检测,起点位置在角色位置上0.5m,注意skin width带来的变化
  • 避免单脚跳跃:复制一份动画,双变量混合树,镜像处理
  • 跳跃冷却:协程实现

播放动画

  • 游戏中,完整的播放一套动画是极其困难的
  • 使用垂直速度来控制跳跃混合树
    • 为0时,跳跃达到最高点,
    • 2时,处于起跳状态,播放jump up

    • <-2,处于下落转台,播放fall
  • 使用jumpValue计算垂直StringTohash值(高效,不易错)

斜坡下坡

即跳跃和正常下落要区分开 * 使用射线检测地面到人物距离是否足够高