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

フォローする

まとめ

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

詳しくは

Nukeの Python API を使用すると、単純なOculaスクリプトの作成を自動化し、作業の準備にかかる時間を節約できます。以下のコード例は、これを行う方法の 1 つを示しています。
以下の関数は次のことを行います。
  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」を付けて起動する必要があります (例: 「Nuke13.2 -t -i」または「Nuke12.3 -ti」)。

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

キーワード: Ocula 、Python、O_Solver

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

    理由をお聞かせください