Property の属性とメソッド

value
返されるタイプ:Number、Array、String。

現在の時刻でのプロパティの値を返します。

valueAtTime(t)
返されるタイプ:Number または配列。

引数のタイプ:t は Number です。

秒単位で指定した時間でのプロパティの値を返します。

例えば、各フレームのプロパティ値を一連の 4 つの値からランダムに選択するには、4 つの値をそれぞれ 0、1、2 および 3 秒のキーフレームとして設定し、次のエクスプレッションをプロパティに適用します。

  valueAtTime(random(4))

velocity
返されるタイプ:Number または配列。

現在の時間での時間速度の値を返します。位置などの空間プロパティの場合は、接線ベクトルの値を返します。その結果は、プロパティと同じ次元になります。

velocityAtTime(t)
返されるタイプ:Number または配列。

引数のタイプ:t は Number です。

指定された時間での時間速度の値を返します。

speed
返されるタイプ:Number。

初期設定の時間でプロパティが変化しているときの速度に等しい、1D の正の速度値を返します。この要素は空間プロパティでのみ使用できます。

speedAtTime(t)
返されるタイプ:Number。

引数のタイプ:t は Numberです。

指定された時間での空間速度の値を返します。

wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
返されるタイプ:Number または配列。

引数のタイプ:freqampoctavesamp_mult、および t は Number です。

プロパティ値を不規則に変動(ウィグリング)させます。

freq 値は、1 秒あたりの変動の回数です。

amp 値は適用先のプロパティを単位とする振幅です。

octaves は加算するノイズのオクターブの数を表します。この値は、変動の細かさを制御します。この値に初期設定値の 1 より大きい値を設定すると高い周波数が含まれ、小さい値を設定すると変動に振幅ハーモニックが含まれます。

amp_mult は、各オクターブの amp の倍数です。この値は、ハーモニックのドロップオフの速度を制御します。初期設定値は 0.5 です。値を 1 に近づけるとハーモニックは基本周波数として同じ振幅で追加され、値を 0 に近づけるとディテールが荒い状態で追加されます。

t は基本となる開始時刻です。初期設定値は現在の時刻です。別の時刻にサンプリングしたプロパティ値のウィグルを出力する場合は、このパラメータを使用します。

例:position.wiggle(5, 20, 3, .5) を実行すると、平均サイズが 20 ピクセルのウィグルが 1 秒間に 5 つ作成されます。メインウィグルの他に、サイズが 10 ピクセルと 5 ピクセルの 2 つのレベルの詳細ウィグルが 1 秒間にそれぞれ 10 回と 20 回発生します。

次の例では、スケールなどの 2 次元のプロパティで、両方の次元が同じだけ変動(ウィグル)します。

  v = wiggle(5, 10); 
  [v[0], v[0]]

次の例では、2 次元のプロパティで、Y 軸方向に沿ってのみ変動(ウィグル)します。

  freq = 3; 
  amp = 50; 
  w = wiggle(freq,amp); 
  [value[0],w[1]];

temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
返されるタイプ:Number または配列。

引数のタイプ:freqampoctavesamp_mult、および t は Number です。

ウィグリングする時間でプロパティをサンプリングします。freq は 1 秒あたりの変動の周波数、amp は適用先のプロパティを単位とする振幅、octaves は加算するノイズのオクターブの数、amp_mult は各オクターブについて amp が乗算される数、t は基本となる開始時間です。この関数はサンプリングの時間だけを変更し、値は変更しないので、この関数に意味を持たせるには、サンプリングの対象となるプロパティがアニメートされている必要があります。例えば、「scale.temporalWiggle(5, .2)」のように記述できます。

smooth(width=.2, samples=5, t=time)
返されるタイプ:Number または配列。

引数のタイプ:widthsamples および t は Number です。

