ねこちゃんの日記

日常や趣味のメモ

After Effects エクスプレッション 途中で数値を変えたい時

ものすごい久しぶりにAEのエクスプレッション。

知人に教えてもらいました。

自分的に使いどころあるかわからないけど忘れないようにメモ…

 

レイヤーマーカーを打って、そこから別の数値に変える時のエクスプレッションです。

 

●例えば、移動に使う場合。

レイヤーにpというマーカーを打って

pに到達するまでのyの移動を1秒間に500

p以降の移動を一秒間に10とした時

 

if(time>=marker.key("p").time){
y=marker.key("p").time*500+(time-marker.key("p").time)*10;
}
else{y=time*500;}[0,y]

 

なぜマーカーp以降が

y=marker.key("p").time*500+(time-marker.key("p").time)*10;

なのかというと、単純にy=time*10;

とかにしてしまうとマーカーpを超えた時点でyの値が初期化されて

pまでのyの値が

time*500 ではなく time*10

になってしまうのでpまでの値を足してあげないとダメなんだそう。

実際に自分でやってみて「そりゃそうだな(笑)」ってなりました。

 

もう一つは

フラクタルノイズの展開などパラメーターが一つの時に使う場合

if(time>=marker.key("p").time){
marker.key("p").time*60+(time-marker.key("p").time)*360;
}
else{time*60;}

マーカーpまでが展開1秒間に60°、p以降が1秒間に360°になります。

移動の時と同様に、p以降はそれまでの数値を足す必要があります。

 

と教えてもらったけどややうろ覚えで

さっき試したらちゃんと動きました。

今回は以上です。