[N] Photoshopで映画のようなエフェクトをかける方法
How to turn your photo into movie-like effect using Photoshop? « ebin
これ、QCでやってみます。iMovie用のエフェクトにもするよ。
とりあえず昨日適当に作って、適当に出来た。
スパゲッティーwwwwwww

今日は再度作りながら記事書いてみまっする。
まず、ファイルの下準備。
こんな感じで繋ぐ。

Image Importer : 画像を読み込む。今の状態では、上記サイトの最初の画像を読み込んでいる。最終的にはiMovie用にImage with Movieに返る。
Input Spilitter : Image With Movieに変えるとき、煩わしくないように挟んだだけ。只のパイプ。いらない。
Image Dimensions : Imageに繋がれた画像のサイズを得る。
Crop:: Imageを切り取る。使うパッチによっては、cropしないと表示されないものがあるので、あらかじめ入れとく。今の状態ではImage DimensionsのPixel Width, Pixel Heightに繋っているので、入力されたImageと同じサイズで切り取っているので変化なしです。
Rendering Destination Dimensions : Viewerのサイズを得ます。
Sprite : こいつが映像を出力します。今回は、Width と HeightをRendering Destination Dimensionsに繋いでいるので、Viewerサイズピッタリに出力されます。
後々、画面がゴチャゴチャしてくるので、マクロパッチでまとめてみました。まとめなくてもいいです。ちなみにImage Dimensionsは両方のマクロパッチに入れてます。(入れてましたが、結局直したので途中の画像から変わってます)

ここからスタートです。ネタ元と同じ順序でやっていきます。
color mood adjustments
まずサチュレーションを下げます。
使うパッチは Color Controlsです。元ネタと同じようになるまで下げてみましょう。
コマンド+2でInspectorのInput Parameterを呼び出せるので、この画面で調整してください。


次にbrightness と contrastの調整です。
使うパッチは2つExposure Adjust とGamma Adjustです。割とギラっとした感じにします。

今回見栄えを考えてガンガンマクロパッチ化していきます。使いそうなパラメーターはPublishしときます。
Depth of field effect
QCはRendererパッチをレイヤー化して複数表示できますが、iMovie用に使いまわせないのでImageUnit使う方法でやります。
まずはブラーかけます。Lenz Blurってのは無いのでGaussian Blurかけます。
ブラーをかけると外に引っぱられて元画像より大きい画像になるので元画像を同じ大きさにCropします。

次にBlend With Maskを使って元画像とブラーかけた画像を合成します。
Imageに元画像、Background Imageにブラー画像を繋ぐので

Mask画像は、背景が黒で、元画像残したい部分だけ白い画像を用意します。こんな感じの。

白い部分はGaussian Gradientや、Radial Gradientを使います。今回はGaussian Gradient使いました。color 1が白にして、color 2 のOpacityを0にしました。デフォルトのままですね。
只これらはグラデーションの大きさに合せて出力する画像の大きさが変化するので、使い勝手が悪いです。
そこでSource Atopを使って黒い背景(Constant Colorで作る)と合成した上で一旦Cropして、元画像と同じ大きさにしました。(この作業はRadial Gradientではいらないね。単純にCropするだけでいいや)
またしてもマクロパッチ。Gaussian GradientのX,YはiMovieから使う予定なのでPublish。

Film effect
この辺が画像と動画で変ってくると思うんですが、とりあえずやります。
まず周辺光量の減少。
Gaussian GradientとSource Atopを使いますが、Radial Gradientのほうが微調整が効くので良いかもしれないです。
まず、Gaussian GradientのCenter (X), Center (Y)を画面の中央に合せます。
Image Dimensionsで得られた値をそれぞれ2で割れば良いです。
Math Patchを使って 2でdevideしましょう。
color 1はOpacityを0にします。color2は色は黒で、Opacityは画像に合せて100から70くらいで上手く調整すればいいと思います。
radiusのサイズは元ネタで400で、元画像500pxに対して4/5だったので、サイズの違う画像も想定して元サイズの4/5を同じくMathによって得るようにしました。
これをSource Atopで重ねると、Opacityが0の部分(=中心部分)は透けるので周辺だけ暗くなります。
※フチの数ピクセルが少しぼやけてしまうのですが、まあ、味ってことで。
もっと困るのがノイズなんですけど、手頃なパッチが無い。
とりあえず、Random Generatorでノイズ作ったものをColor Monochromeで軽くモノクロ化してColor Matrixでアルファを下げたものをAdditionで足してみた。
もっといい混ぜ方があれば教えて下さい。
この場合、ノイズが動かないので動画で使うならもう一工夫必要です。
クロップする場所をLFOか何かで動かして、動かした分だけAffine Transformで動かし直せば良いです。LFOは矩形波使うとカクカク動いていいかんじです。

Cinemascope
は省略します。クロップ使えばいいだけですが。
と思ったけど追加、Width/16*9した値をHeightにしました。
で、選択できるようにMultiplexerを挟みました。
色の調整はWhite Point Adjustで行ないました。


で、これをiMovie用に調整していきます。
Quartz Composerのファイル(.qtz)をiMovieのエフェクトとして読みこむには、
iMovieを右クリックして「パッケージの内容を表示」を選択
Contents/Resourcesフォルダの中に、Effect_xxxxx.qtzの名前でファイルを入れます。
また、.qtzファイルのRoot Macro PatchからPublishすることによりiMovie側からの操作が可能になります。
Clip Movie Path : ムービーのパスが得られます。 Image With Movieパッチと繋ぎます。
Center X , Center Y : プレビューウィンドウをクリックした座標です。左下が(0,0)右上が(1,1)です。
fadeIn , fadeOut : エフェクトの開始時間、終了時間です。(確か)0から10の値吐きますが、ムービーが短かい場合、値が変ってきます。今回は使いません。
フェードを付けたい場合は、既存のエフェクトからコピペするのがてっとりばやい。
まずClip Movie Path。
Image With Movieを呼び出して、Image Importerと入れ替えます。

パッチを右クリックしてPublished Inputs ->Movie Path を選択、名前をClip Movie Pathに変更します。

今回はMacro Patch化していますので、更にMacro PatchからPublishします。
トップの階層のパッチの○が●に変わればOK。

次にCenter X , Center Y
今回これをGaussian Gradientに繋げます。
Center X , Center Yは画面上を0から1の座標で示しますが、Gaussian Gradientはピクセル単位なので、数値を変換しなければなりません。
Mathを使って、Image Dimensionsから得られたWidth , Height と掛け算します。

で、このMathのInitial ValueをCenter X , Center Yの名前でPublishすればいいのですが、デフォルト値を一応入力しておきます。
エフェクトのプレビュー時の真ん中は(0.5 , 0.5)なのでこの値を入力。(この作業は必要なのかはよくわからん)

で、Publishde Inputs。
名前をEffect_film.qtzみたいに付けてResourcesフォルダに入れ、iMovieを起動させれば、エフェクトを呼び出せます。

ファイルはここEffect_film.qtz.zip
使ってみた感想。
あんまり感動がねぇな。
(イマイチなのは元ネタの処理がおかしいんじゃなくて、自分の処理がおかしいからですよ。念のため。)
パラメーターの調整がいるね。
それは又明日以降。
ご使用は自己責任でね。