2014年12月9日火曜日

NUKEでLUTを作成したり適用する方法

一年半以上ぶりの更新です。こんにちは。
今回はNUKEでLUTを作成したり適用したりする方法ごご紹介します。

1.NUKEで作成したカラコレデータをLUTデータで出力しそれを読み込む方法


例えばこの上の画像をNUKE上でカラコレします。左がオリジナルで左がGradeノードなどを使ってカラコレした状態です。

右側のカラコレデータを他のショットにも適用させたい場合どうすればいいかというと、NUKE上でやるのであればカラコレデータを適用したノードを他のnkスクリプトでコピペすればOKです。
もしNUKEではない他のソフトウェアでもこのカラコレデータを使用したい場合LUTデータとして出力します。



まずColor > 3D LUT > CMSTestPatternノードを作成します。
そしてそのCMSTestPatternノードに適用したいカラコレノードをコピーして繋げます。
適用させたいカラコレノードを入れ終えるとGenerateLUTノードを一番下に繋げ出力したいファイル形式にしてGenerate and Write LUT Fileボタンを押して出力します。



出力したLUTファイルを読み込むにはどうすればよいかというと
Color > 3D LUT > Vectorfield でVectorfieldノードを呼び出します。
そして先ほど出力したLUTデータを読み込めばカラコレが適用されます。


グレーディングは基本的にNUKEでやることはほとんどありません。大体編集室とかで別のグレーディングソフトウェアを使ってカラコレしてLUTデータを出力してそれをNUKEで読み込んで合成していきます。
その場合注意しないといけないのがcolorspaceのin,outで読み込んだ素材のcolorspaceと最終的に見るViewerのLUTのカラースペースを必ず確認することです。当たり前ですがここを間違えると色が変わってしまいます。

NUKEと違いリニアのワークスペースで作業しないソフトフェアでカラコレしてLUTデータを出力したときoutがsRGBのときがある場合もあるのでそれはデータや注をよく見て確認します。



2.Input processでカラコレを適用する

NUKE内でLUTを適用する方法として最終のノードの下にVectorfieldを適用して見る方法があります。
この方法は基本的でわかりやすいのですがVectorfieldが繋がっていないノードのプロセスではLUTが適用された結果がわかりません。なのでLUTが適用された結果を確認するためVectorfieldノードをときによってはつなぎ変えたりする作業が発生します。

これはある2つの方法で解決します。
一つ目はInput processの機能をしようすることです。この機能を使うと適用させたいカラコレデータがノードストリーム上になくてもノードの最後にカラコレが適用されます。



適用させたいカラコレノードもしくはVectorfieldノードを選択して
Edit>Node> Use as Input Process

そうすると


ビューワー上のIPというアイコンが赤くなりました。そしてVecotorfieldに繋いでいないのにカラコレが適用されるようになります。

※このLUTはノードストリームで繋がっていないので最終的なアウトプットには反映されません。


3.Viewer LUTにカスタムLUTを適用する



ビューワーにカスタムLUTを登録してそこで切り替えられるようにする方法

グレーディングし終えたVectorfieldなどのノードをグループ化そしてGizmo化する。

Gizmoを.nukeフォルダに入れ int.pyファイルに以下の分を記述する。

nuke.ViewerProcess.register("TS_ViewLut", nuke.createNode, ("Ts_LUT",""))

※TS_ViewLutが表示名
※Ts_LUTがgizmo名

そしてNukeを再起動する。

そうして素材を読み込みLUTを新しく登録したTS_ViewLutにするとおかしい事に気づきます。


今まで表示されていた色と違うのがわかります。より黒く落ちている感じです。
実はこれは間違いではありません。
リニアで見た状態がこの色なのです。なので先程のVectorfieldを付け直してViewerをNoneにしたら同じ色になると思います。

でもこれだと意図した色で作業ができません。
ではどうすればいいか?

今までの色が変化する工程を一つづつ考えていけばわかります。
先ほどまではsRGBのビューワーで見ていました。なのでVectorfieldを加えた後sRGBのガンマを加えた色に変化してます。
つまりはGroup化したVectorfieldの後にsRGBのカーブを加えてGizmo化してやればいいわけです。