最後にExpressionを使ってレイヤーのサイズ(スケール)を変えてみましょう。レイヤーのサイズは[横のスケール, 縦のスケール]で示されます。つまり。返す値が2つ必要になります。例えば横を50%、縦を120%にする場合は以下のように指定します。

    [50, 120]

手作業のキーフレーム設定では難しい処理として時間が経過するに従って無制限にサイズが大きくなる、というものがあります。特にコンポジションやレイヤーの継続時間が変わる場合など、キーフレームを設定している場合は、毎回設定しなおさなければなりません。これに対してExpressionでは、時間に応じてサイズが変化するように計算式を指定すれば終わりです。レイヤーやコンポジションの継続時間が、どのように変化しても新たに設定しなおす必要がありません。

レイヤーの継続時間に応じて変化させるようにすることもできますが、ここでは時間が経過するに従ってレイヤーのサイズが大きくなるExpressionを指定します。100%の状態から大きくなるので「100+スケール値」の計算式になります。スケール値はtimeを加算しますが、より早くサイズを変化させたい場合には値を乗算します。

横も縦も同じ倍率で変化させるので、以下のように指定します。

    [100 + time * 10, 100 + time * 10]

しかし、2つとも同じ計算式を入力するのは面倒です。また、計算式が変わった場合、2カ所も修正しなければなりません。このような場合は、計算結果を一度変数に入れておき以下のように配列で返すようにします。

    s = 100 + time * 10;
    [s, s];

図のように設定すると

レイヤーのサイズが変化する

変数名はJavaScriptの規則に従うので英文字(*5)で始まり、2文字目以降は数値や記号などと組み合わせて指定することができます。なお、ここで設定された変数はローカル変数となり、他のレイヤープロパティ内の変数には影響しません。Expressionでは計算式の一番最後に返された値が適用されます。計算途中にある計算式の結果や命令などは関係がないので注意しておきましょう。

Expressionは使い方によっては大変便利な機能です。ただ、JavaScriptのプログラムコードを書かなければいけない、という点で敬遠してしまう人もいるかもしれませんExpressionでは、複雑なプログラミング能力は、ほとんど必要ありません。基本的に計算式を指定するだけで済むからです。その計算式に、たまたまJavaScriptというプログラミング言語の命令も使えます、といった感じで考えてもらえばよいでしょう。

手作業とExpressionを、うまく使いこなせば表現できる映像の幅が広がるのではないかと思います。

*5$や_も使えます。算術記号である+-*/&%!や代入を示す=などは使用できません。