init.pyはNUKE起動時の初期値を設定するためのファイルです。よく使われるのはプラグインのパスの設定や、デフォルト値の設定などです。
一般的なinit.pyの説明は
NUKE Python Developer's Guide v11.3v2 documentation
https://learn.foundry.com/nuke/developers/11.3/pythondevguide/startup.html#evaluationorder-ref-label
異なるOSで共通のinit.pyを使いたいとか、異なるバージョンのNUKEでそれぞれに対応したバージョンのNDKプラグインをロードしたいという場合の書き方です。
一般的なinit.pyの説明は
NUKE Python Developer's Guide v11.3v2 documentation
https://learn.foundry.com/nuke/developers/11.3/pythondevguide/startup.html#evaluationorder-ref-label
異なるOSで共通のinit.pyを使いたいとか、異なるバージョンのNUKEでそれぞれに対応したバージョンのNDKプラグインをロードしたいという場合の書き方です。
前提条件として、うちでNUKEを使用しているのはmacosとCentOSとWindows10。CentOSではRAIDやネットワークドライブのマウントポイントをmacosと共通の/Volumes下にしています。NUKEのプラグインやGizmo、Python、Blinkなどはサーバー上の共通のディレクトリに一括してインストール(OFX除く)。
init.py
import nuke, platform
nukePlatform = platform.system()
nukeVersion = nuke.env['NukeVersionString']
#macとCentOSが同じマウントポイントを使用しているので共通、Windowsだけ分岐。
if platform.system()=='Windows':
pluginsRootPath = 'W:/nuke_plugins/'
else:
pluginsRootPath = '/Volumes/Share/nuke_plugins/'
nuke.pluginAddPath(pluginsRootPath+'gizmos')
nuke.pluginAddPath(pluginsRootPath+'blink')
#NDKによるバージョンの分岐: 11.3と10.5の2つで異なるバージョンのプラグインを読み込んでます。これ以外のNUKEが起動した場合は読み込まれません。
if(nukeVersion.find('11.3')!= -1):
if platform.system()=='Darwin':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Mac/1.4.6')
elif platform.system()=='Windows':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Windows/1.4.6')
elif platform.system()=='Linux':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Linux/1.4.6')
elif(nukeVersion.find('10.5')!= -1):
if platform.system()=='Darwin':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Mac/1.4.2')
elif platform.system()=='Windows':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Windows/1.4.2')
elif platform.system()=='Linux':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Linux/1.4.2')
nukePlatform = platform.system()
nukeVersion = nuke.env['NukeVersionString']
#macとCentOSが同じマウントポイントを使用しているので共通、Windowsだけ分岐。
if platform.system()=='Windows':
pluginsRootPath = 'W:/nuke_plugins/'
else:
pluginsRootPath = '/Volumes/Share/nuke_plugins/'
nuke.pluginAddPath(pluginsRootPath+'gizmos')
nuke.pluginAddPath(pluginsRootPath+'blink')
#NDKによるバージョンの分岐: 11.3と10.5の2つで異なるバージョンのプラグインを読み込んでます。これ以外のNUKEが起動した場合は読み込まれません。
if(nukeVersion.find('11.3')!= -1):
if platform.system()=='Darwin':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Mac/1.4.6')
elif platform.system()=='Windows':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Windows/1.4.6')
elif platform.system()=='Linux':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Linux/1.4.6')
elif(nukeVersion.find('10.5')!= -1):
if platform.system()=='Darwin':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Mac/1.4.2')
elif platform.system()=='Windows':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Windows/1.4.2')
elif platform.system()=='Linux':
nuke.pluginAddPath(pluginsRootPath+'pgBokeh/Linux/1.4.2')
例えばそれぞれにNUKE起動用のスクリプトを書くとか色々対処方法はあると思いますが、あくまでうちでのやり方なのでご了承ください。
[関連記事]
NUKEのinit.pyとmenu.pyをリダイレクト
フォルダ内のgizmoのメニューを自動作成する