特定の時間範囲内でプロパティの値をならし、短時間の大きな偏差を小さくして、偏差を均一に分散させます。このならしは、指定された時間でのプロパティの値にボックスフィルタを適用することによって実行します。widthは、フィルタが平均化される時間の範囲(秒単位)です。samples には、時間をいくつに等分するかをを指定します。大きい数を指定すると滑らかになりますが、処理速度は遅くなります。一般的には、サンプリング回数を奇数にして、平均に現在の時間の値が含まれるようにします。例えば、「position.smooth(.1, 5)」のように記述できます。

loopIn(type="cycle", numKeyframes=0)
返されるタイプ:Number または配列。

レイヤーの先頭キーフレームからレイヤーのアウトポイントに向かって数えた時間のセグメントがループします。ループはレイヤーのインポイントから再生します。numKeyframes に、ループするセグメントを指定します。レイヤー内の先頭のキーフレームから numKeyframes+1 番目のキーフレームまでのセグメントがループします。例えば、「loopIn("cycle", 3)」と指定すると、先頭のキーフレームから 4 番目のキーフレームまでのセグメントがループします。初期設定値の 0 では、すべてのキーフレームがループします。

キーフレームループメソッドを使用して、一連のキーフレームを繰り返すことができます。これらのメソッドは、ほとんどのプロパティで使用できます。ただし、「ソーステキスト」プロパティ、パスシェイププロパティ、「レベル」エフェクトの「ヒストグラム」プロパティなど、タイムラインパネルで単純な数値で表現できないプロパティでは使用できません。キーフレームまたはデュレーションの値が大きすぎる場合は、有効な最大値に縮小されます。値が小さすぎる場合は、一定のループとなります

ループの種類

目的

cycle

(初期設定) 指定したセグメントを繰り返します。

pingpong

指定したセグメントの先頭から末尾へ、次に末尾から先頭へと、交互に繰り返します。

offset

指定したセグメントを繰り返しますが、セグメントの最初と最後のプロパティの値の差にセグメントがループした回数を掛けた値だけ、各サイクルをオフセットします。

continue

指定したセグメントを繰り返さずに、最初または最後のキーフレームの速度に基づき、プロパティのアニメートを継続します。例えば、レイヤーの最後のキーフレームの「スケール」プロパティが 100% の場合は、後続のレイヤーはアウトポイントへ向かって 100% でスケールされ、ループが直接アウトポイントへ戻ることはありません。この種類のループでは、keyframes または duration 引数は使用できません。

loopOut(type="cycle", numKeyframes=0)
返されるタイプ:Number または配列。

レイヤーの最後のキーフレームからレイヤーのインポイントに向かって数えた時間のセグメントがループします。ループはレイヤーのアウトポイントまで再生します。ループするセグメントの長さは、指定したキーフレーム数によって決まります。numKeyframe には、ループさせるキーフレームセグメントの数を設定します。指定範囲は最後のキーフレームから逆に数えます。例えば、「loop_out("cycle", 1)」と指定すると、最後のキーフレームと最後から 2 番目のキーフレームで区切られたセグメントがループします。初期設定値の 0 では、すべてのキーフレームがループします。詳しくは、loopIn の説明を参照してください。

David Van Brink が、omino pixel ブログで、「エコー」エフェクト、「パーティクルプレイグラウンド」エフェクトおよび loopOut メソッドを使用して、スタイライズされた泳ぎ回る細菌の大群をアニメートする方法を示す記事とサンプルプロジェクトを公開しています。

loopInDuration(type="cycle", duration=0)
返されるタイプ:Number または配列。

レイヤーの先頭キーフレームからレイヤーのアウトポイントに向かって数えた時間のセグメントがループします。ループはレイヤーのインポイントから再生します。ループするセグメントの長さは、指定したデュレーションで決まります。duration 値は、ループさせるセグメント内のコンポジションの数を設定します。指定範囲は先頭キーフレームから数えます。例えば、「loopInDuration("cycle", 1)」と指定すると、アニメーション全体の最初の 1 秒がループします。初期設定値の 0 は、ループさせるセグメントがレイヤーのアウトポイントから始まることを意味します。詳しくは、loopIn の説明を参照してください。

