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

フォローする

まとめ

この記事では、Python を使用して、 NukeStudioまたは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 行ずつ分解して、各行の動作を説明します。

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

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

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

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

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

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

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

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

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

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

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

trackItemEffect.node()["file"].setValue(ccPath) 

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

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

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

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

    理由をお聞かせください