例:エクスプレッション言語の要素を使ってエクスプレッションを記述する

ここでは、エクスプレッション言語の要素を使用してエクスプレッションを記述する例を紹介します。この例で作成されるエクスプレッションは、「平面 2」の「位置」を「平面 1」の「位置」プロパティにリンクし、「平面 2」の動きは「平面 2」の動きの 2 秒分オフセットされます。

  1. 2 つの平面レイヤー(「平面 1」 と「平面 2」)を作成します。

  2. キーフレームを使用して、「平面 1」の「位置」プロパティ値をアニメートします(アニメーション、キーフレームおよびエクスプレッションについてを参照)。

  3. 「平面 2」の「位置」プロパティを選択して、アニメーション/エクスプレッションを追加を選択するか、Alt キー(Windows)または Option キー(Macintosh)を押しながらプロパティのストップウォッチボタン をクリックします。初期設定では、次のエクスプレッションが表示されます。

      transform.position
  4. transform.position を次のエクスプレッションで直接上書きします。

      thisComp
  5. 要素 thisComp は Global 属性で、その値は、現在のコンポジションを表す Comp オブジェクトです。このエクスプレッションで thisComp の後に入力できる要素を確認するには、グローバルオブジェクト、属性、メソッドグローバルオブジェクト、属性およびメソッド の戻り値を調べます。

    thisComp は Comp オブジェクトを返します。次に、Comp の属性とメソッドを参照して、Comp オブジェクトで使用できる属性およびメソッドを確認します。1 つの選択肢として layer(index) があります。かっこ内のインデックス(数値)に、使用するレイヤーを示す番号を指定します。この例では、「平面 1」がコンポジションの最初のレイヤーです。アクティブなコンポジションの最初のレイヤーから値を取得するには、次のようにエクスプレッションの末尾に .layer(1) と入力します。

      thisComp.layer(1)
  6. 再びエクスプレッション要素リファレンスを参照して、layer(index) が Layer オブジェクトを返すことを確認します。Layer General の属性とメソッドを参照して、使用する要素を確認します。例えば、レイヤーの「位置」プロパティの値を取得するには、以下のようにエクスプレッションの末尾に .position と入力します。

      thisComp.layer(1).position 
  7. Layer General の属性とメソッドから、position 属性が Property を返すことがわかります。Property の属性とメソッドを参照すると、このエクスプレッションに時間係数を追加できることがわかります。現在の時刻から 2 秒後など、特定の時刻を追加するには、次のようにエクスプレッションの末尾に .valueAtTime(time+2) と入力します。

      thisComp.layer(1).position.valueAtTime(time+2)
  8. Property の属性とメソッドから、valueAtTime(time) メソッドが Number または Array を返すことがわかります。エクスプレッションが Number、Array または Boolean (true または false)を返す場合は、エクスプレッションにその他の属性またはメソッドを追加することはできません(ただし、必要に応じて、+-*/ などの演算子を使用することはできます)。