《基礎から解説!》エクスプレッションの使い方

AfterEffectsには、エクスプレッションという、Javascriptのエンジンを使ったプログラミングができるようになっています。

このエクスプレッションを使うことで、様々な計算やアニメーションを自動化し、制作を最大限に効率化できます。

これからエクスプレッションを始める方や、基本をおさらいしたい方を対象に説明をしていきます。

Javascriptのバージョン

冒頭に書いた通り、エクスプレッションはJavascriptのエンジンを使っているので、Javascriptの構文を使用します。

ただ、お使いのAfterEffectsのバージョンによって、Javascriptのバージョンが異なるので、使える記述が少し違います。両方使っている方でなければ、エラーが出たら処理を変えてみるくらいに考えておけば大丈夫です。

以前のバージョン(CS6=v11)After Effects 16.0以降(CC2020=v17)
JavascriptバージョンECMAScript 3(1999)ECMAScript 2018
※ バージョンによる構文の違いはAdobeの「JavaScript と以前の ExtendScript のエクスプレッションエンジンの構文の違い」をご覧ください。
※ 当ブログでは、上記情報を基に、両方のバージョンで動くように記述するようにしています。

エクスプレッションの書き方

エクスプレッションはレイヤー毎に書き込むことができます。ここでは、エクスプレッションの構文と、具体的な記述例について説明していきます。

構文

エクスプレッションでは、Javascriptの構文と、エクスプレッションの処理(メソッドやプロパティ)を使うことができます。

Javascriptの構文はMDNのサイトに、エクスプレッションの使い方はAdobeのサイトに書いてあります。

項目サイト
Javascript構文JavaScript | MDN
エクスプレッション言語リファレンスAfter Effects User Guide

この両方を使い、処理を組み立てていきます。私のエクスプレッションに関する情報源は、ほぼこの2つのサイトのものです。

ただ、これらのサイトを見るだけでは理解しにくいものもあります。そのため、理解しやすいようにエクスプレッションを動画化してまとめたのが以下の記事ですのでご活用ください。

関連記事

Adobe AfterEffectsでは、エクスプレッションというJavascriptエンジンのプログラミング言語を使えます。 エクスプレッションの説明は、Adobe公式の「エクスプレッション言語リファレンス」に記載してありますが、[…]

AfterEffects全エクスプレッションまとめ

記述例

ここでは、[レイヤー] – [トランスフォーム] – [回転] のエクスプレッションで足し算をし、[回転] に結果を反映させる場合を例に説明します。

var nValue01 = 10;
var nValue02 = 20;
var nValueResult = nValue01 + nValue02;
nValueResult;

上記の場合、「nValue01」に10を、変数「nValue02」に20を代入し、その2つの加算結果を変数「nValueResult」に格納しています。最後の行で[回転]に「nValueResult」の値である30を反映させています。

※ 変数宣言にvarをつけるかどうかについては、以下の記事をご覧ください。
関連記事

AfterEffectsのエクスプレッションで頻繁に利用する「変数」ですが、varをつける場合とつけない場合で、実は動作が変わる部分があります。 そんな「変数」について今回はしっかり説明してみたいと思います。 変数とは? […]

変数宣言にvarをつける場合とつけない場合の違いまとめ
※ 行末のセミコロン「;」については以下の記事をご覧ください。
関連記事

AfterEffectsのエクスプレッションはJavascriptのエンジンを使用しているので、Javascriptの文法に従うことになります。 Javascriptの仕様を公開している JavaScript | MDN のサンプル[…]

エクスプレッション行末のセミコロンが本当に必要か調べた結果
※ 「nValue01」など、当ブログの変数名の付け方は以下の記事をご覧ください。
関連記事

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を選択

  1. コンポジション名・・コンポジションの名前
  2. プリセット・・・解像度とフレームレート設定
  3. デュレーション・・・コンポジションの長さ
  4. 背景色・・・コンポジションの背景色

3. [レイヤー] – [新規] – [シェイプレイヤー] を選択

4. シェイプレイヤーを展開し、[追加] – [楕円形] を選択

5. [追加] – [塗り] を選択

6. これで赤い円ができます。[トランスフォーム] を展開し、②を[Alt](Macの場合はOption)を押しながらクリック

7. 赤枠内に、「wiggle(0.5, 500)」 を入力

8. プレビューで展開し、②の再生ボタンで再生

これで作った円が動き回ると思います。今回は、エクスプレッション「wiggle」を使うことで、レイヤーに動きをつけました。

今回使用した「wiggle」については以下の動画をご覧ください。

この他にも様々なエクスプレッションがありますので、知りたい方は、こちらの記事をご覧ください。

まとめ

今回は、エクスプレッションの使い方についてまとめてみました。

本文中にも紹介しましたが、JavaScript | MDN と、After Effects User Guide の2つのサイトに、エクスプレッションの大抵の答えが書いてあるので、詳しく知りたい方は是非ご覧ください。

エクスプレッションの使い方
最新情報をチェックしよう!
>Aeをもっと便利に。「COLOR CODE - AE」

Aeをもっと便利に。「COLOR CODE - AE」

AfterEffectsをもっと便利に使う為のコンテンツを制作・発信しているブログです。YouTube「COLOR CODE - AE チャンネル」では、エフェクト、エクスプレッション、プリセット、プラグインのリファレンス動画を公開しています。チャンネル登録もお待ちしています!

CTR IMG