1

我想在 Maya 中装配一个魔方,所以它可以向任何方向旋转任意次数。任何旋转都将以 90 度为增量。这些是我的大纲中的对象:

26 个块(立方体的中心块不是必需的)9 个旋转控制器(3 个用于高度/宽度/深度的行/列)1 个根控制器

诀窍是将各个块的控制权从一个控制器传递到下一个控制器。在任何给定时间,一个块可以受到 3 个不同的控制器的影响。但是,在旋转之后,控制器会发生变化。

我想我需要创建一系列矩阵(二维数组),其中 9 个 - 每个控制器一个。将块分配给它们,然后在旋转后重新分配。我想我需要一个临时矩阵来交换。除此之外,我不知道该怎么做。这些矩阵应该是根控制器的参数吗?大概。

在这件事上的任何帮助都会有所帮助。我是 MEL 的新手,但我有 C/C++ 等方面的背景。您将如何装配功能性魔方?

4

3 回答 3

1

您只需将旋转插值转换为四元数插值以进行旋转,然后一次键入一个数据包。只要确保在您键入序列困难时永远不会倒退。

于 2012-08-04T09:20:53.897 回答
1

您也可以通过混合约束权重来做到这一点。6 个中心部件是您的控件。Parent 将所有其他多维数据集约束到所有 6 个控件。现在,每个立方体都有一个约束节点,其中包含 6 个可以键入的权重输入。将要旋转的控制器的权重设置为 1,将要旋转的面的立方体的所有其他控制器的权重设置为 0。对于当前移动中不涉及的立方体,将所有权重设置为 0。

如果您想变得更高级,请为整个事物创建一个主布局控件,添加一个属性以使用选项 1 到 6 设置哪个控制器处于活动状态,并让它在更改时更新所有立方体的权重。您可以通过查看它与当前活动的控制器立方体的距离来确定一个立方体是否应该完全停用(所有权重 -> 0);活动面上的相邻立方体都将靠近,所有其他立方体将更远。

于 2012-08-22T07:26:35.927 回答
1

这是用于下载的 Rubic 立方体工具http://www.geonak.com/downloads/RubixCube.zip

于 2012-08-03T18:52:48.187 回答