フェードイン/アウト

普段手書きorコピペでエクスプレッション記入してたんだけど使いまわしやすいようにスクリプトにしてみました。


適用したいレイヤーを選んでスクリプトを実行すると新規ヌルレイヤーにコントロール用のスライダーが作成され、選択していたレイヤーの不透明度に関連付けされます。
スライダーの値はフレームレート。
不透明度にvalue使ってるので、不透明度に普通に数値入力してやれば0->50->50->0みたいに100%まで上がりきらないように出来ます。


fadeI/O with Slider(fps)
http://dl.dropbox.com/u/425107/AE/fade_IO_with_Slider%28fps%29.jsx

fi = linear(time,inPoint,inPoint+thisComp.layer('Fade Control').effect('Fade In Time')('スライダー'),0,value);
fo = linear(time,outPoint-thisComp.layer('Fade Control').effect('Fade Out Time')('スライダー'),outPoint,value,0);
ftime = thisComp.layer('Fade Control').effect('Fade In Time')('スライダー')+thisComp.layer('Fade Control').effect('Fade Out Time')('スライダー');

if((ftime*thisComp.frameDuration)>(outPoint-inPoint)){
Over_Layer_Duration
}else{
if((fi/thisComp.frameDuration)<value){
fi/thisComp.frameDuration
}else{
fo/thisComp.frameDuration
}
}


で、問題がフェードイン/アウトのタイムがかぶった時の処理をどうしようかってことで、フェードイン途中でフェードアウトに移行するべきか迷ったんだけど、確実にフェードインさせないといけなかったりするのでエラー出るようにしました。
エクスプレッションでアラート出せるのかどうかわからないので、とりあえず変な変数ぽいの(Over_Layer_Duration)入れてエラーがわかるようにしてみたんだけど、もとに戻すのにいちいち≠ボタン押さないといけないのが面倒…
誰かいい解決方法教えて。


改良したい人とかいたら適当にどうぞ。


2010.11.11
貼りつけてたものが修正前verだったので修正。。。