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