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

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

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

エクスプレッションを設定してレイヤ アニメーションがあるオブジェクトを制御するには、操作するアトリビュートに対応したブレンド ノードをレイヤから探す必要があります。その後、このブレンド ノードの入力 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 アニメーションが制御されるようになります。このサンプル エクスプレッションにより、時間とともに変化する正弦波に従って、球が上下に移動するようになります。

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

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

関連項目