レンダリング中にノードをバイパスする

としてNukeスクリプトが大きくなり、かなりの数のノードが含まれるようになると、スクリプトの処理が応答に時間がかかる場合があります。これは、GPUアクセラレーションノードなど、計算により多くの処理能力を必要とするノードの場合に特に当てはまり、スクリプトでの作業時に遅れを引き起こす可能性があります。使用時に処理速度が低下する可能性のある重い処理ノードの例Nuke BlinkScript、Convolve、Denoise、Defocus、Kronos、MotionBlur、OFlow、VectorGenerator、ZDefocusが含まれます。

作業が困難になり遅れが発生するようなスクリプトには、便利なものがあります$guiユーザーインターフェイス(GUI)処理を無効にするために使用できる式演算子。の$gui式の演算子は、結果として1または0を返します。

ノードがGUIを介して計算される場合、1が返されます。

ノードがGUIによって処理されていない場合、レンダリング時に0が返されます。

これをノードに追加する標準的な方法は、式を使用することです。機能面では、スイッチノードと同様に機能しますが、GUIが使用されているかどうかによって駆動され、自律的になります。

注意:  これらのノードはGPUアクセラレーションノードであり、高速のグラフィックカードをお持ちの場合、 $gui式内の演算子は必要ない場合があります。ただし、遅延が発生している場合は、 $gui GPUアクセラレーションと組み合わせた式で役立ちます。

最も一般的な用途 $gui演算子Nuke次のとおりです。 スイッチ方式無効化メソッド 、そして選択的変動法

スイッチ方式

Switchメソッドは、最も一般的な使用方法です$gui式で。他の方法とは異なり、Switchノードを無効にし、不要な場合は式をオフにすることができます。

1.   プロセッサの重いノードの後にスイッチノードを作成します。
2.   Switchノードを右クリックしますwhichコントロールしてから選択Add expression...

3.   式ボックスに入力します$gui
ノードは内部で処理されるため、結果が1として表示されるはずです。 Nuke GUI。
4.   接続する0プロセッサの重いノード(この例では20サンプルのMotionBlurノード)への入力。
5.   接続する1プロセッサの重いノード(この例では変換ノード)の前のノードツリーへの入力。
6.   GUIを介してViewerフレームを再生すると、MotionBlurノードをバイパスし、最終画像に適用されたぼかし結果を表示しないため、処理が高速に行われます。

7.   MotionBlurを処理して最終結果を確認するには、次を使用してディスクにレンダリングしますRender in backgroundまたはFrame Server。これは、外部プロセスを使用しますNuke GUI。その間はスクリプト操作を遅くしないでください。

注意:  バックグラウンドでレンダリングしない場合、またはフレームサーバーを使用しない場合、レンダリングは同じプロセスを使用しますNuke GUIおよび期待どおりに動作しません。

8.   レンダリングすると、モーションブラーの結果が処理されて表示されます。

無効化メソッド

Disableメソッドは、 disableスイッチノードを使用するのではなく、ノードの設定のオプション。これはノードが少ないほどすっきりしていますが、式をオフにするのはより困難です。

注意:  を使用してDisableメソッドは、GUIでノード処理結果を表示するために式を削除する必要があることを意味し、ノードを完全にバイパスします。

1.   MotionBlurを右クリックしますdisableコントロールセレクトAdd expression...
2.   タイプ$gui式コントロールでクリックしますOK

3.   Viewerを再生して、MotionBlurノードの処理がバイパスされ、ぼかし効果が表示されないことを確認します。

4.   レンダリングの結果は次と同じですスイッチ方式ただし、ぼかし効果を再び有効にするには、エクスプレッションを完全に削除する必要があります。

選択的変動法

選択的変動法では、 $gui他の2つの値と組み合わせた演算子式。これにより、モードに応じてパラメータに割り当てることができる2つの独立した数値を設定できますNukeオン/オフ値の結果のみを適用するため、(GUIまたは非GUIでのレンダリング中に) 式は次のようになります。

$gui?0:20

0で使用する値ですNuke GUIモードと20レンダリング中に外部GUIモードを使用する値。

注意:  を使用してSelective Variationメソッドは、GUIでノード処理結果を表示するために式を削除する必要があることを意味し、ノードを完全にバイパスします。

1.   ノード(この例では、MotionBlurノード)で、式$gui?0:20に追加され、割り当てられますShutter Samplesコントロール。これにより、GUIで0サンプルがレンダリングされ、バックグラウンドレンダリング中に20サンプルがレンダリングされます。

2.   GUIでこれを再生すると、MotionBlurノードにアクセスすることがわかりますが、値を使用してレンダリングするまで値は0のままですRender in background、20個のサンプルを使用する場合。

3.   レンダリングの結果は次と同じですスイッチ方式