NUKEのinit.pyについて

June 30, 2019
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プラグインをロードしたいという場合の書き方です。

前提条件として、うちで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')

例えばそれぞれにNUKE起動用のスクリプトを書くとか色々対処方法はあると思いますが、あくまでうちでのやり方なのでご了承ください。


[関連記事]
NUKEのinit.pyとmenu.pyをリダイレクト
フォルダ内のgizmoのメニューを自動作成する