我一直被军事游戏中的某些问题困扰:人物瞬间改变方向,玩家在避开子弹时没有重量和动量的左右摆动,滑行的脚步和头部 glitch 漏洞,这让玩家可以在不暴露自己时就射击。
我一直带着这个想法,几个年头了,终于有时间了来实现它。已经工作了大约三个月了。
基于之前在 Reddit 上发布的视频获得的巨大反馈,我已经解决了大部分问题并取得了进展,但还需要改进许多。
我真的对这个项目非常着迷,努力让它达到一个之前游戏中从未见过的质量。我希望你喜欢它的方向,并且希望再次听到你的想法。
关键特性:
- 我建立了核心围绕物理来给运动提供真实的重量和惯性,同时保持输入响应。轻量级士兵速度快,灵活,而重载单位感觉迟钝,难以在跑步时转弯。
- 所有运动都是程序化的。没有使用动画片段。所有步行周期都是基于曲线的,这使得创建非常不同的运动风格变得容易。
- 相机位于正确的视点。它是一个真正的第一人称视角。这消除了头部和枪的位置之间的间隙,因此敌人无法在不暴露自己时就射击 - 头部 glitch 漏洞。
- 运动和 IK 层是完全分离的。它驱动 null 对象,null 对象驱动双腿 IK。这使得切换到 Unreal 引擎等其他引擎变得直接。
抗恶心解决方案
上一次发布的主要问题是相机运动引起的不适感。实现了三个层次的稳定化来解决:
- 锁定相机到水平轴。
- 添加了通过脊柱动态来实现的冲击吸收。
- 眼睛锁定稳定化。最难的一个。 - 在现实中,我们不感觉到头部运动,因为我们的眼睛会锁定在目标上。纯粹从鼠标输入和摆动头部计算目标感兴趣点,花了两天的时间来完成,但最终实现了。
可用性
目前,我正在提供运动系统的许可。同时,我也开放全职或合同角色来将这个架构集成到正在进行的项目中。如果您的工作室需要一个像这样的系统,请与我联系。
性能
在我的老机器上,计算所有系统和 IK 解决方案所需的时间约为 0.5 ms。目前我还没有进行任何优化。目前我使用 Final IK,后期计划切换到 Unity 的 Animation Rigging 包,它使用工作线程来计算 IK 和应该给出显著的性能提升。同时,我也计划添加刷新调节和 LOD 对远距离单位。
附注
在工作的过程中,我理解了为什么这样的系统如此罕见 - 构建一个好的系统非常困难。在现实生活中,你只是走路。在这里,你需要分解每种类型的步行动作,并在代码中实现它,同时保持所有东西干净和坚固。如果你使用胶带来解决任何问题,你将在之后的每一步都付出代价。
评论 (0)