Q100465: Nuke のさまざまなバージョンのプラグインをロードする方法

フォローする

まとめ

この記事では、 Nukeの複数のバージョンに異なるプラグイン ディレクトリをロードする方法について、2 つの異なる方法を概説します。

一部のサードパーティ製プラグインが、使用しているNuke のすべてのバージョンと互換性がないことが判明する可能性があるため、複数の異なるバージョンのNukeを同時に使用している場合、これは役立つことがあります。

Nuke 13.0v1 以降、Python 2 はサポートされなくなったので、これは Python スクリプトを Python 3.7 と互換性を持たせるように更新するときにも役立ちます。

詳しくは

まず、 Nukeバージョンごとに異なるディレクトリにプラグインを保存する必要があります。その後、 Nuke起動時にロードする追加のディレクトリを追加できます。

Nuke の特定のバージョンにのみロードしたいプラグインは、ローカルの~/.nuke フォルダーNuke追加しないでください。このディレクトリは常にロードされるためです ( セーフ モードで実行している場合を除く)。

Nukeのさまざまなバージョンのプラグインをロードするために使用できる方法は 2 つあります。1 つ目は、 pluginAddPath()メソッドを使用して Python 経由でプラグイン ディレクトリを追加する方法、またはNuke StudioおよびHieroaddPluginPath()メソッドを使用する方法です。 2 番目の方法は、環境変数を設定してNukeNuke Studio 、またはHieroを起動するカスタム ラッパー スクリプトを作成することです。

2 つの方法の違いは評価順序です pluginAddPath()を使用すると、 Nukeのプラグイン パスの前にディレクトリが追加されますが、環境変数を使用すると~/.nukeディレクトリの後にディレクトリがロードされます。以下は、 Nukeのプラグイン パスに 2 つのディレクトリを追加して、スクリプト エディターでnuke .pluginPath()を実行する例です。1 つは Python によって追加され、もう 1 つは環境変数を設定します。

どの方法を使用するかは、現在のパイプライン環境とプラグインが依存する可能性のある依存関係によって異なります。


Python スクリプト

Nuke

init.py ファイル を使用する特定のNukeバージョンの起動時にどのプラグイン パスがロードされるかを定義できます。

Nuke 12 またはNuke 14 を起動したかどうかを確認し、それに応じてプラグイン パスをロードする Python コードの例を次に示します。

 import nuke

if nuke .NUKE_VERSION_MAJOR==14:
nuke .pluginAddPath(" /path/to/plugins/folder/ nuke 14 ")

if nuke .NUKE_VERSION_MAJOR==12:
nuke .pluginAddPath(" /path/to/plugins/folder/ nuke 12 ")


上記のコードは、実行しているNukeのメジャー バージョン ( Nuke 12、 Nuke 14 など) のみをチェックしますが、「 and 」ステートメントとNUKE _MINOR_VERSIONを使用することで、特定のNukeバージョンがどのバージョンで起動されるかをより具体的に指定できます。プラグイン。たとえば、次のコードは、バージョンが一致する場合にプラグイン パスをロードする前に、 Nukeバージョンが 14.0 であるかどうかを確認します。

 import nuke 

if nuke .NUKE_VERSION_MAJOR==14 and nuke .NUKE_VERSION_MINOR==0:

nuke .pluginAddPath(" /path/to/plugins/folder ")


次のようにNUKE _VERSION_STRINGを使用して、 Nuke完全なバージョンを確認することもできます。

 import nuke 

if nuke .NUKE_VERSION_STRING=="14.0v5":

nuke .pluginAddPath(" /path/to/plugins/folder ")

Nuke StudioHiero

Nukeのプラグイン パスを作成するのと同様に、 Nuke StudioおよびHieroの場合は、起動されたNuke Studio / Hieroのバージョンを確認し、それに応じてプラグイン パスをロードする「 if 」ステートメントを記述することでこれを行うことができます。

ただし、このコードを~/.nuke/init.pyファイルに追加するのではなく~/.nuke/Python/Startupまたは~/.nuke/Python/StartupUIディレクトリ内の .py ファイルに保存する必要があります。 Nuke StudioおよびHieroへのプラグイン パスの追加に関する詳細については、 こちらをご覧ください。

注:ロードする追加のディレクトリには、 ~/.nukeフォルダーと同じ/Python/Startupまたは/Python/StartupUIフォルダー構造が含まれている必要があります。

以下は、 Nuke Studio / Hiero 12 または 13 にロードされるさまざまなプラグイン パスを設定する例です。

import hiero 
from hiero .core import *

