value構文とvalueAtTime メソッド

エクスプレッション, value, valueAtTime

(Animoplex Youtube Channelより)

value構文

value

そのエクスプレッションを含むプロパティの現在時間の値を表すエクスプレッションです。タイムマーカーが現在あるフレームのプロパティ値になります。

※おおきくは各プロパティが持つ値であるのでエクスプレッションの初期値を指定したいときにも利用できる→利用方法

例1:valueエクスプレッションによる位置のオフセット

  • いま、垂直に打ち上げるロケットのキーフレームアニメーションが出来ている。
  • 地上からロケットが打ち上げるようになっているのを、地下から打ち上げているようにしたい。
  • [位置]のプロパティを表示する(ショートカット「P」)
  • Y軸のみのアニメーションで良いので、[位置]の次元を分割([右クリック>次元に分割])する。
  • [X位置]と[Z位置]のキーフレームは必要ないので削除する。
  • [Y位置]にエクスプレッションを追加(Altキーを押しながら[Y位置]のストップウォッチをクリック)
  • エクスプレッションフィールドに

value

と記述。オリジナルの値のままなので、プレビューしても何も変化はない

  • 以下のように記述する

value+250

  • 最初のフレームで、ロケットが見えなくなった。Y軸方向に250ピクセル移動させたため
  • プレビューすると250ピクセルオフセットされているのが分かる。

valueAtTime メソッド

「valueAtTimeエクスプレッション」は2つの部分から構成される。時間の指定が出来る。

valueAtTime(t)

  1. メソッドの名前…valueAtTime
  2. 引数…指定した時刻 (t)におけるプロパティの値を返す。

例2:valueAtTimeメソッドによる時間のオフセット

2台のロケットが打ち上がり、1台のロケットが別のロケットを追いかけるようなアニメーションを作りたい。

  • 「例1」で作成したロケットアニメーションのレイヤーを「Rocket Leader」とする。追いかけていくロケットを「Rocket Follow」と名づける。こちらのロケットにはアニメーションがつけられていない(静止状態)。
  • 「Rocket Follow」の位置プロパティを表示(ショートカット「P」)
  • Y軸のみのアニメーションで良いので、[位置]の次元を分割([右クリック>次元に分割])する。
  • [Y位置]にエクスプレッションを追加(Altキーを押しながら[Y位置]のストップウォッチをクリック)
  • エクスプレッション・ピックウィップで「Rocket Follow」の[Y位置]から「Rocket Leader」の[Y位置]を参照。するとエクスプレッションフィールドに

thisComp.Layer(“Rocket Leader”).transformation.yPosition

とエクスプレッションが記述される。ここにvalueAtTimeメソッドを書き加える。

thisComp.Layer(“Rocket Leader”).transformation.yPosition.valueAtTime(time-1)

時間で(現在時間-1秒)と指定しているので

「Rocket Leader」レイヤーの現在時間の一秒前の[Y位置]の値を、「Rocket Follow」の[Y位置]に適用する

という意味になる。一秒遅れで同じアニメーション(時間のオフセット)が作られたことになる。

エクスプレッション言語メニュー

エクスプレッション言語メニューの[Property]カテゴリーのなかにvalueメソッド、valueAtTimeメソッドがある。