3ds Max のコントローラは、オブジェクトのスケール、色、変換の変化など、キーフレーム アニメーションに関連する値をコントロールするプラグインです。リスト コントローラは複数のコントローラを組み合わせて使用し、オブジェクト間の複数の関係を組み合わせてコントロールしたいときに大変役立ちます。
特に便利なのは、たとえば異なる方向を向いている親オブジェクトと子オブジェクトの関係を、式とコンストレイントを使ってコントロールしたいような場合です。リスト コントローラの中にさまざまなコントローラを含めることで、子オブジェクトのローカル方向をコントロールすることができ、同時に親オブジェクトのローカル方向に拘束した状態を保つことができます。
このチュートリアルでアニメートしようとしているリグの子オブジェクト(車輪)は、親オブジェクト(車体)と異なる方向を向いています。ワイヤリングを使って車輪を回転させるには、車輪を X 軸(車輪のローカル方向)ではなく Y 軸を中心に(車体の方向に基づいて)回転させなければなりません。子オブジェクトのローカル方向をコントロールするために、まずは左前輪の位置トラックと回転トラックにリスト
コントローラを追加しましょう。
シーンを設定する:
- クイック アクセス ツールバーで
([ファイルを開く])をクリックし、animation\car_rigging フォルダに移動して car_rig_01_start.max を開きます。
注:シーンの[ガンマと LUT]設定を使用するかどうかを尋ねるダイアログ ボックスが表示されたら、シーンのガンマ設定を受け入れ、[OK]をクリックします。シーンの単位を使用するかどうかを尋ねるダイアログ ボックスが表示されたら、シーンの単位を受け入れ、[OK]をクリックします。
リスト コントローラを手動で割り当てる:
シェビー(シボレー車)の左前輪の位置トラックと回転トラックにリスト コントローラを手動で割り当ててみましょう。
- メイン ツールバーの[選択セット]リストから[Garage_All]を選択します。
- パースペクティブ ビューポートを右クリックし、クアッド メニューから[選択を非表示]を選択します。
これで、自動車以外のシーン オブジェクトがすべて非表示になります。
- H キーを押して[シーンから選択]ダイアログ ボックスを表示し、Chassis オブジェクト(車体)を展開します。
このオブジェクトは、4 つの車輪と 1 つのハンドルを子に持ちます。自動車の 3D モデルの典型的な階層構造です。
- オブジェクト リストから[Wheel-FL]を選択し、[OK]をクリックします。
これで、左前輪が選択された状態になります。
-
[モーション]パネルに移動し、[コントローラを割り当て]ロールアウトを展開します。
既定値のアニメーション コントローラがトラックとしてエクスプローラ形式で一覧表示されます。
- [位置 : XYZ 位置]トラックをハイライト表示し、
([コントローラを割り当て])をクリックします
- [位置コントローラを割り当て]ダイアログ ボックスで[位置リスト]をダブルクリックします。
- [コントローラを割り当て]ロールアウト
[位置 : 位置リスト]トラックのプラス記号(+)アイコンをクリックして位置リストを展開します。
- [使用可能]トラックをクリックし、再度
([コントローラを割り当て])をクリックします。
- [位置コントローラを割り当て]ダイアログ ボックスで[XYZ 位置]をダブルクリックします。
すると、1 つ目の[XYZ 位置 : XYZ 位置]トラックの下にもう 1 つ[XYZ 位置: XYZ 位置]トラックが作成されます。このトラックは、X、Y、Z 軸のキーフレーム情報を子オブジェクト(左前輪)のローカル位置に基づいてコントロールするコントローラです。
続いて、同様の手順で、左前輪の回転トラックにもリスト コントローラを割り当てます。
- [コントローラを割り当て]ロールアウトのトラック リストで[回転 : オイラー XYZ]をクリックしてから、
([コントローラを割り当て])をクリックします
- [回転コントローラを割り当て]ダイアログ ボックスで[回転リスト]をダブルクリックします。
- [コントローラを割り当て]ロールアウトのトラック リストで、[回転 : 回転リスト]トラックのプラス記号アイコンをクリックして展開します。
- [使用可能]トラックをクリックし、
[コントローラを割り当て]をクリックします
- [回転コントローラを割り当て]ダイアログ ボックスで[オイラー XYZ]をダブルクリックします。
これで、2 つ目の[オイラー XYZ: オイラー XYZ]トラックが作成されます。このトラックは、X、Y、Z 軸の回転キーフレーム情報を、左前輪のローカル座標に基づいてコントロールします。
リスト コントローラの割り当てを自動化する:
マクロ レコーダは、ユーザが行った操作を記録するシンプルなスクリプティング ユーティリティです。操作をスクリプトとして記録し、再利用することができるため、繰り返し作業を効率化できます。
前の手順では、位置と回転のリスト コントローラをシェビーの左前輪に手動で割り当てました。アニメーション リグ全体で同じ座標系を使用するために、今度はマクロ レコーダを使って残りの 3 つの車輪、車体、ハンドルにリスト コントローラを自動で割り当てていきましょう。
- 3ds Max ウィンドウ左下の MAXScript 領域を右クリックし、[リスナー ウインドウを開く]を選択します。
[MAXScript リスナー]ダイアログ ボックスが開きます。
ヒント:上部のマクロ レコーダ ペイン(ピンク色の領域)が見づらい場合は、パネルの境界のバーを下にドラッグして 2 つのペインが大体同じ面積になるようにします。このダイアログ ボックスのサイズを変更することもできます。
- メニュー バーから[マクロ レコーダ]
[有効にする]を選択します。
これ以降、3ds Max で行ったほぼすべての操作がスクリプトとして記録されます。
- 自動車の左後輪(Wheel-RL オブジェクト)を選択します。
- 先ほどの手順 6 ~ 16 を繰り返して、左後輪の位置と回転にリスト コントローラを割り当てます。
操作を行いながら、ピンク色のマクロ レコーダ領域にスクリプト データが蓄積されていく様子を確認してください。
- メイン ツールバーのグレーの部分を右クリックし([選択セット]ドロップダウンの下がクリックしやすいでしょう)、[カスタマイズ]を選択します。
- [ユーザ インタフェースをカスタマイズ]ダイアログ ボックスで[ツールバー]タブがアクティブになっていることを確認し、[新規]をクリックします。
- [新しいツールバー]ダイアログ ボックスで myTools と入力し、[OK]をクリックします。
-
[ユーザ インタフェースをカスタマイズ]ダイアログ ボックスを閉じ、作成したツールバーを[MAXScript リスナー]ウィンドウの右へ移動します。
- スクリプトの最後の 4 行をハイライト表示し、[myTools]ツールバーへドラッグします。
ツールバーにボタンが作成されます。
- この新しく作成されたボタンを右クリックし、[ボタンの外観を編集]を選択します。
- [マクロ ボタンを編集]ダイアログ ボックスで[テキスト ボタン]オプションをオンにし、[ラベル]フィールドに List Con と入力して[OK]をクリックします。
ボタンがテキスト ボタンに変わります。
- [MAXScript リスナー]ウィンドウのメニュー バーで[マクロ レコーダ]
[使用可能にする]を選択してスクリプトの記録をオフにします。
これで、今後のアクションはマクロ レコーダに記録されなくなります。
-
[MAXScript リスナー]ウィンドウを閉じてから、[myTools]ツールバーに[List Con]が完全に表示されるようにツールバーのサイズを調整します。
これで準備が整いました。[List Con]ツールを使って、残りの車輪にリスト コントローラをすばやく割り当てていきましょう。
- ビューポートで自動車の右前輪(Wheel-FR オブジェクト)を選択します。
- [myTools]ツールバーで[List Con]をクリックします。
[モーション]パネル
[アニメーション コントローラ]ロールアウトで[XYZ 位置]トラックを展開すると、作成したスクリプトによって割り当てられたリスト コントローラが表示されます。
- 最後に残った車輪(右後輪)を選択し、再度[List Con]をクリックします。
- Chassis オブジェクトについても同じ手順を繰り返します。
- さらに、SWheel オブジェクトにも同じ手順を繰り返します。
注:マクロ レコーダのスクリプトは一度に 1 つのオブジェクトにしか適用できません。したがって、オブジェクトごとに[List Con]をクリックする必要があります。
- 作業結果を mycar_rig_02.max というファイル名で保存します。
ここで作成した[myTools]ツールバーは、これ以降の作業で使用できます。
次のレッスンでは、車輪の回転をアニメートする方法を学びます。