AfterEffectsには、エクスプレッションという、Javascriptのエンジンを使ったプログラミングができるようになっています。
このエクスプレッションを使うことで、様々な計算やアニメーションを自動化し、制作を最大限に効率化できます。
これからエクスプレッションを始める方や、基本をおさらいしたい方を対象に説明をしていきます。
Javascriptのバージョン
冒頭に書いた通り、エクスプレッションはJavascriptのエンジンを使っているので、Javascriptの構文を使用します。
ただ、お使いのAfterEffectsのバージョンによって、Javascriptのバージョンが異なるので、使える記述が少し違います。両方使っている方でなければ、エラーが出たら処理を変えてみるくらいに考えておけば大丈夫です。
以前のバージョン(CS6=v11) | After Effects 16.0以降(CC2020=v17) | |
Javascriptバージョン | ECMAScript 3(1999) | ECMAScript 2018 |
※ 当ブログでは、上記情報を基に、両方のバージョンで動くように記述するようにしています。
エクスプレッションの書き方
エクスプレッションはレイヤー毎に書き込むことができます。ここでは、エクスプレッションの構文と、具体的な記述例について説明していきます。
構文
エクスプレッションでは、Javascriptの構文と、エクスプレッションの処理(メソッドやプロパティ)を使うことができます。
Javascriptの構文はMDNのサイトに、エクスプレッションの使い方はAdobeのサイトに書いてあります。
項目 | サイト |
Javascript構文 | JavaScript | MDN |
エクスプレッション言語リファレンス | After Effects User Guide |
この両方を使い、処理を組み立てていきます。私のエクスプレッションに関する情報源は、ほぼこの2つのサイトのものです。
ただ、これらのサイトを見るだけでは理解しにくいものもあります。そのため、理解しやすいようにエクスプレッションを動画化してまとめたのが以下の記事ですのでご活用ください。
Adobe AfterEffectsでは、エクスプレッションというJavascriptエンジンのプログラミング言語を使えます。 エクスプレッションの説明は、Adobe公式の「エクスプレッション言語リファレンス」に記載してありますが、[…]
記述例
ここでは、[レイヤー] – [トランスフォーム] – [回転] のエクスプレッションで足し算をし、[回転] に結果を反映させる場合を例に説明します。
var nValue01 = 10;
var nValue02 = 20;
var nValueResult = nValue01 + nValue02;
nValueResult;
上記の場合、「nValue01」に10を、変数「nValue02」に20を代入し、その2つの加算結果を変数「nValueResult」に格納しています。最後の行で[回転]に「nValueResult」の値である30を反映させています。
AfterEffectsのエクスプレッションで頻繁に利用する「変数」ですが、varをつける場合とつけない場合で、実は動作が変わる部分があります。 そんな「変数」について今回はしっかり説明してみたいと思います。 変数とは? […]
AfterEffectsのエクスプレッションはJavascriptのエンジンを使用しているので、Javascriptの文法に従うことになります。 Javascriptの仕様を公開している JavaScript | MDN のサンプル[…]
AfterEffectsのエクスプレッションでは、システムで使用されている名前を変数名にすると意図した動作にならない場合があります。 その予期せぬ不具合を回避する為の変数名のつけ方について、説明していきたいと思います。 問題が[…]
適用される値
エクスプレッションでは、最後の値が適用されます。以下のように書くと最後の30が適用されます。
10;
20;
30;
また、以下のように、変数に格納した場合でも同様に最後の30が適用されます。
var nValue01 = 10;
var nValue02 = 20;
var nValueResult = nValue01 + nValue02;
nValue01;
nValue02;
nValueResult;
逆に、以下の場合は、変数格納のみの記述で、適用する値が無いのでエラーになります。
var nValue01 = 10;
var nValue02 = 20;
var nValueResult = nValue01 + nValue02;
エクスプレッションを使ってみる
ここでは、wiggleというエクスプレッションを使って、シェイプレイヤーを動かす例で説明していきます。
1. AfterEffectsを起動し、[コンポジション] – [新規コンポジション] を選択
2. コンポジションの設定(①~④)を必要に応じて変更し、最後にOKを選択
- コンポジション名・・コンポジションの名前
- プリセット・・・解像度とフレームレート設定
- デュレーション・・・コンポジションの長さ
- 背景色・・・コンポジションの背景色
3. [レイヤー] – [新規] – [シェイプレイヤー] を選択
4. シェイプレイヤーを展開し、[追加] – [楕円形] を選択
5. [追加] – [塗り] を選択
6. これで赤い円ができます。[トランスフォーム] を展開し、②を[Alt](Macの場合はOption)を押しながらクリック
7. 赤枠内に、「wiggle(0.5, 500)」 を入力
8. プレビューで展開し、②の再生ボタンで再生
これで作った円が動き回ると思います。今回は、エクスプレッション「wiggle」を使うことで、レイヤーに動きをつけました。
今回使用した「wiggle」については以下の動画をご覧ください。
この他にも様々なエクスプレッションがありますので、知りたい方は、こちらの記事をご覧ください。
まとめ
今回は、エクスプレッションの使い方についてまとめてみました。
本文中にも紹介しましたが、JavaScript | MDN と、After Effects User Guide の2つのサイトに、エクスプレッションの大抵の答えが書いてあるので、詳しく知りたい方は是非ご覧ください。