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

[NUKE] PythonでReadノードのfileプロパティを変更した時にframe range, formatも自動で更新させる

最終更新:

fumiduki1985

- view
管理者のみ編集可
下記の操作でReadノードのfileプロパティを設定した場合、frame rangeやformatも選択した画像や動画ファイルに合わせて設定される。
  • ノードグラフ上でReadノードを作成した場合
  • Readノードのプロパティパネルのfile右にあるボタンでファイル選択ダイアログを使用した場合

Pythonを使用して上記と同様にfileプロパティ変更時にframe rangeやformatを自動設定させるには、fileプロパティのKnob(File_Knobオブジェクト)のfromUserText()を使用する必要がある。
Knob.setValue()では、fileプロパティの変更だけ行われるので注意。

File_Knob.fromUserText()メソッドには、通常のファイルパスに加え、下記のような有効なフレーム範囲を追記した文字列を入力することができる。
'D:\test\image.png'  # 単一の静止画の場合は通常通りのパス文字列でOK
'D:\test\seq_image#.png 0-9'  # これは、seq_image0.png ~ seq_image9.pngの連番静止画を表す

これは、nuke.getFileNameList()が返す形式と合致しているので、合わせて使用すると良いケースがあるだろう。
(ファイルパス中の#は、NUKEの仕様における連番番号の表記に従っていると思われる。)

記述例:
import nuke

# ReadノードとFile_Knobを取得
readNode = nuke.toNode('Read1')
fileKnob = readNode['file']

# fileプロパティを変更して、frame range, formatを自動更新させる
fileKnob.fromUserText('D:\test\seq_image#.png 0-9')


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

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