どうもみやびです。
なんだかこのブログが、プログラム系リファレンスとなりつつあるのは気のせいでしょうか。
まぁ、いいやw
さて、今回は、After Effectsの中にあります、エクスプレッションの話です。
これを使えば、細かく自分でキーフレームを打たなくても、プログラムによってアニメーションやら、なんやらをさせることができるという、
素晴らしいものです。
FlashのActionScriptが感覚的に近いと思う。
しかも、このエクスプレッション、JavaScriptを元にしてるとか。
僕の得意分野ですね、ハイ。
なんで、今エクスプレッションなのか?というと、
最近映像の仕事を一時的にやっているのです。
プログラム書けるっちゅうことで、エクスプレッションでこれできない?
となったわけです。
はい、相変わらず前置き長いですね。
題号の内容です。
これ、やっている人がいないのか、探しても記事がでてこない!
ってわけで自分で作ってみた。
下記スクリプトを、オーディオレイヤーのオーディオレベルプロパティのエクスプレッションにはっつけるとできる。
/**************************************************************
●オーディオレイヤーのフェードイン、アウト
このスクリプトを使えば、オーディオレイヤーの
フェードイン、アウトが行えます。
その説明をしていきます。
①"var ftime"で指定するのは、フェードさせる時間です。
秒単位で指定します。
②"var audioRate"は音の最小値を指定します。
大方、48のままで大丈夫だと思われます。
③"AudioFadeInOut('Out');"関数の、引数(カッコの中の''の中の文字)によって、
インさせるのか、アウトさせるのか、イン・アウト両方させるのかを指定します。
●'In' → イン
●'Out' → アウト
●'InOut' → イン・アウト
**************************************************************/
var fTime =20.0;
var audioRate = 48;
var mRate = audioRate/fTime;
function AudioFadeInOut(InOrOut){
function AudioFadeOut(){
if(time >= thisLayer.outPoint-fTime){
var OnTime = time -(thisLayer.outPoint-fTime);
var mAudio = mRate*OnTime;
if(mAudio <=audioRate ){
var result = -[mAudio,mAudio];
} else {
var result = -[audioRate,audioRate];
}
} else {
var result = +[0,0];
}
return result;
}
if(InOrOut == 'In' || InOrOut == 'InOut'){
if(time == 0 ){
var result = -[audioRate,audioRate];
} else {
if(time <= fTime){
var OnTime = time;
var mAudio = mRate/OnTime;
var result = -[mAudio,mAudio];
} else {
if(InOrOut == 'InOut'){
var result = AudioFadeOut();
} else {
var result = +[0,0];
}
}
}
} else {
var result = AudioFadeOut();
}
return result;
}
AudioFadeInOut('InOut');
上のコメントアウトは説明なので、ここでは説明は省きます。
エクスプレッション、わかると楽しいですな。
ライブラリでも作ってみようかな。
コメントする