1

Maya でルービック キューブをリグして、任意の方向に何度でも回転できるようにします。回転は 90 度単位で行われます。これらは私の Outliner のオブジェクトです:

26個のブロック(立方体の中心ブロックは不要) 9個の回転コントローラー(高さ/幅/奥行きの行/列用に3個) 1個のルートコントローラー

秘訣は、個々のブロックの制御をあるコントローラーから次のコントローラーに渡すことです。任意の時点で、ブロックは 3 つの異なるコントローラーの影響を受ける可能性があります。ただし、ローテーション後はコントローラーが変わります。

一連のマトリックス (2D 配列) を作成する必要があると思います。そのうちの 9 つ (コントローラーごとに 1 つ) です。それらにブロックを割り当て、ローテーション後に再割り当てします。スワップには一時的なマトリックスが必要だと思います。これを超えて、私はこれについてどうすればよいかわかりません。これらの行列は、ルート コントローラーのパラメーターにする必要がありますか? おそらく。

この問題の助けは役に立ちます。MEL は初めてですが、C/C++ などのバックグラウンドがあります。機能的なルービック キューブをどのように装備しますか?

4

3 に答える 3

1

ここでは、ダウンロード用のルービック キューブ ツールを使用していますhttp://www.geonak.com/downloads/RubixCube.zip

于 2012-08-03T18:52:48.187 に答える
1

必要なのは、回転の補間をクォータニオン補間に変更し、一度に 1 つのパケットにキーを設定することだけです。シーケンスをタフにキーイングするときは、決して逆戻りしないようにしてください。

于 2012-08-04T09:20:53.897 に答える
1

コンストレイン ウェイトをブレンドすることによっても実行できます。中央の 6 ピースがコントロールです。親は、他のすべてのキューブを 6 つのコントロールすべてに制約します。各立方体には、キーを設定できる 6 つの重み入力を持つコンストレイン ノードが含まれます。回転させようとしているコントローラーの重みを 1 に設定し、回転させている面の立方体の他のすべての重みを 0 に設定します。現在の移動に関与していない立方体のすべての重みを 0 に設定します。

より洗練されたものにしたい場合は、全体のマスター レイアウト コントロールを作成し、オプション 1 から 6 でどのコントローラーをアクティブにするかを設定する属性を追加し、変更されたときにすべてのキューブの重みを更新するようにします。現在アクティブなコントローラー キューブまでの距離を確認することで、キューブを完全に非アクティブ化する (すべての重み -> 0) 必要があるかどうかを判断できます。アクティブな面の隣接する立方体はすべて近くにあり、他のすべての立方体は遠くにあります。

于 2012-08-22T07:26:35.927 に答える