エクスプレッションを保存して再利用する

エクスプレッションを記述したら、テキスト編集アプリケーションにコピー&ペーストするか、アニメーションプリセットまたはプロジェクトテンプレートに保存して、将来に備えて保存します。ただし、エクスプレッションはプロジェクト内の別のレイヤーと関連して記述され、特定のレイヤー名を使用する場合があるため、エクスプレッションを変更してプロジェクト間で転送する必要があります。

通常の JavaScript 関数構文を使用して、エクスプレッション内で独自の関数を定義できます。次の例では、2 つの値の平均を計算する関数を定義し、この関数を使用する最後の行を定義します。

  function average(a, b) 
  { 
    return (a + b) / 2; 
  } 
  average(position, thisComp.layer(1).position); 
注意: 各関数は、使用する各エクスプレッション内で完全に定義する必要があります。関数を追加できるグローバルライブラリはありません。

他のプロジェクトで使用するためにエクスプレッションを保存する場合は、エクスプレッションにコメントを記述しておきます(エクスプレッションにコメントを追加するを参照)。また、何箇所も値を変更しなくて済むように、変数を使用することもできます。

例えば、次のエクスプレッションでは、先頭にエクスプレッションの処理についてのコメントを記述し、変数宣言および初期化の後にはその変数を説明する簡単なコメントを記述しています。

  /*  This expression on a Source Text property reports the name 
      of a layer and the value of its Opacity property. */  
    
  var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer  
    
  thisComp.layer(myLayerIndex).name + ": \rOpacity = " +   thisComp.layer(myLayerIndex).opacity.value

エクスプレッションを含むアニメーションプリセットをテンプレートとして保存すると、別のプロジェクトで再利用することができます。ただし、エクスプレッションがそのプロジェクトに存在するプロパティだけを参照する場合に限られます。プロパティにエクスプレッションが含まれていてキーフレームが含まれていないプリセットを保存した場合は、エクスプレッションのみが保存されます。プロパティに 1 つまたは複数のキーフレームが含まれている場合は、プリセットにすべてのキーフレーム値とエクスプレッションが保存されます。

レイヤープロパティのエクスプレッションを、プロパティのキーフレームと一緒に、またはキーフレームなしでコピーできます。

  • あるプロパティのエクスプレッションとキーフレームを別のプロパティにコピーするには、タイムラインパネルでコピー元のレイヤープロパティを選択してコピーしてから、コピー先のレイヤープロパティを選択してペーストします。
  • キーフレームを除き、プロパティのエクスプレッションのみを別のプロパティにコピーするには、コピー元のプロパティを選択し、編集/エクスプレッションのみをコピーを選択してから、コピー先のプロパティを選択してペーストします。
    キーフレームなしでエクスプレッションをコピーする方法は、複数のエクスプレッションを 1 つまたは複数の新規レイヤーに同時にコピー&ペーストする場合や、1 つのエクスプレッションを複数のレイヤーにコピー&ペーストする場合に便利です。
注意: キーフレームや他のアイテムをペーストするときと同様、通常は After Effects によってコピー先のプロパティが自動的に決定されます。この自動処理は、「位置」プロパティを別のレイヤーの「位置」プロパティにコピーする場合は問題ありませんが、「位置」プロパティから「スケール」プロパティにエクスプレッションをコピーする場合は、コピー先のプロパティを選択する必要があります。