エクスプレッションを編集

Adobe After Effectsで表現を編集および調整して、アニメーションの動作を調整し、問題をトラブルシューティングし、動的プロパティの制御を向上させます。

プロパティからエクスプレッションを追加または削除する

キーフレームを使用できるプロパティは、エクスプレッションを使用できます。

エクスプレッションを追加および表示するには、タイムラインパネルでプロパティを選択して、次のいずれかの操作を行います。

  • アニメーションエクスプレッションを追加を選択します。 削除するには、アニメーションエクスプレッションを削除を選択します。
  • タイムラインパネルまたはエフェクトコントロールパネルで、Alt キーを押しながらクリック(Windows)または Option キーを押しながらクリックして、プロパティ名の横にあるストップウォッチボタンをクリックします。この手順を繰り返して、エクスプレッションを削除します。

エクスプレッションがアクティブになると、プロパティの下に 4 つのアイコンが表示され、値が赤くなります。

ピックウイップは、After Effects でリンクするためのドラッグ&ドロップ選択ツールです。 エクスプレッションの横にあるスパイラルアイコンを選択して、選択モードに入ります。 他のプロパティにドラッグすると、ウイップはカーソルにリンクします。 クリックを離すと、その下のプロパティが対象になり、エクスプレッションの構文が自動的に生成されます。

エクスプレッションの選択

レイヤーおよびコンポジションにまたがるプロパティのセットをリンクさせるには、プロパティリンクを使用します。

  1. 1 つのプロパティまたはプロパティのセットを選択し、編集プロパティリンクと一緒にコピーまたは編集相対的プロパティリンクと一緒にコピーを選択します。

  2. 次に、コンポジション内の任意のレイヤーにそれらのプロパティをペーストします。 ペーストされたプロパティは、コピーされたプロパティのあるレイヤーに接続されます。 元のプロパティに対して行われた変更が、ペーストされたプロパティリンクのインスタンスに反映されます。

    (または)

    プロパティリンクを含めてレイヤー全体をコピーしてペーストすることで、元のプロパティに対して行われた変更に従う複製を作成することもできます。

相対的プロパティリンクと一緒にコピー」コマンドでレイヤーの「位置」プロパティをコピーした結果は次のようになります。

thisComp.layer(“control_layer”).transform.position

プロパティリンクと一緒にコピー」コマンドでレイヤーの「位置」プロパティをコピーした結果は次のようになります。

comp(“source_comp”).layer(“control_layer”).transform.position

エクスプレッションを無効にする

エクスプレッションを一時的に無効にするには、エクスプレッションを有効化スイッチを選択します。 エクスプレッションが無効になると、スイッチにスラッシュが付きます。

エクスプレッション

エクスプレッションを編集する

ピックウイップを使ってエクスプレッションを 編集する

JavaScript や After Effects のエクスプレッションの使用に不安がある場合は、ピックウイップツールを使用して作業を開始してください。 このツールを使用して、エクスプレッションのプロパティを簡単にリンクさせることができます。 

