次の例では、式コントローラを使用してオブジェクトをアニメートする方法を示します。
この例は、次の 4 つのステージに分かれています。
- エクスプレッションを作成する
- 式を修正する
- 式で変数を使用する
- 式をアニメートする
例: 球を正確な円軌道に従って移動させる式を作成するには:
- 半径 15.0 の球を作成します。
トラック ビューで式コントローラを作成します。
- アクティブなビューポートで、球を右クリックし、カーブ エディタをクリックします。
- 階層リストを下にスクロールして[オブジェクト](Objects)ブランチを表示し、必要に応じて[Sphere001]を展開して球の[位置](Position)トラックを表示します。[位置](Position)ラベルをクリックして、ハイライト表示します。
- 階層リストで[位置](Position)ラベルを右クリックし、[コントローラ/ノードを割り当て](Assign Controller \ Node)をクリックします。
3ds Max は、[コントローラを割り当て](Assign Controller)ダイアログ ボックスを開きます。
- コントローラの種類のリストで[位置式](Position Expression)を選択し、[OK]をクリックします。
3ds Max の[式コントローラ](Expression Controller)ダイアログ ボックスが開きます。
- [式](Expression)編集ボックスに次の位置式を入力し、既定値として表示されている式を上書きします。
[100*cos(360*NT), 100*sin(360*NT), 0]
球の円軌道が指定されました。NT は平均化した時間を示す変数です。 NT を使用した式で導出される移動は、アニメーションのフレーム数にかかわらず、アクティブな時間セグメントを通じて 1 回だけ実行されます。
- [評価](Evaluate)ボタンをクリックします。
- アニメーションを
再生します。球オブジェクトがワールド原点(0, 0, 0)を中心とした円軌道を描きながら移動します。中心から軌道までの半径は 100 単位です。
円の半径を変更するには:
上記の位置式では、2 つの「100」によって半径を指定しています。円軌道の半径を調整するには、この値の代わりに変数で半径を表現します。変数に任意の定数を代入すると、必要に応じて容易に半径を変更できます。
- 必要に応じてトラック ビューと[式コントローラ](Expression Controller)ダイアログ ボックスを再度開きます。
- [式コントローラ](Expression Controller)ダイアログ ボックスの[名前](Name)フィールドに radius と入力します。[スカラー](Scalar)が選択されていることを確認し、[作成](Create)ボタンをクリックします。
ダイアログ ボックスの[スカラー](Scalars)リストに変数名「radius」が表示されます。
- [定数を割り当て](Assign Constant)をクリックします。
3ds Max の「radius」という名前のダイアログ ボックスが開きます。
- [値](Value)フィールドに 150 と入力し、[OK]をクリックします。
変数 radius の値が 150 に設定されます。
次に、リテラル値を変数名に置き換えて、式で新しい変数を使用する必要があります。
新しい変数を式で使用するには:
- [式](Expression)編集ボックスで、2 箇所の 100 を radius に変更します。変更後の式は次のようになります。
[radius*cos(360*NT), radius*sin(360*NT),0]
- [評価](Evaluate)ボタンをクリックします。
- アニメーションを
再生します。球オブジェクトがワールド原点(0, 0, 0)を中心とした円軌道を描きながら移動します。中心から軌道までの半径は 150 単位です。
球をボックスの周りで回転させるには:
- 1 辺 40 単位ほどのボックス オブジェクトを作成し、そのオブジェクトの位置を 3 ~ 4 個のキーフレームにわたってアニメートします。
- 球を
選択します。
- [式コントローラ](Expression Controller)ダイアログ ボックスの[名前](Name)フィールドに boxposn と入力します。[ベクトル](Vector)を選択し、[作成](Create)ボタンをクリックします。
ダイアログ ボックス左下の[ベクトル](Vectors)リストに「boxposn」と表示されます。
変数名の大文字と小文字は区別されます。上記の変数名は、すべて小文字で入力します。
- ([コントローラを割り当て](Assign Controller))をクリックします。
[トラック ビュー選択](Track View Pick)ダイアログ ボックスが表示されます。このダイアログ ボックスには、[トラック ビュー - ドープ シート](Track View-Dope Sheet)の左側と同様のオブジェクト階層が表示されます。
- 階層リストで[Box001]の位置コントローラを選択し、[OK]をクリックします。
- [式](Expression)編集ボックスの式に、位置のオフセットとして boxposn を追加します。
[radius * cos(360*NT), radius * sin(360*NT), 0]+boxposn.
- [評価](Evaluate)をクリックして、[閉じる](Close)をクリックします。
アニメーションをもう一度

再生します。球がボックス オブジェクトを中心として回転します。ボックスを移動すると、球も同様に移動します。
注: 手順 5 で Box001 の位置コントローラを選択すると、変数に位置コントローラの値が保持されます。親ノードがある場合、この位置の値は、親ノードのトランスフォームを基準とする相対的な値です。代わりにノード Box001 を選択すると、変数には Box001 のワールド位置(親のトランスフォーム + ノードのトランスフォーム)が保持されます。