我一直在思考这个思想,一直持续了几年。最后我找到了时间,在大约两个月的工作后,我将系统提升到了一个可以分享的水平。

军事游戏中有一些事 luôn让我不满意——角色突然改变方向,玩家在不受重力和惯性影响的情况下左摇右晃地躲避子弹,滑行的姿势,和可以让我在头部位置造成的漏洞,从而可以不露面就射击。经过大量的计划后,我找到了解决所有问题的方法,并且证明了这是解决所有这些问题的可能性。

关键特点:

- 我建立了物理核心,赋予运动实质性重量和惯性,同时保持输入敏感。轻型士兵快速且灵活,装载重型部队则运动迟缓,难以快速转弯。

- 所有运动是过程化的,没有使用动画剪辑。

- 摄像机位于正确的眼球位置,是一款真正的第一人称角色。去除头部和枪械之间的空隙,使敌人无法在不暴露自己时就攻击你。

- 所有步行周期基于曲线,容易实现非常不同的运动方式。

- 运动系统完全分离于IK层。它驱动空对象,这些空对象驱动双脚IK。这种设计使得在其他引擎,如Unreal-engine转换变得容易。

目前系统距离完成还早。一切都还需要改进,我深深地渴望听取您的反馈。

在工作中,我理解了这样系统如此少见的原因——做得好太困难了。在现实生活中你只是自然步行。当你想编码步行过程时,你必须详细分析每种步行方式,编码时保持清晰和稳健。如果你只是用粘合剂临时解决问题,后果是会在随后的每种步行方式中都会付出代价。

我在unity editor中测试了大于130个单位同时移动,unity editor会自己消耗大量的帧时间,而性能损失微乎其微。我目前使用Final IK,并且计划后期切换到unity的动画排列包,这使用工作线程进行IK计算,应该带来显著的性能加速。在此基础上我还计划添加刷新抑制和 LOD远程单位。

我目前为此系统提供授权。同时我也愿意提供全职或合同技术动画职位将这个架构集成到日常项目中。如果有项目想要使用这样的系统,我会高兴地收到您的信息。