脚和手接触

HumanIK 包括先进的地板接触引擎,可阻止角色的脚、脚趾、手和手指穿过导向平面,例如地板、墙或斜面。

 

例如,在左图中,角色的手和脚趾有点过低,穿过了地面表面。

 

HumanIK 反向运动学解算器启用脚和手接触时,角色的手和脚将抬高到地板表面上。该过程通常需要移动其他关节,以便将解算器在所有关节上产生的总偏离降至最低 - 例如,在左图中,角色的膝部和肘部稍微弯曲。

地板接触引擎实际上会防止角色肢体的局部偏离,并将它们捕捉到指定的导向平面的表面。

以下部分包含有关脚和手接触引擎在内部如何工作的概述。有关如何设置脚和手接触的完整过程的详细信息,请参见设置脚和手接触

脚和手

对于地板接触而言,HumanIK 将角色的脚和手视为等效的。这两种关节类型使用完全相同的解算过程,并且使用相同的配置选项。只有配置特性的名称不同,以反映所涉及的身体部位。但是,尽管 HumanIK 在内部处理角色关节的方式极其相似,但是每个骨架的需求通常会导致脚和手的配置设置不同。

设置脚或手接触时,通过提供一组相对于踝/腕关节或脚/手关节的度量,为 HumanIK 提供角色的脚和手形状的大致轮廓。从这些度量中,HumanIK 计算出一组围绕该轮廓的标记。启用脚和手接触后,HumanIK 使所有这些标记始终位于平面上方,并根据需要使踝/腕关节和角色骨架的其余部位发生偏离。

有关为 HumanIK 提供角色脚和手尺寸的可能方法的详细信息,请参见接触类型

角色的两只脚共享同一组尺寸和配置特性,而角色的两只手共享另一组尺寸和配置特性。不能为角色的左脚和右脚(或左手和右手)配置不同的设置。但是,您可以为每个肢体设置不同的地板方向;例如,角色的左脚可以位于斜面上,而右脚位于水平面上,或者角色的两只手可以接触两面不同的墙。

脚趾和手指

如果角色的骨架包含手指和脚趾,也可以为角色启用脚趾和手指接触。启用脚趾或手指接触后,HumanIK 会在每个趾尖或指尖保留一个球形标记。您可以单独为每个脚趾或每个手指配置该标记的大小。不允许这些球形标记的任何部分穿过平面。

脚趾和手指接触是脚和手接触的可选扩展。不能仅启用脚趾接触而不启用脚接触,或者不能仅启用手指接触而不启用手接触。此外,不能基于每个脚趾或手指启用或禁用脚趾和手指接触;启用或禁用脚趾或手指接触将同时应用于角色的所有脚趾或手指。

其他关节

请务必注意,脚和手接触引擎不会阻止角色骨架的任何其他关节穿过平面。您应注意,不要将效应器放置在远低于地板水平面或墙表面后过远的位置,因为这可能会导致,即使手或脚未穿过平面,而其他关节(例如膝部或肘部)穿过平面的情况。在极个别情况下,这可能会导致地板接触引擎将角色的脚和手捕捉到表面的错误一侧。

近似和最终解算

HumanIK 反向运动学解算器在两个过程中执行脚和手接触。在解算过程开始时,它对接触执行最终所需结果的快速近似解算,然后再调用拉动引擎。该初始过程有助于阻止拉动引擎拖动其他身体部位穿过为脚和手接触所定义的平面。在解算过程结束时,为角色的所有肢体创建新位置之后,反向运动学解算器重新调用地板接触引擎,以优化角色与为角色的脚和手接触所定义的平面之间的接触。