time構文とposterizeTimeメソッド

エクスプレッション, time, posterizeTime, ポスタリゼーション時間

(Animoplex Youtube Channelより)

time構文

time

  • 現在時間を返す。
  • 基本単位は「 seconds」。
  • timeエクスプレッションはプロパティの安定した、いつまでも続く動きを作るのに便利。

秒で指定するメリット

コンポジションでは、毎秒何フレームにするか(Frames Per Second)を設定できる。そのため、フレーム数で換算すると、その設定によって時間が変わってしまう。

例:ロケットが月の周りを回るアニメーション

  • ・ロケットの親であるヌルオブジェクトのZ回転のプロパティを表示(ショートカット「R」)
  • ・[Z回転]にエクスプレッションを追加(Altキーを押しながらストップウォッチを押す)
  • ・エクスプレッションフィールドに

time

とだけ書く。タイムインジケーターをスクラブすると、わずかに回転しているのがわかる。これは「毎秒1°ずつ」回転しているから。

  • 今度は

time*360

と記述。すると「毎秒1°×360=360°」回転することになる。一秒間に一回転する。

  • 速度を落としたい場合、たとえば

time*(360/5)

とすれば、1/5の速度で回転することになる。

例:月のアニメーション

月の親のヌルの[Y回転]に、ロケットの親ヌルのZ回転で書いたエクスプレッションをコピペする。

  • 先ほどのロケットのZ回転のエクスプレッションをコピーする。
  • 月の親ヌルのY回転にエクスプレッションを追加
  • エクスプレッションフィールドにペーストする。

例:彗星Cometのアニメーション

  • 彗星の位置プロパティを開く(ショートカット「P」)
  • Y軸に対してアニメーションをつけたいので、次元に分割する([位置]を右クリック>次元を分割 separate dimensions)
  • Y位置にエクスプレッションを追加
  • エクスプレッションフィールドに

value+time*-1000

と書く。valueはそのプロパティの現在時間での値を表す。彗星は速く動くようにしたいので、timeの-1000倍を現在値(オリジナルの値)に加えるようにした。※After Effectsでは垂直下方向がY軸のプラス

posterizeTimeメソッド 4:20

「ポスタリゼーション時間」は3つの部分から構成される

posterizeTime(fps);value

  1. メソッドの名前…posterizeTime
  2. 毎秒何コマでポスタライズするか…()内の数字
  3. 現在時間の値…;のあとに記述

実際に使ってみる。さきほどの惑星の周りをまわるアニメーションにポスタリゼーションがかかるようにする。

ロケットのアニメーションに「ポスタリゼーション時間」を追加

ロケットの親ヌルのZ回転のエクスプレッション・フィールドに付け加えて

posterizeTime(3); time*(360/5)

と記述。読みやすいよいにセミコロンのあとにスペースを入れた。RAMプレビューするとロケットだけ「3フレーム/秒」で動くのがわかる。

※posterizeTime(fps) は単独では使用できない。ポスタライズするプロパティ(valueやvalueAtTimeなど)が必要。

※註:時間ポスタリゼーションは「ポスタリゼーション時間」エフェクト(エフェクト>時間>ポスタリゼーション時間)を利用したほうが便利な場合があります。適宜、使い分けましょう。

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

エクスプレッション言語メニューの[Global]カテゴリーのなかにtimeエクスプレッションがあります。