トラックブラー - [[AEexpression]]
差分表示
- 最後の更新で追加された行はこのように表示します。
- 最後の更新で削除された行は
このように表示します。
[[AEexpression]] *トラックブラー トラックターゲットの変移を参照して、その移動方向と長さにで方向ブラーを適用します。 サンプル付きのダウンロードはこちら http://www.nekomataya.info/cgi-bin/control.cgi?PAGE=85&ITEM=070902 主な用途は「偽モーションブラー」です。 これが http://www.nekomataya.info/teck_info/trackBlur/Sample_nop.gif こうなる感じです。 http://www.nekomataya.info/teck_info/trackBlur/Sample.gif 一般的なセルアニメーションの作画はストップモーションアニメなので、 本来は移動情報を含んでいません。 これに「それらしい」モーションブラーを追加するのは よくあるオーダーです。 処理するコマ数が少ない場合は一コマづつ「それらしい」ブラーをあてても良いのですが、処理するコマ数が多い時はけっこう大変です。そんな時ご利用ください。 **使い方 このアニメーションプリセットは、ヌルオブジェクトやカメラワーク情報を利用して必要な モーション情報を作り、それを参照して(偽)モーションブラーを作ります。 -まず、動きがトレースできるようなオブジェクトを用意します。 サンプルデータのように、ヌルオブジェクトを作成して、動画の動きをトレースしてやるとよいでしょう。 [[アンチフリッカ]]のトレース中割りと併用する時は中割り用のトレーサがそのまま トラッカーとして使用可能です。 -このオブジェクトをトラッカーとして参照します。 トラックポイントレイヤの値としてピックウィップで参照するか、必要ならエクスプレッションで連結してください。 --間に数式を挿んで2倍とか1/3とかやってもよいでしょう --動きが単純な場合は、直接プロパティの値をアニメーションさせてもよいでしょう -ぼかし幅は角度制御「シャッター開口度」で調整します。 このプロパティにキーを作成してブラーの長さの制御を行ってください。 部分的にブラーが不要な場合などは、開口度を 0°にするとブラーがかかりません。 360°でトラックターゲットの移動幅100%になります。 特にクリップしてないので720°とか980°とかのオーバーな数値も可能です。 このエクスプレッションは「方向ブラー」を「モーションブラー風」に使用している為、 回転運動のブラーには対応していません。 短時間に「ぐるん」と回るような動きでは不自然なブラーが発生しますので。注意してくださいね。 比較的直線的で早い運動向きです。 ***おまけ カメラが激しくぶれているときなどに、これを使ってカメラワーク成分をブレ方向に加えるとリアルになるかも… **ソース トラックブラー トラックターゲットを設定して、その動きをトラック。 動きのベクトルにあわせた方向ブラーをかける アニメーションプリセット レイヤ「トラックポイント」を直接アニメーションするか、またはコンポ内の 適切な2次元プロパティをさす様に調整してください。 Nekomataya/kiyo 2007/09/16 以下、ソースです ---( //ポイント制御 as "トラックポイント" this.value; /* トラックターゲットをピックウィップで参照するか、 またはこのプロパティをアニメーションしてください。 参照する値は二次元の値です。 */ ---) ---( //角度制御 as "シャッター開口度" this.value; /* このプロパティがエフェクトの適用率です。 ムービーのシャッター開口度として扱ってください。 */ ---) ---( //ブラー(方向).方向 targetProperty=effect("トラックポイント")("ポイント"); /* ターゲットブジェクトの移動をトレースしてモーション・ブラーを適用します。 * ターゲットは PAN SLIDE 等のカメラワークのアンカーポイントやポジションにセットしても良いと思います。 * 参照するプロパティを変更する場合は、一番上の変数を書き換えてください。ピックウィップがラクチンです。 */ myVector=div(add( sub(targetProperty.valueAtTime(time),targetProperty.valueAtTime(time-thisComp.frameDuration)), sub(targetProperty.valueAtTime(time+thisComp.frameDuration),targetProperty.valueAtTime(time)) ),2); function vec2deg(Vector,form) { if (Vector.length!=2){return false}; if (!form){form="degrees"}; var x=Vector[0];var y=Vector[1];var myRadians=(y==0)?0:Math.atan(y/x);if (x<0){myRadians+=Math.PI};var myRadians=Math.atan2(y,x); switch(form) { case "redians":var result=myRadians; break; case "degrees":var result = Math.floor(180. * (myRadians/Math.PI)* 10000)/10000;//degrees; break; case "azimuth":var result = (radiansToDegrees(myRadians))-90; break; } return result; } vec2deg(myVector,"azimuth");//ブラー方向 ---) ---( //ブラー(方向).ブラーの長さ targetProperty=effect("トラックポイント")("ポイント"); /* ターゲットブジェクトの移動をトレースしてモーション・ブラーを適用します。 * ターゲットは PAN SLIDE 等のカメラワークのアンカーポイントやポジションにセットしても良いと思います。 * 参照するプロパティを変更する場合は、一番上の変数を書き換えてください。ピックウィップがラクチンです。 */ myVector=div(add( sub(targetProperty.valueAtTime(time),targetProperty.valueAtTime(time-thisComp.frameDuration)), sub(targetProperty.valueAtTime(time+thisComp.frameDuration),targetProperty.valueAtTime(time)) ),2); length(myVector)*(effect("シャッター開口度")("角度")/360); ---) ではまあ、いつものおまじないで --- おことわり このプログラムの著作権は「ねこまたや」にあります。 あなたは、このプログラムのこの著作権表示を改変しないかぎり 自由にプログラムの使用・複製・再配布などを行うことができます。 あなたは、このプログラムを自己の目的にしたがって改造することができます。 その場合、このプログラムを改造したものであることを明記して、この著作権表示を 添付するように努めてください。 このプログラムを使うも使わないもあなたの自由なのです。 作者はこのプログラムを使用したことによって起きたいかなる 不利益に対しても責任を負いません。 あなたは、あなたの判断と責任においてこのプログラムを使用するのです。 なんか、困ったことがあったら以下で連絡してもらえると何とかなるかもしれません。 http://www.nekomataya.info/ mailto:webmaster@nekomataya.info ---- Nekomataya/kiyo 2007/09/16
Powered by YukiWiki 2.1.2a / Modified by Nekomataya.