高度なワークフロー: アニメーション レイヤでのコンストレイントとエクスプレッションの使用

 
 
 

アニメーション レイヤをコンストレイントやエクスプレッションと共に使用して、シーンのオブジェクトを操作することができます。アニメーション レイヤへのコンストレイントの追加については、コンストレイントをアニメーション レイヤに追加するを参照してください。

アニメーション レイヤにエクスプレッションを追加するワークフローはより複雑で、ある程度の既知の制約があることに注意してください。アニメーション レイヤおよびコンストレイントに対する既知の制限を参照してください。

エクスプレッションを設定してレイヤ アニメーションがあるオブジェクトを制御するには、操作するアトリビュートに対応したブレンド ノードをレイヤから探す必要があります。その後、このブレンド ノードの入力 B (inputB)アトリビュートを操作するために、エクスプレッションを設定します。

次の例は、レイヤ化されたアニメーションを持つオブジェクトの移動 Y アトリビュートにエクスプレッションを追加する方法を表しています。

レイヤ化されたアニメーションを制御するエクスプレッションを作成するには

  1. 新規シーンを作成し、エクスプレッションを使ってアニメートしたいオブジェクトを追加します。この例では、球のアニメートについて説明します。
  2. 球を選択したままアニメーション レイヤ エディタ(Animation Layer Editor) をクリックし、球のアトリビュートを含むレイヤを作成します。(新規レイヤには、既定で AnimLayer1 という名前がつけられます)。

    次の手順では、球の移動 Y アトリビュートを操作するために、AnimLayer1 にエクスプレッションを追加する方法について説明します。

  3. 以下の手順を実行して、エクスプレッションを接続する先のブレンド ノードを見つけます。
    • アニメーション レイヤ エディタ(Animation Layer Editor)で、レイヤ > アセット内にまとめる(Layers > Package Into Assets)を選択します。アニメーション レイヤをアセットにまとめるも参照してください。
    • ハイパーグラフ(Hypergraph)ウィンドウ(ウィンドウ > ハイパーグラフ: 接続(Window > Hypergraph: Connections))を開き、AnimLayer1_Asset をダブルクリックして展開し、ネストされた AnimLayer1_BlendNodes アセットをダブルクリックして展開します。
    • pSphere1_translateY_AnimLayer1 ブレンド ノードを選択します。

      これは球の移動 Y アトリビュートに対応するブレンド ノードです。

  4. ウィンドウ > アニメーション エディタ > エクスプレッション エディタ(Windows > Animation Editors > Expression Editor)を選択し、エクスプレッション エディタ(Expression Editor)を開きます。
  5. アトリビュート(Attributes)領域の inputB を選択し、エクスプレッション(Expression)領域にあるブレンド ノードの inputB を制御するためのエクスプレッションを入力します。

    たとえば、球の移動 Y 値を制御する正弦関数を追加するには、次のように入力します。

    pSphere1_translateY_AnimLayer1.inputB = sin(time);
    

    アニメーションのエクスプレッションを作成するも参照してください。

  6. 作成(Create)をクリックします。

    入力 B (inputB)アトリビュート用に記述したエクスプレッションにより、AnimLayer1 で球の移動 Y アニメーションが制御されるようになります。このサンプル エクスプレッションにより、時間とともに変化する正弦波に従って、球が上下に移動するようになります。

コンストレイントとエクスプレッションを持つアニメーション レイヤに対する既知の制限

コンストレイントまたはエクスプレッションを持つアニメーション レイヤを使用する場合は、以下の既知の制限事項と回避方法に注意してください。

関連項目