if env["VersionMajor"]==14:
# scripts saved in /path/to/plugins/folder/ hiero 14/Python/Startup
hiero .core.addPluginPath("/path/to/plugins/folder/ hiero 14")

if env["VersionMajor"]==12:
# scripts saved in /path/to/plugins/folder/ hiero 12/Python/Startup
hiero .core.addPluginPath("/path/to/plugins/folder/ hiero 12")


Nukeと同様に、 env["VersionMinor"] 'および' ステートメントとともに使用して、メジャー バージョンとマイナー バージョンのプラグイン パスを定義できます。たとえば、次のコードは、すべてのNuke Studio / Hiero 14.0 バージョンのプラグイン パスをロードします。

 import hiero
from hiero .core import *

if env["VersionMajor"]==14 and env["VersionMinor"]==0:
# scripts saved in /path/to/plugins/folder/ hiero 14/Python/Startup
hiero .core.addPluginPath(" /path/to/plugins/folder/ hiero 14 ")

env["VersionString"]を使用して、正確なバージョンに基づいてプラグインをロードすることもできます。ただし、 env["VersionString"]の結果には製品名も含まれることに注意してください (例: "Hiero 14.0v5"または"NukeStudio 14.0v5" )。

import hiero 
from hiero .core import *

if env["VersionString"]=="Hiero 14.0v5" or env["VersionString"]=="NukeStudio 14.0v5":
# scripts saved in /path/to/plugins/folder/ hiero 13/Python/Startup
hiero .core.addPluginPath("/path/to/plugins/folder/ hiero 14")

ラッパースクリプトの作成

ラッパー スクリプトは、システム コマンドまたはユーティリティを実行可能ファイルに埋め込み、コマンド ラインに再入力することなく、そこからコマンドを繰り返し呼び出すことができます。この場合、 NUKE _PATHまたはHIERO _PLUGIN_PATH環境変数を設定して、アプリケーションを起動できます。ラッパー スクリプトを介して環境変数を設定すると、コマンドはそのアクティブなコマンド ライン セッションに対してのみ有効になり、システムに永続的に設定されるわけではありません。

ラッパー スクリプトはマシン上のどこにでも保存でき、ターミナルで実行することで実行できます。これらのファイルをデフォルトでターミナルで開くように設定して、ファイルをダブルクリックするだけで実行できるようにすることもできます。

Nuke

macOS と Linux のラッパー スクリプトには非常によく似たコマンドが含まれていますが、2 つのオペレーティング システムの最大の違いはNukeアプリケーション ディレクトリです。各オペレーティング システム上のNuke 14.0v2 のスクリプトの例は以下にあります。

マックOS

 #! /bin/bash
export NUKE _PATH=/path/to/some/folder/
/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/ Nuke 14.0

Linux

 #! /bin/sh
export NUKE _PATH=/path/to/some/folder/
/usr/local/ Nuke 14.0v5/ Nuke 14.0

これは、Windows コマンド プロンプトでコマンドを実行するスクリプトを作成する必要がある Windows とは大きく異なります。これを行うには、次のコマンドを含むバッチ ファイル ( .bat ) を作成できます。

ウィンドウズ

set NUKE _PATH=/path/to/some/folder
"C:\Program Files\Nuke14.0v5\Nuke14.0.exe"

注:この記事には、各 OS のラッパー スクリプトの例も添付されています。

Nuke StudioHiero

Nuke StudioおよびHieroの場合、アプリケーションを起動する前に--hiero --studio HIERO _PLUGIN_PATH 起動フラグを使用して HIERO _PLUGIN_PATH 環境変数を設定する必要があります

マックOS

 #! /bin/bash
export HIERO _PLUGIN_PATH=/path/to/some/folder/
/Applications/ Nuke 14.0v5/ Nuke 14.0v5.app/Contents/MacOS/ Nuke 14.0v5 --studio

Linux

 #! /bin/sh
export HIERO _PLUGIN_PATH=/path/to/some/folder/
/usr/local/ Nuke 14.0v5/ Nuke 14.0 --studio

ウィンドウズ

set HIERO _PLUGIN_PATH=/path/to/some/folder 
"C:\Program Files\Nuke14.0v5\Nuke14.0.exe" --studio

参考文献

Nukeでのプラグインの読み込みに関する詳細については、ドキュメントの次のページを参照してください。

  1. ギズモ、NDK プラグイン、Python および Tcl スクリプトのロード
  2. Nukeプラグイン パスの定義
  3. プラグインのインストール
  4. Hieroの環境情報
  5. Nuke環境変数

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

理由をお聞かせください