Q100126: Pythonを使用して Ocula スクリプトの作成を自動化する方法

まとめ

この記事では、Python を使用して O_Solver ノードでOculaスクリプトの作成を自動化する方法について説明します。

詳細情報

NukeのPython APIを使えば、シンプルなOculaスクリプトの作成を自動化し、作業準備の時間を節約できます。以下のサンプルコードは、その方法の一例です。
以下の関数は次のことを行います。
  1. Nukeスクリプトを2つのビューを持つように設定します
  2. 指定されたフッテージの読み取りノードを作成します
  3. O_Solverノードを作成し、それをReadに接続します。
  4. 読み取りシーケンスの最初、最後、および中間のフレームに対して、O_Solver ノードにキーフレームを作成します。
# Create an O_Solver keyed at first_frame, last_frame and the mid frame

def createOculaTree(filename, first_frame, last_frame):
  mid_frame = int( (first_frame + last_frame)/2 )

  # set up views
  nuke .root()["setlr"].execute()

  # create the read and set up for the frame range
  reader = nuke .createNode("Read",inpanel=False)
  reader.knob("file").setValue(filename)
  reader.knob("first").setValue(first_frame)
  reader.knob("last").setValue(last_frame)
  
  # set up the O_Solver node and create a key
  solver = nuke .createNode('O_Solver4_0',inpanel=False)
  solver.setInput(0, reader)
  nuke .execute(solver, nuke .FrameRanges([first_frame, mid_frame, last_frame]))
その後、これを、映像を指定して関数を実行し、スクリプトを保存する簡単なスクリプトで使用できます。
# define the location of your footage
# and the frame range stereoSequence='/path/to/stereoFootage.%V.###.ext'
first=1
last=20

# Create the Ocula script
createOculaTree(stereoSequence,first,last)

# save out your script
nuke .scriptSaveAs('/path/to/save/ ocula Script.nk', True)
注意: Python 経由で O_Solver ノードを実行するには、 NukeOculaの両方のインタラクティブ ライセンスを使用する必要があります。
  • Nukeターミナルセッションを実行している場合は、引数に「-i」を付けて起動する必要があります。例:「Nuke16.0 -t -i」または「Nuke16.0 -ti」

  • 外部PythonセッションでNuke Pythonモジュールとして使用する場合は、「import nuke 」コマンドの前にos.environ[ "NUKE_INTERACTIVE" ] = "1"を設定する必要があります。
さらに詳しく
Nukeの Python API の使用方法の詳細については、 Nuke Python 開発者ガイドを参照してください。

キーワード: Ocula 、python、O_Solver

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

    理由をお聞かせください