テキスト

  1. プロパティにエクスプレッションが適用されていることを確認します。 例えば、スAlt (Windows) または Opt (macOS) を押しながら、「スケール」プロパティの左側にあるストップウォッチアイコンをクリックして、エクスプレッションを適用します。

  2. タイムラインパネルに移動し、テキストフィールドの内側を選択して、エクスプレッションエディターをアクティブにします。 エクスプレッションを編集する位置にカーソルを置きます。

  3. エクスプレッションは、挿入ポイントのエクスプレッションフィールドに入力します。

    • エクスプレッションフィールドのテキストを選択した状態でこの操作を行うと、そのテキストが新しいエクスプレッションテキストに置き換えられます。 
    • エクスプレッションフィールドに挿入ポイントがない場合は、フィールド内のすべてのテキストが新しいエクスプレッションテキストに置き換えられます。
  4. ピックウイップはプロパティの名前または値までドラッグできます。 プロパティの名前にドラッグした場合は、すべての値が 1 つの値としてエクスプレッションフィールドに表示されます。 例えば、ピックウイップを「位置」プロパティの名前にドラッグすると、次のようなエクスプレッションが表示されます。

      thisCompayer(“Layer 1”)ransformosition
  5. ピックウイップを「位置」プロパティのコンポーネント値の 1 つ(例えば y 値)にドラッグすると、次のようなエクスプレッションが表示されます。 プロパティの x 座標と y 座標は、位置プロパティの y 値にリンクされます。

      temp = thisCompayer(“Layer 1”)ransformosition[1 
      [temp, temp]
メモ

ピックウイップを使用してあるレイヤーを参照する エクスプレッションを作成し、そのレイヤーの名前が同じコンポジション内の 他のレイヤーと同じ場合、その他のレイヤーの名前は変更されます。 そのレイヤーの名前は、以前のレイヤー名の最後に数字が付けられた名前に変更されます。 これにより、エクスプレッションはコンポジション内の 1 つのレイヤーを 明確に参照できるようになります。

ピックウイップによって作成されたエクスプレッションの形式

ピックウイップによって作成されたエクスプレッションの形式は、「エクスプレッションピックウイップによる簡潔な英語を記述」環境設定によって決定されます。

  • 編集環境設定一般(Windows)
  • After Effects設定スクリプトとエクスプレッション(macOS)

ピックウイップは、タイムラインパネルに表示されるプロパティ名を使用して、エクスプレッションを作成します。 これらの名前は内蔵のため、After Effects が別の言語で実行されても作動します。 編集可能なプロパティ名は、二重引用符で囲まれており、言語間で同じように維持されます。 プロジェクトが他の言語で共有されていない場合は、このオプションを選択解除します。

次は、簡潔な英語で記述したエクスプレッションの例です。

  thisCompayer(“Layer 1”)ransformosition

次は、 簡潔な英語を使わずに記述したエクスプレッションの例です。

  thisComp.layer(“Layer 1”)(“Transform”)(“Position”)
メモ

デフォルトでは 簡潔な英語が選択されているので、この文書のほとんどの例やイラストでは 簡潔な英語を使用しています。

エクスプレッションを手動で編集する

エクスプレッションを手動で編集する

  1. エクスプレッションフィールドをクリックして、テキスト編集モードに入ります。 テキスト編集モードになると、エクスプレッション全体が選択されます。 既存のエクスプレッションに追加する場合は、追加位置をクリックして挿入ポイントを表示します。クリックしないと、エクスプレッション全体が置き換えられます。

  2. エクスプレッションフィールドでテキストを入力し、編集します。この際、エクスプレッション言語メニューを使用することもできます。 複数行あるエクスプレッションの一部が見えない場合は、エクスプレッションフィールドの下部または上部をドラッグしてフィールドのサイズを変更します。

  3. テキスト編集モードを終了し、エクスプレッションを有効にするには、 次のいずれかの操作を行います。
    • テンキーパッドの Enter キーを押します。
    • エクスプレッションフィールドの外側をクリックします。

エクスプレッションとエクスプレッション グラフを表示する

タイムラインパネルでのエクスプレッションの表示

  • エラーがあるエクスプレッションを表示

エクスプレッションエラーを含むプロパティのみ表示することを選択して、エラーを簡単に表示および修正することができます。 次の手順を実行します。

  1. エラーを表示するレイヤーを選択して右クリックし、フライアウトメニューを開きます。
  2. 表示エクスプレッションエラーを表示を選択します。
エクスプレッションエラーを表示

エクスプレッションを表示

  • エクスプレッションが含まれるプロパティのみを表示します。

エクスプレッションが含まれるプロパティのみを表示するには、1 つまたは複数のレイヤーを選択し、E キーを 2 回押します。

タイムラインの検索

  • タイムラインの検索

タイムラインパネルの検索フィールドを使用して、エクスプレッションやプロパティのその他のコンポーネントを検索できます。 検索文字列をエクスプレッションで指定すると、プロパティとプロパティのグループおよびレイヤーは検索結果セットに表示されます。

メモ

エクスプレッションフィールドのサイズを変更するには、レイヤーバーモードでフィールドの下端、またはグラフエディターモードでフィールドの上端を上下にドラッグします。

グラフエディター内のエクスプレッション

グラフエディターモードでは、1 つのエクスプレッションフィールドが、グラフエディターの下部にサイズ変更可能なボックスとして表示されます。 これにより、選択したプロパティのエクスプレッションのみが表示されます。 同時に複数のエクスプレッションフィールドを表示するには、タイムラインパネルをレイヤーバーモードに切り替える必要があります。

テキスト

レイヤーバーモードとグラフエディターモードを切り替えるには、Shift+F3 キーを押します。 タイムラインパネルの上部にあるグラフエディター ボタンを使用して、この操作を実行することもできます。 

テキスト

グラフエディターにエクスプレッションフィールドを表示するには、グラフエディターの下部にある「グラフの種類とオプションを選択」メニューから「エクスプレッションエディターを表示」を選択します。 プロパティにエクスプレッションを追加したときは、エクスプレッションエディターが表示されます。

テキスト

エクスプレッションによって値または速度のグラフがどのように変化するかを確認するには、グラフエディターで値グラフまたは速度グラフを表示しているときに、「エクスプレッション実行後のグラフを表示」ボタンを選択します。

グラフエディターの読み取り

灰色のグラフは、エクスプレッション適用前の値または速度を表します。鮮やかな色のグラフはエクスプレッション適用後の値または速度を表します。「位置」プロパティのグラフオーバーレイをオンにすると、コンポジションパネルのモーションパス表示が変化するので、エクスプレッションの影響を受けたパスを確認することができます。

グラフに色を表示(gif)

エクスプレッションにコメントを追加する

複雑なエクスプレッションを記述する場合は、エクスプレッションの機能とその作成方法について説明するコメントを追加する必要があります。

コードにコメントを記述するには、次のいずれかの構文を使用します。

  • コメントの先頭に「//」を入力します。 // と行末の間にあるテキストはすべて無視されます。
    例: //This is a comment.
  • コメントの先頭に「/*」、コメントの末尾に「*/」を入力します。 // の間にあるテキストはすべて無視されます。
    例:/This is a multiline comment./

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

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

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

  function average(a, b) 
  { 
    return (a + b) / 2; 
  } 
  average(position, thisComp.layer(1).position);
メモ

各関数は、 使用する各エクスプレッション内で完全に定義する必要が あります。 関数を追加できるグローバルライブラリは ありません。

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

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

  /*  ソーステキストプロパティのこのエクスプレッションでは、レイヤー名と
その不透明度プロパティの値が表示されます。 */  
    
  var myLayerIndex = 1; // layer to inspect, initialized to 1, for top layer  
 
 thisCompayer(myLayerIndex)ame + “: \rOpacity = ” +   thisCompayer(myLayerIndex).opacityalue

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

エクスプレッションをプリセットとして保存する

次の手順を使用して、エクスプレッションをプリセットとして保存し、他のプロジェクトで使用することができます。

  1. タイムライン」で、エクスプレッションを適用するプロパティを選択します。例えば、エクスプレッションがレイヤーの「回転」プロパティに適用されているので、その条件を選択します。 次に、アニメーションアニメーションプリセットを保存を選択します。

  2. プリセットの名前を「Time40」等のように変更して保存します。 デフォルトでは、Adobe After Effects プリセットファイルとしてユーザープリセットフォルダーに保存されます。

  3. プリセットを適用するには、エフェクト&コントロールメニューの「アニメーションプリセット」を開きます。 「プリセット」と「ユーザープリセット」の 2 つのフォルダーがある場合は、「ユーザープリセット」を開きます。 After Effects で作成したすべてのプリセットが表示されます。 「Time40」プリセットを作業中のレイヤーにドロップすると、エクスプレッションが適用されます。

レイヤープロパティからエクスプレッションをコピーする

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

  • あるプロパティのエクスプレッションとキーフレームを別のプロパティにコピーするには、タイムラインパネルでコピー元のレイヤープロパティを選択してコピーしてから、コピー先のレイヤープロパティを選択してペーストします。
  • キーフレームを除き、プロパティのエクスプレッションのみを別のプロパティにコピーするには、コピー元のプロパティを選択し、編集エクスプレッションのみをコピーを選択してから、コピー先のプロパティを選択してペーストします。
ヒント

キーフレームなしでエクスプレッションをコピーする方法は、複数のエクスプレッションを 1 つまたは複数の新規レイヤーに同時にコピー&ペーストする場合や、1 つのエクスプレッションを複数のレイヤーにコピー&ペーストする場合に便利です。

メモ

キーフレームや他のアイテムをペーストするときと同様、通常は After Effects によってコピー先のプロパティが自動的に決定されます。 例えば、1 つのレイヤーから別のレイヤーに位置プロパティをコピーします。 ただし、「位置」プロパティから「拡大・縮小」プロパティにエクスプレッションをペーストする場合は、コピー先のプロパティを選択する必要があります。

その他のエクスプレッション関連リソース

ここまでで、エクスプレッションの背景となる概念を理解したので、今度はコミュニティにアクセスして実例を参考にしたり、自分の作品を共有したりしてください。

また、MotionScript web サイトで、Dan Ebbert の優れたエクスプレッションの事例コレクションとチュートリアルを確認することもできます。

Adobe, Inc.

ヘルプをすばやく簡単に入手

新規ユーザーの場合