loopOutDuration(type="cycle", duration=0)
返されるタイプ:Number または配列。

レイヤーの最後のキーフレームからレイヤーのインポイントに向かって数えた時間のセグメントがループします。ループはレイヤーのアウトポイントまで再生します。ループするセグメントの長さは、指定したデュレーションで決まります。duration 値は、ループさせるセグメント内のコンポジションの数を設定します。指定範囲は最後のキーフレームから逆に数えます。例えば、「loopOutDuration("cycle", 1)」と指定すると、アニメーション全体の最初の 1 秒をループします。初期設定値の 0 は、ループさせるセグメントがレイヤーのインポイントから始まることを意味します。詳しくは、loopIn の説明を参照してください。

key(index)
返されるタイプ:Key または MarkerKey。

引数のタイプ:index は Number です。

指定した番号に一致する Key または MarkerKey オブジェクトを返します。例えば、「key(1)」は、最初のキーフレームを返します。

key(markerName)
返されるタイプ:MarkerKey。

引数のタイプ:markerName は String です。

指定した名前に一致する MarkerKey オブジェクトを返します。この要素はマーカープロパティに対してのみ使用できます。

nearestKey(t)
返されるタイプ:Key または MarkerKey。

指定した時刻に最も近い Key または MarkerKey オブジェクトを返します。

numKeys
返されるタイプ:Number。

プロパティのキーフレーム数を返します。マーカープロパティのマーカー数を返します。

注意: 「次元に分割」コマンドを使用して「位置」プロパティの次元を個別のコンポーネントに分割した場合、キーフレーム数が変わるため、このメソッドで返される値が変わります。

propertyGroup(countUp = 1)
返されるタイプ:Group。

エクスプレッションが記述されるプロパティと関連するプロパティグループを返します。例えば、ブラシストロークの「回転」プロパティに propertyGroup(1) エクスプレッションを追加すると、エクスプレッションは回転プロパティが含まれているトランスフォームプロパティグループをターゲットにします。propertyGroup(2) を追加すると、エクスプレッションは「ブラシ」プロパティグループをターゲットにします。このメソッドにより、プロパティ階層で、名前に依存しない関係が確立できます。このメソッドは、エクスプレッションが含まれたプロパティを複製するときに特に役立ちます。

propertyGroupnumProperties メソッドは、プロパティグループ内のプロパティ数を返します。

この例では、エクスプレッションが記述されているプロパティが含まれるグループ内のプロパティ数が返されます。

  thisProperty.propertyGroup(1).numProperties

propertyIndex
返されるタイプ:Number。

マスク、エフェクト、テキストアニメータ、セレクタ、シェイプ、トラッカー、トラックポイント内のプロパティグループなど、同じプロパティグループに含まれるその他のプロパティに関連のあるプロパティのインデックスを返します。

name
返されるタイプ:String。

プロパティまたはプロパティグループの名前を返します。

例:propertyGroup メソッドと propertyIndex 属性を使用してアニメートする

ブラシストロークの「位置」プロパティを基準とした propertyGroup の値

A.
propertyGroup(4)

B.
propertyGroup(3)

C.
propertyGroup(2)

D.
propertyGroup(1)

E.
位置の propertyIndex は 2、回転の propertyIndex は 4 です。

この例では、各ブラシストロークの propertyGroup メソッドが「ブラシ」プロパティグループをターゲットにしています。これは、「ブラシ」プロパティグループが回転プロパティより 2 つ上のプロパティグループにあたるためです。各ブラシストロークの propertyIndex 属性は、各ブラシストロークの固有の値を返します。返された値に時間と 200 を掛けた値が各回転値に適用されて、各ブラシストロークが別々に回転し、渦巻状のペイントストロークが作成されます。
  propertyGroup(2).propertyIndex * time * 200
エクスプレッションでブラシストロークをアニメートした例