Q100490: init.pyとmenu.pyの起動スクリプトファイルとは何ですか?

まとめ

この記事では、 init.pyファイルとmenu.pyファイルとは何か、また、それらをNukeでどのように使用できるかを以下のサブセクションで説明します。



詳細情報

Nuke Python API(アプリケーション・プログラミング・インターフェース)を通じて、アプリケーションの幅広いカスタマイズを可能にします。Nukeの色の変更、 Nukeのデフォルト設定、メニュー構造全体の変更、 Nukeスクリプト作成の自動化など、多岐にわたります。こうしたカスタマイズ機能により、 Nukeスタジオのパイプラインにおいて非常に便利で強力なものとなっています。

これらのカスタマイズのほとんどは、 Nukeのスクリプトエディタで実行できます。例えば、作成されるすべてのColorCorrectノードのゲイン値をデフォルトで2に設定したい場合、スクリプトエディタでnuke .knobDefault("ColorCorrect.gain", "2")を実行すると、そのNukeセッションで作成されるすべてのColorCorrectノードに対してこの設定が適用されます。


ただし、次に別のNukeセッションが起動されると、新しく作成された ColorCorrect ノードのデフォルトのゲイン値は 1 になります。これらのデフォルト値の変更を永続的にするには、起動スクリプトで各Nukeセッションのノブのデフォルトを設定する必要があります。

スタートアップスクリプトは、 Nukeの起動時に実行される Python スクリプトで、 nuke .knobDefault("ColorCorrect.gain", "2")のようなコマンドを実行するために使用できます。つまり、今後のNukeセッションでは、Gain ノブが 2 に設定された ColorCorrect ノードが作成されることになります。

起動スクリプトの場所

Nuke Nukeプラグインパスに記載されているパスから起動スクリプトを検索します。Nuke 16.0v4 Nukeデフォルトのプラグインパスは、各オペレーティングシステムで以下のとおりです。

ウィンドウズ

C:\Users\ <userName> \.nuke
C:\Program Files\Common Files\Nuke\16.0\plugins
C:\Program Files\Nuke16.0v4\plugins\user
C:\Program Files\Nuke16.0v4\plugins\caravr
C:\Program Files\Nuke16.0v4\plugins\air
C:\Program Files\Nuke16.0v4\plugins\icons
C:\Program Files\Nuke16.0v4\plugins

リナックス

/home/ <userName> /.nuke
/usr/local/ Nuke /16.0/plugins
/usr/local/ Nuke 16.0v4/plugins/user
/usr/local/ Nuke 16.0v4/plugins/ caravr
/usr/local/ Nuke 16.0v4/plugins/air
/usr/local/ Nuke 16.0v4/plugins/icons
/usr/local/ Nuke 16.0v4/plugins

macOS

/Users/ <userName> /.nuke
/Library/Application Support/ Nuke /16.0/plugins
/Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/plugins/user /Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/plugins/ caravr /Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/plugins/air /Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/plugins/icons /Applications/ Nuke 16.0v4/ Nuke 16.0v4.app/Contents/MacOS/plugins

Nukeが現在使用しているプラグイン パスのセットは、スクリプト エディターで以下のコマンドを実行することで確認できます。

print(nuke.pluginPath())

Nuke 、リストされている順序の逆順に起動スクリプトをスキャンします。そのため、上記のリストから、 Nuke 16.0v4/plugins最初にスキャンされ、 <userName> /.nukeが最後にスキャンされます。

このリストに他のパスを追加することもできますnuke .pluginAddPath()を使ってリストの先頭にパスを追加するか、 nuke .pluginAppendPath()使ってリストの末尾にパスを追加します。プラグインパスリストは、 NUKE _PATH環境変数を変更することでも編集できます。

INIT.PY と MENU.PY

Nukeの起動時に呼び出される 2 つの起動スクリプトは、 init.pyファイルとmenu.pyファイルです。これらのファイル名は、 Nukeプラグインのパス内でNukeによってアクティブに検索され、見つかった場合に実行されます。

  • init.pyファイルはNukeNuke Studio 、ターミナル モードでのNukeの起動時、またはフレーム サーバー プロセスなど、Nuke セッションが初期化されるたびNuke呼び出されます
  • menu.pyファイルは Nukeの GUI バージョンが起動されるたびに呼び出されるため、フレーム サーバー プロセスのようなNukeのターミナルのみのセッションでは呼び出されません。

