MotionBuilder HumanIK 解算器插件

此插件使用 MotionBuilder Open Reality SDK 将 HumanIK 集成到自定义 MotionBuilder 角色解算器。您可以使用 MotionBuilder 中的该自定义解算器,通过使用在此版本 HumanIK 中可用但在您的 MotionBuilder 版本中未自带的功能(如逼真的膝部解算、锁骨刚度和动画轨迹重定目标)来控制角色。

此示例构建的解算器类似于 MotionBuilder 版本中包含的 HumanIK 解算器,但是已更新,可以使用此版本 HumanIK 库。

为了编译和运行该示例,必须已安装最新版本的 MotionBuilder 和 Open Reality SDK。

编译示例

  1. 创建称为 MOTION_BUILDER_LOCATION 的环境变量,将其值设置为计算机上 MotionBuilder 的安装目录。
  2. 此示例包含在 solutions/<platform_and_toolset>/HIKSamples.sln 解决方案中。在 Visual Studio 中打开此解决方案。需要使用的项目取决于已安装的 MotionBuilder 的版本:

    • 对于 MotionBuilder 2011,请使用 MoBuHIK2011 项目。
    • 对于 MotionBuilder 2012,请使用 MoBuHIK2012 项目。
    • 对于 MotionBuilder 2013,请使用 MoBuHIK2013 项目。
    • 尚不支持 MotionBuilder 2014。

  3. 编译后,生成的文件应当自动复制到 MotionBuilder 安装目录中的以下子目录:

    • 在 32 位 Windows 系统上,bin/win32/plugins
    • 在 64 位 Windows 系统上,bin/x64/plugins

    如果未复制,请手动复制它们。

使用示例

要使用该示例构建的 MotionBuilder 解算器,请执行以下操作:

  1. 启动 MotionBuilder,打开或创建要使用 HumanIK 控制的角色。
  2. Navigator 窗口中,展开 Characters 文件夹,双击想要为其添加新解算器的角色。
  3. Character Settings 选项卡中,找到“CharacterSolver”下拉列表,并为新的解算器选择条目。
  4. 要查看和修改解算器的特性,请单击 Navigator 窗口中角色的文件夹或 Solvers 文件夹下的解算器条目,并打开 Properties 窗口。

    大多数解算器的控件直接显示 HumanIK HIKPropertySetState 对象的角色特性。有关这些特性及其值的详细信息,请参见角色特性下的主题。

    解算器提供一些其他控件:

    特性

    说明

    Weight

    确定有多少权重指定给 HumanIK 解算器(相对于本地 MotionBuilder 解算器),即两个解算器产生的姿势之间的混合。权重设置为 100 时仅使用 HumanIK 解算器;权重设置为 0 时仅使用本地 MotionBuilder 解算器。

    Save HIK Character

    将代表当前角色的 HIKCharacter 导出到文件。

    通过调用 HIKLoadCharacter 函数,可以将此文件加载到内存中,以便在运行时与 HumanIK 配合使用。

    Save HIK State

    将代表角色骨架的当前姿势的 HIKCharacterState 导出到文件。

    通过调用 HIKLoadCharacterState 函数,可以将此文件加载到内存中,以便在运行时与 HumanIK 配合使用。

    Save HIK Effectors

    将代表角色控制装备的当前位置、旋转和 IK 约束的 HIKEffectorSetState 导出到文件。

    通过调用 HIKLoadEffectorState 函数,可以将此文件加载到内存中,以便在运行时与 HumanIK 配合使用。

    Save HIK Properties

    将代表角色当前设置的 HIKPropertySetState 导出到文件。

    通过调用 HIKLoadPropertySetState 函数,可以将此文件加载到内存中,以便在运行时与 HumanIK 配合使用。