2012-08-03 69 views
1

我想在Maya中裝配魔方,因此它可以在任何方向和任意次數上旋轉。任何旋轉將以90度遞增。這些人是我大綱的對象:使用MEL在Maya中裝配魔方

26塊(立方體的中心塊是沒有必要的) 9旋轉控制器(3用於行/高度/寬度/深度的列) 1根控制器

訣竅是將各個控制塊的控制權從一個控制器傳遞到下一個控制器。在任何時候,一個塊可能受到3個不同控制器的影響。但是,旋轉之後,控制器會改變。

我想我需要創建一系列矩陣(二維數組),其中9個 - 每個控制器一個。將塊分配給它們,然後在旋轉後重新分配。我想我需要一個臨時矩陣來交換。除此之外,我不知道如何去做這件事。這些矩陣應該是根控制器的參數嗎?大概。

在這個問題上的任何幫助將有所幫助。我是MEL的新手,但我有C/C++等背景。你會如何裝配功能性的魔方?

回答

1

所有你需要的是把旋轉插值四元數插值的旋轉,然後在關鍵時候一個包。只要確保在鍵入序列時不會倒退。

1

你也可以通過混合約束權重。 6箇中心部分是你的控制。 Parent將所有其他立方體約束到所有6個控件。每個立方體現在都會有一個約束節點,其中有6個權重輸入可供您鍵入。將要旋轉的控制器的權重設置爲1,將所有其他權重設置爲0。對於當前移動中未涉及的立方體,將所有權重設置爲0。

如果你想更有趣,可以爲整個事物創建一個主佈局控件,添加一個屬性來設置哪個控制器處於活動狀態,其中包含選項1到6,並在更改所有立方體時的權重。您可以通過查看與當前活動的控制器立方體的距離來確定是否應完全禁用立方體(所有權重 - > 0)活動臉上的相鄰立方體將全部靠近,其他所有立方體將更遠。