NUKE Precompノードについて パート1

こちらの記事では、NUKEのPrecompノードについて、概要と使用方法、バージョン管理方法を紹介致します。

 

▼Precompノードとは

Precompノードは、見た目はGroupノードに似ていますが、ノードをそのまま格納するGroupノードとは異なり、独立した.nkファイルを使用します。こちらのノードを使用することで、ノードツリーの一部を別々のNukeスクリプト(.nkファイル)として保存し、その.nkファイルの最終出力をレンダリングし、レンダリング結果を一つの素材の入力としてメインの.nkファイルに読み戻すことができます。

Precompノードは、主に以下の2つの用途で使用されます。

  • ノードツリーの一部を事前にレンダリングした素材の入力に置き換えるために使用します。 Nukeは、作成に使用されたすべてのノードではなく、一つの素材の入力を処理するだけで済むため、レンダリング時間を削減できます。レンダリングを行う前のノードは別々の.nkスクリプトに保存されますので、必要に応じて後からノードを調整することができます。
     
  • 複数のユーザーとの分担作業を行うために使用します。ある1人のユーザーがPrecompノードを含むメインの.nkファイルを使用して作業している間に、他のユーザーがPrecompノードでエクスポートされた部分の.nkファイルを開いて作業することができます。また、Precompノードでエクスポートした.nkファイルは、メインの.nkファイルとは別にバージョンを追加し、メインコンプ側で切り替えて確認することが可能です。
    例えば、背景のマットペイントと合成を含むメインの.nkファイルから、マットペイントを行っている部分をPrecompノードでエクスポートすることで、メインの.nkファイル内にマットペイントの結果だけを読み込んでくることができます。また、バージョンが複数作成されていれば、それをメインの.nkファイル側で切り替えることも可能です。

 

補足:NUKE Assistでの対応について

NUKE Assistは、Precompノードには対応していません。 NUKE Assistでプリコンパイルを作成することはできません。 ただし、スクリプト内にすでに存在する場合は、表示することのみ可能です。 NUKE Assistで非対応のノードが実際にどのような表示になるかは、こちらのページをご覧ください。

 

 

▼Precompノードでノードグラフの一部を切り分ける

実際に、すでに作成されたスクリプトの一部をPrecompノードでまとめるには、以下の手順で操作します。

  1. Precompから別の.nkファイルにエクスポートするノードを選択します。Groupノードが含まれる箇所を選択した場合は、その中のノードもPrecompでエクスポートされる.nkファイルに複製されます。
     

     
  2. Other > Precompを選択します。もしくは、Node Graph上で[CtrlまたはCmd + Shift + P]を押します。Precomp Nodesダイアログが開きます。
     

     
  3. [Precomp script path]の横にあるフォルダアイコンをクリックし、Precompでエクスポートする.nkファイルの保存先に移動し、ディレクトリパスの後に.nkファイルの名前を入力します。デフォルトでは、Precompノードの.nkファイルはメインの.nkファイルと同じ階層に、Precomp1_v01.nkという名前で保存されます。メインの.nkファイルが保存されていない場合は、最後に開いたディレクトリに保存されます。
     
  4. [Precomp render path]の横にあるフォルダアイコンをクリックし、Precompを行うノード群のレンダリング結果の保存先を指定します。ディレクトリパスの後に、レンダリングする画像またはシーケンスの名前を入力します。デフォルトでは、メインの.nkファイルと同じディレクトリPrecomp1.####.exrという名前で保存されます。必要に応じて、保存先を変更したり、Precomp1_v01.####.exr のように、バージョン番号を追加します。
     
  5. [Channels]ドロップダウンメニューから、手順4で指定した画像ファイルに含めるレイヤーおよびチャンネルを選択します。この項目は後からでも変更が可能です。
     
  6. [Original nodes]ドロップダウンメニューで、Precompの対象として選択したノード群をメインの.nkファイル内でどうするかを設定します。
    – [add backdrop]は、選択したノードの背後にバックドロップを追加します。
    – [delete]は、選択したノードを削除します。
    – [no change]は、選択したノードに対して何も行いません。
    以下の画像は、各項目を選択して実行した時のメインの.nkファイルのNodeGraphを比較した画像です。


     
  7. [OK]をクリックします。

手順1で選択した範囲内のノードで、どこにもつながっていないアウトプットが一つの場合、そのまま作成が完了します。
以下の左側の画像のように、どこにもつながっていないアウトプットが複数ある場合は、右側の画像のようなウィンドウが表示されますので、Precompの.nkファイル内の出力として使用したいノードをプルダウンメニューから選択して[OK]を押してください。

