エクスプレッションを始めてみよう

After Effectsでプロパティを変化させるのには、2つの方法があります。

1つはいつも使っているであろう「キーフレームを打つ」方法です。
しかし、複雑な動作をさせる為に多くのキーフレームを打つのは大変面倒な作業です。

そういった作業を効率化するのに有効なのが、もう一つの方法である『エクスプレッション』を使う方法です。

エクスプレッションとはプロパティを制御するプログラムのことです。
その奥はとても深く、到底ここでは全てを書ききれません。
その為After Effectorでは、よく使われるエクスプレッションのみを数回に分けて紹介していきます。

今回はその第一回として、エクスプレッションの基礎知識を解説していきます。

下準備

エクスプレッションを使う場合、まずはアニメーションさせたいプロパティに以下の方法でエクスプレッションを追加する必要があります。
「Alt(Option)」 キーを押しながら回転プロパティ横のストップウォッチをクリック

すると、エクスプレッションを書くエリアが表示されます。

基本的な記述方法

エクスプレッションは基本的に以下のような数式で記述します。

50 + 20;

▲一文の終わりには「;」をつける。

足し算と引き算の記号は「+」「-」で構いませんが、掛け算の記号は「×」ではなく「*」です。
同様に割り算の記号も「÷」ではなく「/」であることに注意が必要です。

値が複数必要な場合

不透明度プロパティのように必要な値が1つだけの場合は上の方法で構いません。
しかし、位置プロパティのように2つ以上の値が必要とされる場合には、以下のように工夫しなければいけません。

[1つ目の値,2つ目の値];

▲必要な値が2つ(位置・スケールプロパティ等)の場合

[1つ目の値,2つ目の値,3つ目の値];

▲必要な値が3つ(3Dレイヤーの位置・スケールプロパティ等)の場合

しかし、これでは1・2・3つ目の値が長くなってしまった場合には見難くなってしまいます。

[10 * 2 / 5 - (4 / 3 + 10), 33 / 2, 10 * 2 / 5 - (4 / 3 + 10)];

▲分かりづらい上に、1つ目と3つ目は同じ数式

その為、このような場合には置き換えます。

a = 10 * 2 / 5 - (4 / 3 + 10);
b = 33 / 2;
[a,b,a];

▲「=」は等しいという意味ではなく、「=の左側に右側を代入しろ」という意味

これで、見やすく・短くなりました。

value

しかし、これらのような単純な計算ならばエクスプレッションを使う必要はないでしょう。
直接、そのプロパティの値を変更してしまえばいいだけです。

では、キーフレームを打ってある場合はどうでしょうか。
その状態で「それぞれの値を2倍にしたい――。」といった場合。
そういう時こそ、エクスプレッションが活躍する場面です。

エクスプレッションには、本来(エクスプレッションを無効にした時)の値を取得する為の『value』というものが用意されています。
これを活用して、以下のように記述すればOKです。

value * 2;
time

valueと同じようなポジションには、他にも『time』というものが存在します。
これは1秒なら1、2秒なら2、0.5秒なら0.5と現在の時間を秒単位で取得してくれるものです。
時間に比例して増加するので、回転プロパティに以下のように記述すれば、360度/秒の速度で回転します。

time * 360;

今まで、一定増加させたいときにはキーフレームを打っていたと思います。
しかし、これは手間がかかる上、レイヤーの時間の長さが変化した場合は打ち直す必要がありました。
しかし、これを使えば、もう時間の長さが変わっても全く影響はありません。
ですから、一定増加させたい場合には、このtimeを使うと大変便利です。