アニメーション レイヤをコンストレイントやエクスプレッションと共に使用して、シーンのオブジェクトを操作することができます。アニメーション レイヤへのコンストレイントの追加については、「コンストレイントをアニメーション レイヤに追加する」を参照してください。
アニメーション レイヤにエクスプレッションを追加するワークフローはより複雑で、ある程度の既知の制約があることに注意してください。「アニメーション レイヤおよびコンストレイントに対する既知の制限」を参照してください。
エクスプレッションを設定してレイヤ アニメーションがあるオブジェクトを制御するには、操作するアトリビュートに対応したブレンド ノードをレイヤから探す必要があります。その後、このブレンド ノードの入力 B (inputB)アトリビュートを操作するために、エクスプレッションを設定します。
次の例は、レイヤ化されたアニメーションを持つオブジェクトの移動 Y アトリビュートにエクスプレッションを追加する方法を表しています。
レイヤ化されたアニメーションを制御するエクスプレッションを作成するには
- 新規シーンを作成し、エクスプレッションを使ってアニメートしたいオブジェクトを追加します。この例では、球のアニメートについて説明します。
- 球を選択したままアニメーション レイヤ エディタ(Animation Layer Editor)で をクリックし、球のアトリビュートを含むレイヤを作成します。(新規レイヤには、既定で AnimLayer1 という名前がつけられます)。
次の手順では、球の移動 Y アトリビュートを操作するために、AnimLayer1 にエクスプレッションを追加する方法について説明します。
- 以下の手順を実行して、エクスプレッションを接続する先のブレンド ノードを見つけます。
- ウィンドウ > アニメーション エディタ > エクスプレッション エディタ(Windows > Animation Editors > Expression Editor)を選択し、エクスプレッション エディタ(Expression Editor)を開きます。
- アトリビュート(Attributes)領域の inputB を選択し、エクスプレッション(Expression)領域にあるブレンド ノードの inputB を制御するためのエクスプレッションを入力します。
たとえば、球の移動 Y 値を制御する正弦関数を追加するには、次のように入力します。
pSphere1_translateY_AnimLayer1.inputB = sin(time);
(「アニメーションのエクスプレッションを作成する」も参照してください。
- 作成(Create)をクリックします。
入力 B (inputB)アトリビュート用に記述したエクスプレッションにより、AnimLayer1 で球の移動 Y アニメーションが制御されるようになります。このサンプル エクスプレッションにより、時間とともに変化する正弦波に従って、球が上下に移動するようになります。
コンストレイントとエクスプレッションを持つアニメーション レイヤに対する既知の制限
コンストレイントまたはエクスプレッションを持つアニメーション レイヤを使用する場合は、以下の既知の制限事項と回避方法に注意してください。
- アニメーション レイヤ エディタの書き出しツールを使用して、コンストレイントやエクスプレッションを含むレイヤを書き出すことはできません「アニメーション レイヤを読み込み/書き出す」も参照してください。
- グラフ エディタ(Graph Editor)は、コンストレイントを持つアニメーション レイヤの一部をサポートしていません。コンストレイント アトリビュートは、レイヤに追加されている場合でも、常に、Base Animation と関連付けて表示されます。
- ドリブン キーの設定(Set Driven Key)カーブをアニメーション レイヤに追加した後で、ドリブン キーの設定(Set Driven Key)ウィンドウを使用して、このカーブを編集することはできません。ただし、グラフ エディタ(Graph Editor)を使用して編集することはできます(「ドリブン キーの設定」も参照)。
- 新規ターゲットをアニメーション レイヤに移動した後で、マルチソース コンストレイントに追加することはできません。代わりに、コンストレインのインスタンスを複数持つレイヤを複数作成してから、目的のエフェクトが得られるようにレイヤのウェイト値を調整します。