NUKE カスタムのLUTをビューアに対して適用する方法

こちらの記事では、NUKEのViewer上で画像を表示する際に任意のLUTを適用する方法について、紹介致します。

01_viewerlut

この機能を使用することで、NUKE内で最終出力先の色空間で画像を表示することが可能になります。

 

前提として、NUKEでは、Viewer上で表示される際に適用するLUTを、「ViewerProcess」というプルダウンメニューで選択することができます。

02_viewerlut

デフォルトは「sRGB」となっており、こちらは通常、リニアな状態のコンポジット結果をモニターの色空間に変換するために使用されます。

上記の画像で表示されていないViewer用のLUTを適用する方法として、「Input Processを使用する方法」「Viewer ProcessのリストにカスタムのLUTを追加し、そちらを使用する方法」があります。こちらの記事では、それぞれの設定方法について、紹介致します。

※OCIO config fileを使用して、Viewer Processを動的に変更する方法につきましては、こちらをご覧ください。

 

▼Input Process を使用する

Input Process 機能は、ビューアに画像を表示する前に、指定したノードの効果を適用します。こちらを使用することで、NUKEのNode Graph内にあるノードの効果を、一時的にViewerに対して適用することができます。

デフォルトの状態では、Input Processとして登録しているノードがないため、この機能はグレーアウトしています。

03_viewerlut

Input Processとして使用するノードを定義するには、以下の3つのうち、いずれかの操作を行います。

ノードの名前を登録する

  1. Viewer タブ上で[S]キーを押して、[Viewer Settings]を開きます。
  2. Input Processとして登録したいノードの名前を、[Viewer]タブの[input process]の項目に入力します。以下の画像の例では、[Grade1]と入力し、Grade1ノードをInput Processとして使用するノードとして設定しています。
    05_viewerlut

ノードの名前を変更する

  1. Input Processとして登録するノードの上で、[N]キーを押します。
    08_viewerlut
  2. ノードの名前を、[VIEWER_INPUT]に変更して、[Enter]キーを押してください。
    09_viewerlut

ノードを選択して設定する

  1. Input Processとして登録するノードを選択した状態で、[Edit] > [Nodes] > [Use as Input Process]を選択します。
    10_viewerlut
  2. 自動的に、現在選択しているノードのコピーが作成され、コピーされたノードの名前が[Viewer Settings][input process]に登録されます。
    11_viewerlut

これにより、上記の画像の通り、プレビューしているノードの流れにInput Processとして登録したノードが含まれていなくても、Viewer上の結果には効果が適用されるようになります。

これらの操作を行い、効果を適用している間は、IPアイコンが赤くなります。

12_viewerlut

登録しているノードを削除する、名前を変更するといった操作によってInput Processの登録が解除されるまでは、このアイコンをクリックすることで、任意のタイミングで効果を適用することができます。

 

 

▼Viewer ProcessにカスタムのLUTを追加する

Viewer Processは、Input Processと同様に、画像を表示する前に効果を適用する機能です。Input Processと異なる点は、効果を適用する際に、Gizmoを使用する点です。

デフォルトでは、[None]、[sRGB]、[rec709]、[rec1886]を選択することができますが、例えば、それ以外の項目をこのリストに追加したい場合は、追加したいLUTを含むGizmoをあらかじめ作成し、Pythonコマンド[nuke.ViewerProcess.register()]を使用してinit.pyに記述する必要があります。

Gizmoの作成方法についてはこちらを、init.pyに関してはこちらをそれぞれご覧ください。

NUKEの[Project Settings]の[Color]タブから確認可能なLUTは、NUKEのViewerProcess_1DLUTというビルトインのGizmoファイルを利用することで、簡単にViewer Processに追加することができます。

15_viewerlut

ViewerProcess_1DLUTファイルを利用して、上記画像のリストの特定のLUTを追加したい場合は、init.pyファイルに、以下のような文章を記述します。

※init.pyファイルがない場合は、.nukeフォルダ直下にファイルを新規作成してください。

nuke.ViewerProcess.register("<リストに表示する名前>", nuke.createNode, ("ViewerProcess_1DLUT", "current <LUT>"))

例えば、Cineon のLUTを追加したい場合のinit.pyの入力内容は以下の通りです。

16_viewerlut

ファイルを保存し、NUKEを起動することで、Viewer ProcessのリストにLUTを追加することができます。

17_viewerlut

また、それ以外のカスタムのLUTをリストに追加したい場合は、カスタムのLUTを含むGizmoファイルを作成して、以下のように登録することで、同様に設定することができます。

例えば、MyProcess.gizmoというファイルを使用して、My Custom ProcessというViewer Processを追加したい場合は、以下のようにinit.pyに入力します。

nuke.ViewerProcess.register("My Custom Process", nuke.Node, ("MyProcess", ""))

 

 

▼補足:Input ProcessとViewer Processを適用する順番について

Input ProcessとViewer Processを適用する順番は、デフォルトでは、Input Processの後に、Viewer Processが適用されます。この順番を入れ替えたい場合は、次の操作を行います。

  1. Viewer タブ上で[S]キーを押して、[Viewer Settings]を開いてください。
  2. プロパティ内で表示される[Viewer Settings]の[Viewer]タブ内の[input process order]を[before viewer process]から[after viewer process]に変更します。
    20_viewerlut

 

関連ページ: