下载 App
10/181 浏览综合

从“跟上角色”到“跟随运动”

这一轮的起点不是新玩法,而是一个很直接的体验反馈:跳跃镜头跟随太生硬,人物动作仍有僵硬感。
上一版已经能跟随跳跃,也通过了姿态与碰撞包络检查,但“位置正确”不等于“运动自然”。起跳时突然抬高镜头目标、触地后直接回退压缩量、全身同时进入相似姿势,都容易让动作显得像状态切换,而不是身体在运动。
本轮继续增量修改现有项目,没有重建工程、替换女孩或重做菜单和障碍。重点是让镜头和身体保留运动过程,而不是增加更多摇晃和特效。

01|镜头保留速度,不再硬追目标

原跳跃镜头使用一阶指数跟随,并给上升速度增加预判。预判会在离地时突然出现;上升和下降又使用不同响应速度,容易产生抬升突兀、下降追赶的感觉。
现在改为具有连续速度状态的临界阻尼跟随:
  • 删除起跳速度预判,目标只取真实跳高的 62%。
  • 对相邻真实高度之间的线性目标使用闭式积分,不使用逐帧欧拉累积。
  • 上升、顶点、下降采用同一阻尼频率 16/s,不再切换两套响应速度。
  • 触地后不把镜头高度硬归零,让剩余下降速度自然收敛。
  • 暂停和重复 Game.elapsed 刷新同时冻结位置与速度;重开、首页和时间回退清理惯性。
这里只平滑关注锚点,最终相机位置仍由 ThirdPersonCamera 负责。没有加入跑步颠簸、侧滚或额外俯仰,保留原镜头距离、视野和道路构图。

02|身体受重沿关节传递

跑步的受重、推蹬和抬跟改用五次平滑曲线,其段端的值、速度和加速度连续。腰、胸、头不再同时响应同一帧受重,而是分别延后 .015/.035/.055 个跑步相位。原有肩、肘、腕错峰继续保留。
这不是把整套步态都改成 C2 曲线:脚部前后摆动和部分抬脚轨迹仍保留原 Hermite 接触路径。步幅、抬脚上限、跑步周期和时钟没有扩大或减慢。
跳跃姿态则从一条共同正弦拆为推蹬释放、腾空收腿、顶点保持、下降探足。上肢和头部使用独立错峰曲线;膝髋仍共享有界收腿量,避免为了夸张动作把脚底推到安全包络之外。

03|落地先受重,再恢复

落地不再从最大压缩量直接递减,而是从触地后的零反馈开始,约 55 毫秒达到骨盆压缩峰值,腰、胸、头随后响应,在 160 毫秒内恢复。
事件年龄使用 Game.elapsed 的绝对时间计算,不再靠截断帧增量逐次扣减。跑步与跳跃之间原有的 3.5 厘米前移、1 厘米上移,也纳入视觉偏移过渡。
本轮还补了两处仅检查端点不容易发现的接缝:
  1. 落地近零权重的膝支切换:足部目标混合后解 IK,但 IK 修正会在过渡两端渐入、渐出,避免刚出现正权重就突然切换膝盖方向。
  2. 滑行起身的右鞋翻向:朝后与朝前的脚趾方向不再线性穿过零向量;近反向情况走上半圆,其余情况使用旋转插值。
进入滑行仍立即采用低姿态,没有为了视觉混合延迟避障。