エクスプレッション

※ここに記載されている内容は、エクスプレッションの仕様の一部です。また、エクスプレッションの実装はまだ完了していない部分があるため、今後仕様が変更される場合があります。


組み込み関数

Javascriptの組み込み関数が利用できます。

グローバル関数

wiggle(valOrArray, freq, amp, octaves=1, amp_mult=0.5, t=time) 戻り値 : 数値または数値の配列
wiggle1(freq, amp, octaves=1, amp_mult=0.5, t=time) 戻り値 : 数値
wiggle2(freq, amp, octaves=1, amp_mult=0.5, t=time) 戻り値 : 数値の配列(要素数2)
wiggle3(freq, amp, octaves=1, amp_mult=0.5, t=time) 戻り値 : 数値の配列(要素数3)

valOrArray : 数値または数値の配列
freq : 周波数
amp : 振幅
octaves : オクターブ(デフォルト値=1)
amp_mult : オクターブ間の振幅の倍率(デフォルト値=0.5)
t : 時刻(デフォルト値=time)

seedRandom(seed, timeless=false) 戻り値 : なし

seed : ランダムシード
timeless : 時刻によらず同じ値が生成される乱数の場合は true、時刻によって変化する乱数の場合は false

random() 戻り値 : 数値
random(maxValOrArray) 戻り値 : 数値はたは数値の配列
random(minValOrArray, maxValOrArray) 戻り値 : 数値はたは数値の配列

0~1 の範囲、0~maxValOrArray の範囲、または minValOrArray~maxValOrArray の範囲の一様な乱数を生成します。

gaussRandom() 戻り値 : 数値
gaussRandom(maxValOrArray) 戻り値 : 数値はたは数値の配列
gaussRandom(minValOrArray, maxValOrArray) 戻り値 : 数値はたは数値の配列

ガウス分布の乱数を生成します。生成される値の90%は 0~1 の範囲、0~maxValOrArray の範囲、または minValOrArray~maxValOrArray の範囲にあり、残りの10%はこれらの範囲外となります。

noise(valOrArray) 戻り値 : 数値

パーリンノイズによるノイズを生成します。引数は、単一の数値または要素数2か3の配列です。引数に与える値が同じなら同じ結果を返します。

linear(t, tMin, tMax, value1, value2) 戻り値 : 数値はたは数値の配列
ease(t, tMin, tMax, value1, value2) 戻り値 : 数値はたは数値の配列
easeIn(t, tMin, tMax, value1, value2) 戻り値 : 数値はたは数値の配列
easeOut(t, tMin, tMax, value1, value2) 戻り値 : 数値はたは数値の配列

時刻 t が tMin から tMax の間を変化する間、value1 から value2 の間を補間した値を返します。linear関数はリニア補間です。ease関数は tMin 付近および tMax 付近での変化量がゼロとなり、中間付近ではリニア補間に近い補間になります。easeIn関数は tMin 付近のみ、easeOut関数は tMax 付近のみ変化量がゼロとなります。

linear(t, value1, value2) 戻り値 : 数値はたは数値の配列
ease(t, value1, value2) 戻り値 : 数値はたは数値の配列
easeIn(t, value1, value2) 戻り値 : 数値はたは数値の配列
easeOut(t, value1, value2) 戻り値 : 数値はたは数値の配列

t の値が 0〜1 の範囲となること以外は linear(t, tMin, tMax, value1, value2) 等と同じです。

グローバルオブジェクト

time : 時刻(コンポジション基準)
thisComp : コンポジション
thisLayer : レイヤー
thisEffect : エフェクト(エフェクトのエクスプレッションでのみ利用できます)

コンポジションの属性とメソッド

width
height
frameDuration
duration

layer(レイヤー名)
layer(レイヤー番号)

layerIndex(レイヤー)

レイヤーの属性とメソッド

startTime
inPoint
outPoint
rate
index

effect(エフェクト名)
effect(エフェクト番号)

thisLayer はデフォルトオブジェクトなので、例えば thisLayer.effect("円").radius は thisLayer. を省略して effect("円").radius と記述することができます。

プロパティのメソッド

wiggle(freq, amp, octaves=1, amp_mult=0.5, t=time) 戻り値 : 数値または数値の配列

グローバルのwiggle関数の第1引数にプロパティの値を渡すのと同じです。例えば、次のふたつは同じ結果となります。
position.wiggle(5, 10);
wiggle(position, 5, 10);

エフェクト

こちらから各エフェクトのページをご覧ください。

同じコンポジション内の他のレイヤー “レイヤーA” 内のエフェクト “縁取り” のサイズプロパティ “size” を参照する

thisComp.layer("レイヤーA").effect("縁取り").size

エラーについて

エクスプレッションの記述に何らかの問題がある場合、そのエクスプレッションは無視されます。現在のところエラーダイアログの表示などは行われません。ただし、コンソールには大量のエラーメッセージが流れるので、コンソールを見ればエラーがあるかどうかの判断は付くと思います。コンソールは、メニューから “Window” → “コンソール” を選択すると表示されます。