Expressionとは? |
解 説 | Expression(エクスプレッション)とはAfterEffectsでのモーション制作を補助する計算式です。計算式と言っても実際にはECMA Scriptというスクリプト言語を基準にしています。ECMA Scriptと言ってもピンと来ないかも知れませんが、JavaScriptと言えば分かる人も多いかと思います。Webページでよく使用されているスクリプト言語がJavaScriptで、これと同じようなものがAfterEffectsでも利用することができます。 同じと言っても完全に同じというわけではありません。JavaScriptのブラウザやアプリケーションなどに依存しない部分でがECMA Scriptであり、これにAfterEffects独自の変更を行ったものがExpressionです。つまり JavaScript = ECMA Script + ブラウザ独自機能 Expression = ECMA Script + AfterEffects独自機能 といった感じになります。JavaScriptをある程度使える人であればAfterEffectsのExpressionも簡単に使うことができます。文法や命令が同じためです。ただし、AfterEffectsではMath.random()に関しては専用のランダム関数が用意されています。これは完全に乱数値を使用してしまうとモーションの再現性がなくなってしまい、レンダリングするたびに結果が異なるのを防ぐためです。また、Dateオブジェクトなどにも制限があります。 Expressionは計算式と書きましたが、JavaScriptが全く書けなくても数値や数式を指定するだけでも大丈夫です。例えば 45 と回転角度をExpressionで指定して場合、45度に角度が設定されます。また、 12 + 24 * 2 とすると、この計算が行われ計算結果である60が回転角度として設定されます。以下のように()を使って計算の優先順位を変更することもできます。 (12 + 24) * 2 この場合は72が回転角度として設定されます。 JavaScriptでは行末は自動判別されますが、行末である事を確実に示すため本サイトでは行末に;(セミコロン)を表記しています。 |
---|
Expression表記の注意点 |
解 説 | Expressionでの計算式はJavaScriptと同じですが、注意しなければならない事があります。例えば以下のように位置にExpressionを書いたとします。 45; このままでは入力が確定した時点でエラーとなってしまいます。これは、なぜかと言うと位置データは2つの値を結果として必要とするためです。上記の場合は45という1つの値が入っただけで値が不足しています。値を2つ返すようにするには以下のように[]で囲んで返す値の数だけ,(カンマ)で区切ります。 [45,100]; また、値は一番最後に指定されたものになります。複雑な計算を行って最後に値を返す、という使い方になります。 Expression内で複雑な計算を行う場合に関数を使うこともできます。JavaScriptなのでfunctionを使って関数を定義できます。例えば一定範囲にレイヤーをランダムに移動させるには以下のように書きます。 function calc(m) { n = random(10, m); return n; } x = calc(20); y = calc(40); [x,y]; ここで定義される関数は、このExpression内のみ有効です。つまり位置にこの関数を定義したら位置指定でしか使えません。スケールや回転角度など他の部分で使用することはできません。 |
---|