绑定时使用镜像空间的问题

Issue with working with mirrored space when rigging

提问人:tommyk 提问时间:10/10/2023 更新时间:10/10/2023 访问量:27

问:

我知道从技术上讲,这是一个编码空间。这是一个编码问题,但相对于 Autodesk Maya 和绑定。这比实际的代码示例更具理论性。

我正在尝试为 FK 和 IK 匹配创建一个 Python 脚本。现在,我正在尝试将 FK 控件与 FK 空间中的 IK 目标关节相匹配。我的问题是我正在使用的钻机有镜像的四肢。因此,右侧沿 Z 轴镜像。这允许将奇异值(例如 42)输入到旋转中,以在两侧镜像相似的行为。(所以 Y 上的 42 会使左右肢体向外移动)

右侧控件通过定义其空间的父偏移矩阵属性进行镜像。问题是,当我运行匹配脚本(在左侧工作)时,它会在右侧给我相反的旋转(因此在特定旋转值上为 -16 而不是 16)。

我想知道这是否与我在世界空间中获得价值观有关。相反,我应该获取对象的父空间吗?因为让它进入世界空间会相对于世界发生转变,这将是负面的。所以,在这样做时,这就是为什么我的行为没有反映出来。

如果我要计算相对于设置镜子的空间的所有内容,这是否能确保我的计算都是非镜像的,因此在技术上是镜像的?

我的代码很简单,如下所示:

获得FK控制权(我们希望在世界空间中匹配) 在世界空间获得FK关节 在世界空间中获取IK关节(我们的目标匹配)。

通过联合矩阵 * 逆父矩阵计算约束矩阵

计算由逆约束矩阵 * 目标 IK 联合矩阵偏移的旋转。

分解为旋转。

cmds.xform(FK_Ctrl, rotations=偏移, ws=1)

谢谢。

Python 数学 矩阵

评论


答: 暂无答案