我正在开发一个用于程序化角色移动的小型文本格式。每个阶段可以包含关节目标、世界空间的行进标志点和接触约束。一个简化的步骤看起来像这样:
步骤 "右脚跨后" 0.65s 流程:
膝盖右:弯曲 25
行进:0.6 0
脚踝左:固定
脚踝右:触及地面
当我首次添加行进时,路径在地面指南中看起来正确,但角色几乎是在原地走动。问题在于“固定”的含义。地面脚踝固定会将整个根部向脚踝返回的接触点转移。这种方式适用于像跳跃和静止支撑这样的东西,但在行走中会取消每个步骤的编写根部旅行。最终,我将一个裁切视为行走时,只有当它具有编写行进并交替地面固定脚踝之间的脚踝时才处理。对于那些阶段,根部会保持编写的标志点,踝部会被约束IK向着植入接触解决。同脚固定脚踝和与道具的接触仍然使用根部转换,因为这些通常描述在固定支撑周围移动身体。这个修复暴露了我的示例中另一个坏的假设。一些关闭步骤使用地面锁定,即使脚踝实际上是重新定位的。 我将这些步骤改为触及地面。移动看起来类似,但定义现在描述了脚踝真正做的事情。这仍然是一个动力学系统,而不是一个完整的物理模拟。 我也在行走中使用了一个略微更大的地面接触容忍度,因为当前的腿链无法模拟一个合适的脚跟到脚尖滚动。如果您曾经工作过程序化行走,是否会在格式中明确表示立姿和摆动,还是继续从交替接触中推断?我想知道这个推断会在哪里开始崩溃。这是 Posecode 的一部分。实现和测试可以在这里找到:https://github.com/posecode-dev/posecode/pull/97
评论 (0)