まとめ
この記事では、Python 経由でフレーム サーバーを使用してNukeスクリプトをレンダリングする方法について説明します。
詳細情報
NukeまたはNuke Studioでは、GUI でローカルに、 Nukeのターミナル セッションを使用して、またはフレーム サーバーを使用してなど、いくつかの異なる方法でレンダリングを実行できます。
フレームサーバーを使用すると、複数のNukeプロセスを使用してローカルマシンまたはネットワーク上の他のマシンに作業を分散することで、 Nukeのレンダリング時間を短縮できます。フレームサーバーの詳細については、こちらをご覧ください。
Nuke 11.0v1 以降では、以下に示すように、[レンダリング] ダイアログの[フレーム サーバーを使用してレンダリング]オプションをオンにすることで、 Nuke GUI からフレーム サーバー上でNukeスクリプトをレンダリングできます。
これにより、レンダリング ジョブがバックグラウンド レンダリング キューに追加され、 Nukeプロセスが利用可能になったときにレンダリングが開始されます。
フレーム サーバーを使用して Python 経由でNukeスクリプトをレンダリングするには、レンダリングする必要があるものに応じて使用できる 2 つのコマンドがあります。
from hiero .ui.nuke_bridge import FnNsFrameServer
#Queue background render of all the frames for a script
FnNsFrameServer.renderScript("C:/temp/test.nk")
#Queue background render of a range of frames for a script
FnNsFrameServer.renderFrames("C:/temp/test.nk", "1-10", "Write1", ["main"])
これらのコマンドは、フレームサーバーがレンダリングできるようにNukeスクリプトを保存する必要があります。これらのコマンドは、 nuke .scriptSaveAs()コマンドと組み合わせて使用することで、レンダリング可能なスクリプトの一時バージョンを保存できます。これにより、レンダリング中にスクリプトが誤って更新されるのを防ぐことができます。
その後、パイプラインの要件に応じて、カスタム メニュー/Python 関数で実行することも、 スクリプト エディターで直接実行することもできます。
renderScript()関数は、関数内で呼び出されたNukeスクリプト内のフレームのすべての Write ノードのすべてのビューをレンダリングします。
一方、 renderFrames()関数は、スクリプトにリストされている書き込みノードと定義されたビューの指定されたフレームのみをレンダリングします。
私たちはそれを聞いて申し訳ございません
理由をお聞かせください