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

フォローする

まとめ

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

詳しくは

Nuke使用すると、ユーザーは Python API (アプリケーション プログラミング インターフェイス) を通じて膨大な量のアプリケーションをカスタマイズできます。これは、 Nukeの色の変更から、デフォルトのノブ値の設定、メニュー構造全体の変更、 Nukeスクリプト作成の自動化まで多岐にわたります。このカスタマイズ機能により、 Nukeスタジオ パイプラインにおいて非常に便利で強力になります。

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


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

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

スタートアップ スクリプトの場所

Nuke Nukeプラグイン パスにリストされている任意のパスで起動スクリプトを検索します。デフォルトのNuke 14.0v5 プラグイン パスは次のとおりです。

ウィンドウズ:

'C:\Users\ <ユーザー名> \ .nuke'
'C:\Program Files\Common Files\Nuke\14.0\plugins',
'C:\Program Files\Nuke14.0v5\plugins\user'
'C:\Program Files\Nuke14.0v5\plugins\caravr'
'C:\Program Files\Nuke14.0v5\plugins\air'
'C:\Program Files\Nuke14.0v5\plugins\icons'
'C:\Program Files\Nuke14.0v5\plugins'

Linux:

'/home/ <ユーザー名> /.nuke'
'/usr/local/ Nuke /14.0/plugins'
'/usr/local/ Nuke 14.0v5/plugins/user'
'/usr/local/ Nuke 14.0v5/plugins/ caravr '
'/usr/local/ Nuke 14.0v5/plugins/air'
'/usr/local/ Nuke 14.0v5/plugins/icons'
'/usr/local/ Nuke 14.0v5/plugins'

マックOS:

'/Users/ <ユーザー名> /.nuke'
'/ライブラリ/アプリケーション サポート/ Nuke /14.0/plugins'
'/アプリケーション/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/user' '/アプリケーション/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/ caravr ' '/Applications/ Nuke 14.0 v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/air' '/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/plugins/icons' '/Applications/ Nuke 14.0v5/ Nuke 14.0v5。アプリ/コンテンツ/MacOS/プラグイン

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

print(nuke.pluginPath())

Nuke 、リストに記載されている順序とは逆の順序で起動スクリプトをスキャンします。そのため、上記のリストでは、 Nuke 14.0v5/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のターミナルのみのセッションでは呼び出されません

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

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

異なるスタートアップ スクリプト ディレクトリの使用

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

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

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

注: Nuke 14.0v5/pluginsパスにある init.py および menu.py ファイルを変更することはお勧めしません。これらのファイルが誤って変更されると、 Nuke期待どおりに実行または起動できない可能性があります。

起動スクリプトの使用

前述したように、起動スクリプトを使用して、あらゆる範囲のカスタマイズをNukeに適用できます。パイプライン環境に役立つ関数の 1 つは、 nuke .pluginAddPath()です。

パイプラインに取り組むテクニカル ディレクター (TD) は、一連のツールを作成し、ネットワーク上でアクセス可能な 1 つのパスに追加できます。プラグイン パスが追加されたユーザーは、そのディレクトリから起動スクリプトを自動的にロードするため、TD は 1 つの Python ファイルを調整してツールを会社全体に展開できるようになります。メインのネットワーク起動スクリプトは、ユーザーが誰であるか、またはその他の要因に基づいて追加のプラグイン パスを追加できるため、さまざまなユーザーが特定のツールを表示するためのアクセスのみを取得できるように、他のプラグイン パスを含めることができます。

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

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

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

Nuke Studioが起動されると、init.py および menu.py ファイルのNukeプラグイン パスをスキャンして実行し、次にHieroと同じファイルのHieroプラグイン パスをスキャンして、それらも実行します。

追加の Python ファイルをHieroプラグイン パスに追加する場合、ファイルが初期化されている場合、起動時に呼び出されたときに悪影響が発生しないことを確認するためにファイルをチェックする必要があります。一方、 Nukeプラグイン パスに保存されている Python ファイルは、ユーザー コードによって特に呼び出されない限り初期化されません。

参考文献

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

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

    理由をお聞かせください