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

こちらの記事では、前回の記事に引き続き、Precompノードについて、Precompノードで書き出した.nkファイルをレンダリングし、結果のシーケンスを代わりに使用する方法と、関連するTipsを紹介致します。

 

前回の記事の時点では、.nkファイルをそのまま参照していますが、追加でPrecompノードの.nkファイルのレンダリングを行い、その結果をメインの.nkファイル内のPrecompノードで一つのシーケンスファイルとして読み込むことで、その部分の計算時間を減らし、レンダリング時間を短縮できることがあります。

こちらの操作を行うには、以下の手順で操作します。

 

 

▼シーケンスのレンダリングと読み込み

  1. Precompノードのプロパティを開きます。
     
  2. [Render]ボタンをクリックします。表示されたダイアログボックスの[Frame range]でレンダリングする範囲を設定して、[OK]ボタンを押します。
     

     
    Nukeは、Precompノードの.nkファイルをレンダリングし、Precompノードの作成時に[Precomp render path]で指定したディレクトリにレンダリング結果の画像を保存します。
     
  3. レンダリングが完了すると、Precompノードの[read file for output]が自動的に有効になります。この項目にチェックが入っていると、Precompノードは緑色に変わり、Precompノードの.nkファイル内の出力を計算するのではなく、レンダリングされたシーケンスを読み込むようになります。読み込んでいるシーケンス名と、(Read)という文字もあわせて表示されます。

レンダリング結果のシーケンスの読み込み時にエラーが発生した際の挙動は、Precompノードのプロパティ[missing frames]ドロップダウンメニューで設定できます。

  • [error] – 欠落しているフレームでエラーメッセージを表示します。
     

     
  • [black] – 欠落しているフレームを黒い画像に置き換えます。
     

     
  • [checkerboard] – 欠落しているフレームをチェッカーボードの画像に置き換えます。
     

     
  • [read input] – 欠落しているフレームのレンダリングされたファイルではなく、Precompノードの.nkファイルの結果を表示します。
     

 

補足:プロキシモードでのレンダリングを行う方法

あらかじめPrecompノードの.nkファイル内のWriteノードで[proxy]を設定しておくことで、メインの.nkファイル側で[Render]ボタンを押したときに[Use Proxy]を使用することができます。これにより、プロキシモードでのレンダリング結果をメインの.nkファイル側で表示できるようになります。

※表示する際は、Viewerタブのproxy modeを有効化してください。

 

補足:[Render]ボタンでレンダリングを行うノードについて

Precompノードの.nkファイルの出力をレンダリングする場合、Nukeは最初にOutputノードを探すことで、使用するWriteノードを自動的に選択します。 Outputノードが見つからない場合は、Writeノードを検索します。OutputノードまたはWriteノードが見つからない場合は、エラーが発生します。

尚、Precompノードの.nkファイル内のOutputノードの設定は、Precompノードのプロパティを使用することで上書きが可能です。

例えば、Precompノードの.nkファイル内で、手動で作成したWriteノードがあり、そちらの結果をメインの.nkファイルで表示したい場合に使用することができます。

Outputノードの上書きは、Precompノードのプロパティの[advanced]の欄で行います。▼のアイコンをクリックして展開し、[enable]チェックボックスを有効化し、[output node]のフィールドに、書き出しを行うWriteノードの名前を入力します。

上記の操作により、デフォルトのWriteノードから、[output node]で指定したWriteノードに切り替えることができます。

以下の画像は、実際にWriteノードを追加した時の画像です。Write2ノードを手動で追加し、書き出すファイル名はPrecomp_adv_v01.%04d.exrに設定しています。

そして、メインの.nkファイルのPrecompノードで、上記の画像の時点で手動で追加したWrite2ノードを指定し、レンダリングした際の画像がこちらです。ViewerはWrite2ノードのレンダリング結果を表示し、Write2ノードで指定したファイル名が、Node Graph上のPrecompノードで表示されています。

 

 

▼Precompノードで使用するシーケンスのファイル形式

Precompノードの.nkファイルをレンダリングし、結果をメインの.nkファイル内で読み込みたい場合は、ファイル形式を.exrにしてレンダリングしてください。

.exr形式を使用した場合であれば、Nukeはレンダリングされたファイルにインプット側のノードツリーのハッシュ値を書き込むことができます。そして、「Precompノードの.nkファイル」「メインの.nkファイル内のPrecompノードで読み込んでいるシーケンス」ハッシュ値が異なる場合に、それをメインの.nkファイル内のPrecompノードでエラーとして認識することができます。

上記のような状況で、[missing frames]errorの場合は、[file does not match input]という内容を含むエラーが表示されます。

もちろん、こちらのエラーは再度レンダリングをすることで(ハッシュ値が新しい番号で一致するため)回避できます。

.exr以外のファイル形式を使用した場合は、ハッシュ値が取得できないため、Precompノードがレンダリングしたファイルを正常に使用、認識できない可能性がありますので、ご注意ください。

 

補足:ハッシュ値とは

ハッシュ値は、NUKEの、あるノードとその入力に接続されたノードのツリー全体から計算された、他とは同じにならない(一意)の番号(例:b1c9c0aff2012a8)です。ノードの種類とすべての現在の設定がハッシュ値に寄与します。

ノードグラフの任意のポイントにハッシュ値を表示するには、ノードグラフでノードを選択し、[I]キーを押します。ハッシュ値はツリー内の場所によって異なることがあります。