被写界深度のフォーカスポイントをNullで指定する!
AfterEffectsの被写界深度設定
ピントと合っているところと、合っていないところを立体的に表現するのがAfterEffectsの被写界深度機能です。
このピントを合わせる場所はカメラオプションの中のフォーカス距離で指定します。
つまりカメラから指定した距離に対してピントが合うという理屈です。細かな設定をしなければ手動でフォーカス距離を指定すれば問題ありませんが、細かい設定やフォーカスするポイントをアニメーションしたいときにはちょっと力不足になります。
ヌルをフォーカスポイントとする
レイヤーメニュー>カメラ>フォーカス距離をレイヤーにリンクする
レイヤーメニューのカメラにフォーカス距離をレイヤーにリンクする という機能があります。この機能を使うと簡単にヌルレイヤーをリンクすることでできることはできるんですけど、1ノードカメラには指定できないという制限があります。。。
エクスプレッションで解決する
AfterEffectsには
length(point1,pont2)
というエクスプレッションがあって、空間の中の絶対的な座標で対象とカメラの位置を指定すれば距離が簡単に求められそうなんですが、これがどうしてもうまくいかない。
どうやらZ軸沿いに値が変動すると正しい値が計算されないようです。
でも、カンペキな解決策を掲載しているサイトを発見しました。
Adobeのオンラインヘルプにも掲載されているDan Ebberts氏
Dan Ebberts氏はAdobeエクスプレッション言語リファレンス にも名前が掲載されているほど、高度なエクスプレッションを公開されているフリーランスのスクリプトデザイナーです。
その方がAuto Focus という記事で公開されているエクスプレッションカンペキです。
target = thisComp.layer("target");v1 = target.toWorld(target.anchorPoint) - toWorld([0,0,0]);v2 = toWorldVec([0,0,1]);dot(v1,v2)
このスクリプトをカメラオプションのフォーカス距離に書き込み、Nullオブジェクトをtargetという名前にします。
この方法の優れた点として、ヌルオブジェクトが他のレイヤーにペアレントされていても、まったく影響なしに機能するところにあります。
それにしても図入りで事細かく理屈を説明してくれているEbberts氏の記事 、読んでも読んでもワタクシの頭脳では理解できません。
でも、みなさんも是非氏のAuto Focusの記事 を読んでみてください。
-
被写界深度のフォーカスポイントをNullで指定する!の関連リンク