ほとんどの場合、カスタマイズはinit.pyファイルに配置する必要があります。これは、すべての種類のNukeセッションで呼び出されるためです。主な例外は、カスタム メニューの作成やNukeのデフォルト メニューの調整など、GUI 関連です。

Nuke 、まずプラグインリスト全体を逆順にループし、すべてのinit.pyファイルを探して実行することで、プラグインパスを処理します。次に、プラグインパスリスト全体を再度ループし、 menu.pyファイルを探して実行します。

異なる起動スクリプトディレクトリの使用

Nukeプラグインパス内のすべてのディレクトリをスキャンしますが、 init.pyファイルやmenu.pyファイルNuke自動的には作成されません。Nuke Nuke 16.0v4/pluginsなどの一部のディレクトリには既にこれらのファイルが存在しますが、その他のパスでは新たに作成する必要があります。

ほとんどのユーザーは、 init.pyファイルとmenu.pyファイルを、 Nukeのプラグインパスリストの最初のパスである.nukeディレクトリに追加します。.nukeディレクトリはユーザー自身の領域内にあるため、そこにmenu.pyを追加しても、影響を受けるのは当該ユーザーのNukeセッションのみです。また、アプリケーションのインストールファイルにアクセスする場合よりも権限の問題が少なく、ユーザーが誤ってNukeのインストールファイルを変更する可能性が低くなります。

注意:起動スクリプトをNuke /16.0/pluginsディレクトリに追加すると、それらのスクリプトはNukeのすべてのバージョンリリース(この場合はNuke 16.0v#リリースすべてNukeに影響します。Nuke Nuke 16.0v4/plugins/userディレクトリを作成した後に起動スクリプトを追加すると、それらのスクリプトは特定のNukeリリースに影響します。

注意: Nuke 16.0v4/pluginsディレクトリ内のinit.py ファイルmenu.pyファイルを変更することはお勧めしません。これらのファイルを誤って変更すると、 Nuke期待どおりに実行または起動しなくなる可能性があります。

起動スクリプトの使用

前述の通り、起動スクリプトはNukeに幅広いカスタマイズを適用するために使用できます。パイプライン環境で便利な関数の一つにnuke .pluginAddPath()があります。

パイプラインで作業するテクニカルディレクター(TD)は、一連のツールを作成し、ネットワーク上でアクセス可能な単一のパスに追加できます。プラグインパスが追加されたユーザーは、そのディレクトリから起動スクリプトを自動的に読み込むため、TDは単一のPythonファイルを調整するだけで、会社全体にツールを展開できます。その後、メインのネットワーク起動スクリプトに、ユーザーやその他の要因に基づいて追加のプラグインパスを追加することで、異なるユーザーが特定のツールのみにアクセスできるように、別のプラグインパスを追加できます。

NUKE vs HIERO vs NUKE STUDIOスタートアップスクリプト

Nukeが起動されると、 Nukeプラグイン パスでinit.pyファイルとmenu.pyファイルがスキャンされ、実行されます。

Hieroが起動すると、 Hieroプラグインのパスをスキャンし、プラグインパス内のPython/StartupおよびPython/StartupUIディレクトリ内にあるinit.pymenu.py 、およびその他の Python ファイルを検索して実行します。詳細については、以下をご覧ください。
Q100373: Nuke StudioHieroにプラグインパスを追加する方法

Nuke Studioが起動すると、 Nukeプラグイン パスでinit.pyファイルとmenu.pyファイルがスキャンされて実行され、次にHieroプラグイン パスでHieroと同じファイルがスキャンされて実行されます。

HieroプラグインのパスにPythonファイルを追加する場合は、ファイルが初期化されているかどうかを確認し、起動時に呼び出されても悪影響がないことを確認してください。一方、 Nukeプラグインのパスに保存されているPythonファイルは、ユーザーコードによって明示的に呼び出されない限り初期化されません。



さらに詳しく

init.pyおよびmenu.pyファイルの詳細については、以下を参照してください。

    私たちはそれを聞いて申し訳ございません

    理由をお聞かせください