Nukeは、選択したノードを[Precomp script path]で指定された.nkファイルに保存します。

メインの.nkファイルのNodeGraph内では、Precompノードが作成され、アウトプットが選択したノード群の最終出力から差し替えられます。 また、Nukeは、Precompノードのプロパティを開きます。
以下は、手順6で[delete]を選択した際の結果画像です。

 

補足:PrecompノードとProject Settings

Precompノードで作成される.nkファイルは、メインの.nkファイルからProject Settingsでのプロジェクトの設定を取得します。そして、Precompノードの.nkファイルがメインの.nkファイルにロードされるときは常にメインの.nkファイルのプロジェクト設定が使用されます。したがって、Precompノードの.nkファイルを別のNUKEのインスタンスで開き、メインの.nkファイルと異なるプロジェクト設定にしても、メインの.nkファイル側にロードされたときにその変更内容は反映されません。プロジェクトの設定を変更したい場合は、Precompノードの.nkファイルではなく、メインの.nkファイルで行う必要があります。

 

 

▼Precompした.nkファイルを開いて更新する

それでは、保存されたPrecompノードを開き、更新しましょう。

  1. Precompノードのプロパティで、[Open]をクリックします。これにより、[file]で指定されている.nkファイルが新しいNUKEのセッション上で開かれます。
     

     
    以下の画像は、Precomp_v01.nkを開いた後のNodeGraphの画像です。Precompノードの作成時に選択したノードの他に、InputノードとOutputノード、Writeノードが追加されていることが確認できます。
     

     
  2. 必要に応じて、Precompノードの.nkスクリプトを編集します。何も接続していないインプットにはInputノードが自動的に作成されます。何か接続する必要があれば残しますが、こちらの例では不要なため、すべて削除します。


     
  3. [File] > [Save Comp]でスクリプトを上書き保存します。

 

 

▼Precompした.nkファイルの再読み込み

Precompノードでエクスポートした.nkファイルの編集結果は、メインの.nkファイル側で更新を行う必要があります。

  1. メインの(Precompノードが含まれる).nkファイルを開きます。
     
  2. Precompノードの[file]フィールドのファイル名が、読み込みたい.nkファイルと一致していることを確認します。別の名前で保存されている場合、または別のスクリプトを使用したい場合は、[file]プロパティでファイル名を編集します。
     

     
  3. Precompプロパティで、[Reload]をクリックします。こちらでは、上記の項目でPrecomp_v01.nkの中のInputノードを削除したため、表示されていたインプットがすべて消えました。
     

 

 

▼Precompのバージョン管理

Precompノードの.nkファイルおよび出力される素材に、あらかじめ「v01」を含めておき、[VersionUp]を使用し、複数の.nkファイルと素材をバージョン違いとして保存することで、より素早くPrecompノードの結果を更新することが可能です。

Precompノードでエクスポートした.nkファイル内で、以下の設定を行います。

  1. Writeノードから出力するシーケンスの名前を変更します。Writeノードを選択した状態でメニューから [Edit] > [Node] > [Filename] > [VersionUp]を選択する、もしくは[Alt+Up(↑)]キーを押すことで、「v01」を「v02」へ自動的に書き換えます。例えば、最初に設定されていたシーケンス名が「Precomp_v01.####.exr」の状態で[VersionUp]を行うと、ファイル名が「Precomp_v02.####.exr」に更新されます。
     

     
  2. .nkファイルの名前を変更します。メニューから[File] > [Save New Comp Version]を選択する、もしくは[Alt+Shift+S]キーを押すことで、自動的に「v01」を「v02」に書き換え、別名で.nkファイルを保存することが可能です。
     
  3. メインの.nkファイル内で、バージョンを上げて結果を確認したい場合は、手順1と同様に、Precompノードを選択し、[Edit] > [Node] > [Filename] > [VersionUp]を選択する、もしくは[Alt+Up(↑)]キーを押すことで、ファイル名の「v01」を「v02」へ更新可能です。また、[Alt+Down(↓)]キーでバージョンを下げることも可能です。
    以下の画像は、「v01」とは別に、色を少し暗くした「v02」を作成し、Precompノードでバージョンを切り替えている画像です。
     

 

 

▼Precompの.nkスクリプトの読み込み

すでに作成されたPrecompノードの.nkファイルを、別のPrecompノードで読み込みたい場合は、何もノードを選択せずにPrecompノードを作成して、[file]プロパティから.nkファイルを選択します。