三日月館【別館】開発・制作Tips集

[NUKE] Pythonでスクリプト形式を含むファイルパスを解決する

最終更新:

fumiduki1985

- view
管理者のみ編集可
NUKEでは、Readノード等のファイルパスに「[python {nuke.script_directory()}]」といったスクリプトを書き込むことで相対パスを表現できる。
Readノードからファイルパスを取得する際、通常のKnobクラス経由の取得ではこのようなスクリプトを解決できない。
スクリプトを解決しつつファイルパスを取得したい場合、nuke.filename()関数を使用する。
(実際の動作は、指定したノードが持つfilename knobの設定値を取得するとのこと。詳細はリファレンスマニュアルも参考のこと。)

また、nuke.filename()の第2引数にnuke.REPLACEを指定すると、連番記号(#)の部分をアクティブビューワのカレントフレームの数値に置き換えて返してくれる。
nuke.REPLACEを指定しないと、連番記号(#)のまま返される。

カレントフレームでなく任意の数値に置き換えたい場合は、nuke.REPLACEを使用せず取得して、nukescripts.replaceHashes()関数を使用すると良い。

記述例:
import nuke

# readNodeには有効なReadノードオブジェクトが格納されている前提 
path = nuke.filename(readNode)  # 連番記号を置き換えない
path = nuke.filename(readNode, nuke.REPLACE)  # 連番記号を置き換える


このページのタグ一覧
NUKE Python プログラミング

記事メニュー
ウィキ募集バナー