Q100343: Nuke Studio と Hiero でOCIOCDLTransformソフトエフェクトを自動的に作成し、クリップの.ccファイルパスを設定する方法

まとめ

この記事では、Python を使用して、 Nuke StudioまたはHieroタイムラインの各クリップに OCIOCDLTransform ソフト エフェクトを自動的に作成し、各ショットの ASC CDL ファイル パスを定義する方法について説明します。

詳細情報

NukeStudioまたはHiero内のクリップに対して OCIOCDLTransform ソフト エフェクトを手動で作成する場合、クリップごとにエフェクトを 1 つずつ作成し、各ソフト エフェクトの .cc ファイル パスを手動で設定する必要があります。

これは、特にタイムラインに多数のショットがあり、各ショットに独自の .cc ファイルを適用する必要がある場合、かなり時間がかかります。

ただし、Python を使用してこの設定を自動化できます。以下は、各クリップに OCIOCDLTransform ソフト エフェクトを作成し、各ソフト エフェクトに異なる .cc ファイル パスを適用するサンプル コードです。

for trackItem in [y for x in hiero .ui.activeSequence().videoTracks() for y in x.items()]:
trackItemEffect = trackItem.parentTrack().createEffect("OCIOCDLTransform",trackItem=trackItem )
trackItemEffect.node()["read_from_file"].setValue(1)
shotNumber = trackItem.name()[trackItem.name().rfind("_")+1:]
ocioPath = "/path/to/CDL/shot_" + shotNumber + ".cc"
trackItemEffect.node()["file"].setValue(ocioPath)

コードを 1 行ずつ分解して、各行の機能について説明します。

1. for trackItem in [y for x in hiero .ui.activeSequence().videoTracks() for y in x.items()]:

この最初の行は for ループを作成し、タイムライン内のすべてのクリップを反復処理します。その後、残りのコードはタイムラインクリップのリスト内の各クリップに一度に適用されます。

hiero .ui.activeSequence().videoTracks()コマンドは、タイムライン上で現在アクティブなシーケンスを照会し、各ビデオトラックのすべてのクリップアイテムをループして、それらをPythonリストに追加します。これにより、次の行のコマンドを適用するクリップの完全なリストが作成されます。

2. trackItemEffect = trackItem.parentTrack().createEffect("OCIOCDLTransform",trackItem=trackItem )

この 2 行目はソフト効果を作成し、 for ループ内の現在のクリップに追加します。


3. trackItemEffect.node()["read_from_file"].setValue(1)

この 3 行目は、現在のクリップに対して作成されたソフト エフェクトの「ファイルから読み取り」ノブの値を設定します。


4. shotNumber = trackItem.name()[trackItem.name().rfind("_")+1:]

この4行目は、クリップのショット番号を生成します。これは、ショット名をクエリし、最後のアンダースコアを見つけてショット名を分割し、ショット番号だけを残すことで機能します。


5. ocioPath = "/path/to/CDL/shot_" + shotNumber + ".cc"

この 5 行目は、場所のパスとファイルの命名規則を使用して、それをショット番号と .cc ファイル拡張子に連結することで、.cc ファイルへのパスを生成します。


6. trackItemEffect.node()["file"].setValue(ocioPath)

この最後の行は、ソフト エフェクト ファイル パスを 5 行目で生成されたパスに設定します。

注:このコードは、ショットと.ccファイルのパスの命名規則に基づいて動作します。これをワークフローに適応させるには、4行目と5行目をプロジェクトの命名規則に合わせて調整する必要があります。

以下は、スクリプト エディタ内でコードが実行され、 Nuke Studioタイムライン内のすべてのクリップに対して OCIOCDLTransform ソフト エフェクトが作成された結果です。

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

    理由をお聞かせください