Nuke Studio - Shotgun 対応書き出し

Shotgun Export

Nuke Studio シーケンスの書き出しに Shotgun への対応を追加するアプリです。 Nuke のスクリプトとプレートのパスを特定するための設定を使用する新しいプロセッサを追加します。また、Shotgun のショットを作成または更新するための、Shotgun のショットのステータスとタスクのテンプレートを特定するタグも使用されます。
最新バージョン: v0.5.1 (製品)
バージョン番号は、セマンティック バージョニング基準に従っています。
システム名: tk-hiero-export

注: このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。
概要
ドキュメント
                  はじめに
                        概要のビデオとデモ
                  Shotgun ショット プロセッサ
                  タグ
                  照合
                  パス
                  カスタム テンプレートのフィールド
                  Shotgun タスク
                  書き出しプロセス
                  Shotgun でのシーケンスとショットの更新
                  カット スキーマのサポート
                  代わりのショット階層
インストール、更新、開発
設定オプション

このアプリは、Nuke Studio シーケンスの書き出しに Shotgun 機能を追加します。これにより、テンプレートを使用してショットの出力パスを決定するための新しいプリセットが登録されます。これには Screening Room 用のプレートをパブリッシュし、Nuke Studio タグから Shotgun ショット ステータスやショット タスク テンプレートへのマッピングを設定するための、Shotgun 対応のトランスコード ステップが含まれます。書き出し時、Shotgun のショットは更新され、スキーマで設定されたとおりにディスク上に完全なフォルダ構造が作成されます。

ドキュメント

はじめに

このアプリは、シーケンスの Hiero の書き出しダイアログに Shotgun への対応を追加します。

概要のビデオとデモ

Shotgun Toolkit または Hiero 統合を初めて使用する場合は、次のビデオを確認すると、Shotgun Toolkit と Hiero 統合を使用したパイプラインの機能の概要を簡単に理解できます。

Toolkit と Hiero を既に使用している場合は、以降の説明をお読みください。

Shotgun ショット プロセッサ

このアプリ自体が起動すると、Hiero 書き出しダイアログに変更が登録されます。

書き出しダイアログ

最初に、新しいプロセッサが登録されていることが分かります。

プロセッサ

このボタンをクリックすると、いくつかの変化があることが分かります。

ダイアログ上部には、シーケンスの書き出し後に Shotgun でショットを作成または更新する方法を制御する UI が追加されています。

Shotgun UI

タグ

ドロップダウンを調整すると、さまざまな Hiero タグを Shotgun ショット ステータスとショット タスクのテンプレートにマッピングできます。そのため、Hiero のタグ設定ワークフローを介して、Shotgun ショットを処理中に設定したり、グリーン スクリーンや CG などの任意の目的に合うようにショットのタスクを設定したりできます。この UI はフックを介して統合されるため、追加機能として簡単に設定できます。

照合

また、Hiero に組み込まれたロジックをミラーリングするトラック項目の照合を共に制御するオプションもあります。ショットを構成する複数の項目がある場合(異なるトラックでのオーバーラップまたは複数のトラック上の同一ショット名)、このオプションをオンにする必要があります。これにより、Shotgun Toolkit のショット アップデータにより、一致した照合項目が 1 つのショットとして処理されます。

パス

たとえば、ショット 010 と 020 を表す 2 つのトラック項目があるとします。010 から始まり、020 は別のトラックで 010 の最後とオーバーラップします。010 は先頭で、hero でもあり、照合を有効にしているため、Shotgun はこの 2 つの項目を 1 つのショット 010 として処理します。つまり、ショット 010 は Shotgun で作成または更新されます。カットインはトラック項目 010 の先頭と一致し、カットアウトはトラック項目 020 の最後と一致します。Screening Room 対応バージョンは項目ごとに作成されますが、両方ともショット 010 にリンクされます。プレートは項目ごとにパブリッシュされたファイルとして作成されますが、両方ともショット 010 にリンクされます。1 つの Nuke スクリプトはショット 010 とリンクしてパブリッシュされます。2 つの読み取りノードが含まれ、項目ごとに 1 つのノードが割り当てられます。この場合、ショット 010 と照合しているため、Shotgun でショット 020 は作成または更新されません。

パス

パス

次の Shotgun の UI は標準的なパス ダイアログです。既定で Hiero を介してショットに追加される項目は 3 つあります。既定の Nuke スクリプト、既定の Nuke 書き込み場所、プレート トランスコード用の既定の場所です。これらの項目の場所はアプリの設定によって決まり、テンプレート作成システムの機能をフル活用できます。

パス

このアプリは Hiero に {tk_version} トークンを追加します。このトークンはバージョン文字列で置き換えられ、Shotgun Toolkit 用に正しくフォーマットされます。

カスタム テンプレートのフィールド

custom_template_fields 設定で定義されて resolve_custom_strings フックで解決されるトークンは、有効な置き換えトークンの Hiero のリストに自動的に追加され、Toolkit テンプレートパスで有効な置き換えとみなされます。

たとえば、Toolkit templates.yml ファイルで次のようにキーを定義するとします。

    resolution: 
        type: str 
        filter_by: alphanumeric

tk-hiero-exportproject.yml 設定は次のようになります。

  ...
  ...
  tk-hiero:
    apps:
      tk-hiero-export:
        custom_template_fields:
        - {description: Shot Resolution, keyword: resolution}
  ...
  ...

その後、次のように resolve_custom_strings フックを修正します。

# Copyright (c) 2014 Shotgun Software Inc.
#
# CONFIDENTIAL AND PROPRIETARY
#
# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit
# Source Code License included in this distribution package. See LICENSE.
# By accessing, using, copying or modifying this work you indicate your
# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights
# not expressly granted therein are reserved by Shotgun Software Inc.

from tank import Hook

class HieroResolveCustomStrings(Hook):
    """Translates a keyword string into its resolved value for a given task."""

    RESOLUTION_TOKEN_NAME = "{resolution}"

    def execute(self, task, keyword, **kwargs):
        """
        """

        self.parent.log_debug("attempting to resolve custom keyword: %s" % keyword)
        if keyword == self.RESOLUTION_TOKEN_NAME:
            translated_value = self._clip_resolution_string(task)
        else:
            raise RuntimeError("No translation handler found for custom_template_field: %s" % keyword)

        self.parent.log_debug("Custom resolver: %s -> %s" % (keyword, translated_value))
        return translated_value

    # Handle the {resolution_fs} token 
    def _clip_resolution_string(self, task): 
        """ returns sequence resolution or task format override""" 
        width = "" 
        height = ""

        sequence_format = task._sequence.format()

        width = sequence_format.width() 
        height = sequence_format.height()

        if "reformat" in task._preset.properties(): 
            task_reformat_settings = task._preset.properties()["reformat"] 
            if task_reformat_settings['to_type'] != "None": 
                width = task_reformat_settings['width'] 
                height = task_reformat_settings['height']

        return "%sx%s" % (width, height)

Hiero で resolution トークンを使用できるだけでなく、Toolkit で定義したテンプレート パスに照らして検証できるため、次のような場所に書き出せるようになります。

    hiero_plate_path: "sequences/{Sequence}/{Shot}/hiero_plates/{resolution}/v{version}/{project}_{Shot}.mov"

Shotgun タスク

2 つの新しいタスク タイプが登録されました。

Shotgun トランスコード イメージ

これは標準的な Hiero トランスコーディング タスクのサブクラスで、トランスコードの結果をパブリッシュとして Shotgun に登録します。必要に応じて、Shotgun でバージョンも作成されます。バージョンが作成されると、QuickTime も作成され、Screening Room メディアとしてアップロードされます。

Shotgun Nuke プロジェクト ファイル

これは標準的な Hiero Nuke スクリプト書き出しのサブクラスで、生成される Nuke スクリプトを PublishedFile としてショットにリンクされた Shotgun に登録します。この設定を使用すると、書き出し時にファイルに含める Toolkit 対応 WriteNode を指定できます。

Nuke プロジェクト ファイル設定

アプリ設定 plate_published_file_typenuke_script_published_file_type を使用すると、PublishedFiles を登録する際のファイル タイプを制御できます。さらに、nuke_script_toolkit_write_nodes を使用すると、書き出しダイアログで利用可能な WriteNode 設定を制御できます。

書き出しプロセス

書き出しを実行すると、書き出しキューにいくつかの追加タスクが表示されます。

書き出しキュー

各ショットは、Shotgun でのショットの作成と、スキーマ設定で指定した完全なショット構造の作成を管理する ShotgunShotUpdater タスクを実行します。

検索

Shotgun でのシーケンスとショットの更新

Hiero シーケンスの名前はシーケンス名として使用され、ショットにはカット情報が設定されます([カットの順序](Cut Order)、[ヘッド(イン)](Head In)、[カット(イン)](Cut In)、[カット(アウト)](Cut Out)、[テール(アウト)](Tail Out)、[カットの長さ](Cut Duration)、[作業期間](Working Duration))。また、ショットを構成するシーケンスまたは項目のポスター フレームが選択されている場合は、ショットのサムネイルとしてアップロードされます。

ワークフローでショットの親としてシーケンス以外のエンティティ(エピソードなど)を使用する場合は、hook_get_shot フックの get_shot_parent メソッドをオーバーライドできます。既定の実装はシーケンスを(必要に応じて)作成し、返します。

カット スキーマのサポート

Shotgun サイトがカット スキーマ(v7.0.0 以降)をサポートしている場合、このアプリは Shotgun で対応するカット項目を使用してカットを自動的に生成します。このカットエンティティは Hiero シーケンスに対応し、カット項目はシーケンス内の項目に対応します。カットは、hook_get_shot フックの get_shot_parent メソッドで返される親エンティティ(既定ではシーケンス)にリンクされています。カット項目ショットエンティティと関連付けられ、書き出し時に作成されるレビュー可能なバージョンにリンクされます。書き出し後、カットは Shotgun と RV[メディア](Media)タブで再生可能になります。

カットカット項目エンティティに関連付けられたすべてのメタデータは、書き出し UI で指定可能な[カット タイプ](Cut Type)フィールドを除いて Hiero から推定されます。

カット タイプ(Cut Type)

この値はカット[タイプ](Type)フィールドに表示されます。

いずれかの照合オプションが選択されている場合、カット スキーマはサポートされません。カットカット項目エンティティの作成は省略されます。

また、カット スキーマはリタイム クリップを処理しません。リタイム クリップを書き出すと、デバッグの警告がログに記録されます。

代わりのショット階層

標準的な「シーケンス > ショット」階層では作業しないが、エピソードやシーンを使用する可能性がある場合は、どのようなショット階層が使用されていてもアプリが連携するように設定可能な hiero_get_shot フックがあります。

関連するアプリとドキュメント

Flame Shot Export

Flame のショット書き出し機能により、Shotgun プロジェクトを簡単に開始できます。Flame 内で書き出すシーケンスを選択するだけで、書き出し機能が残りの処理を実行してくれます。ショットやタスクの作成、Shotgun でのカット情報の設定、ディスク上のフォルダの作成、ディスクへのプレートのレンダリング、Shotgun Review へのメディアの送信などが可能です。処理が完了したら、Flare や Nuke のような他のツールに移動して作業を続行できます。

Flame Review Export

Flame Review Export アプリにより、Shotgun でのレビュー用にシーケンスをすばやく簡単に送信できます。Flame は QuickTime を生成して Shotgun にアップロードします。これにより、Screening Room、Client Review Site、または Shotgun iPhone アプリでレビューできます。すべての処理は、手元の作業に集中できるようにバックグラウンドで実行されます。

Open In Shotgun

これは、選択したトラック項目に関連する Shotgun のショットを検出し、ブラウザ ウィンドウの詳細ページを表示するシンプルなアプリです。

インストールと更新

Shotgun Pipeline Toolkit にこのアプリを追加する

Project XYZ にこのアプリを追加するには、asset という名前の環境で次のコマンドを実行します。

> tank Project XYZ install_app asset tk-hiero tk-hiero-export

最新バージョンに更新する

この項目が既にプロジェクトにインストールされている場合に最新バージョンを取得するには、update コマンドを実行します。特定のプロジェクトに含まれている tank コマンドに移動し、そこでこのコマンドを実行します。

> cd /my_tank_configs/project_xyz
> ./tank updates

または、tank コマンドを実行し、プロジェクトの名前を指定して、更新チェックを実行するプロジェクトを指定します。

> tank Project XYZ updates

コラボレーションと発展

Shotgun Pipeline Toolkit にアクセスできる場合は、すべてのアプリ、エンジン、およびフレームワークのソース コードにも Github からアクセスできます。これらは Github を使用して格納および管理しています。これらの項目は自由に発展させてください。さらなる独立した開発用の基盤として使用したり、変更を加えたり(その際はプル リクエストを送信してください)、 いろいろと研究してビルドの方法やツールキットの動作を確認してください。このコード リポジトリには、https://github.com/shotgunsoftware/tk-hiero-export からアクセスできます。

特殊な要件

  • 上記の操作を行うには、Shotgun Pipeline Toolkit Core API バージョン v0.18.124 以降が必要です。

環境設定

以下に、使用するすべての環境設定の概要を示します。これらの設定は、このアプリまたはエンジンを有効にするための環境設定ファイルで定義する必要があります。

hook_upload_thumbnail

タイプ: hook

既定値: hiero_upload_thumbnail

説明: サムネイルを Hiero ソースとして Shotgun にアップロードする必要がある場合に呼び出します。1 番目の引数はアップロード先の Shotgun エンティティであるディクショナリです。2 番目の引数はサムネイルを取得する Hiero ソースです。3 番目の引数はソースを取得した Hiero TrackItem です。サムネイルがタイムラインの項目に対応していない場合、TrackItem は None です。

hook_post_version_creation

タイプ: hook

既定値: hiero_post_version_creation

説明: バージョン エンティティの作成後に呼び出します。フックには、作成されたエンティティの ID 番号を含む新しいデータ ディクショナリが提供されます。

template_render_path

タイプ: template

オプション テンプレート キー: ***

説明: レンダリングに付ける名前を指定するテンプレートのリファレンスです。変換テンプレート フックは Hiero キーワードへの変換方法を認識できる必要があります。

hook_update_shot

タイプ: hook

既定値: hiero_update_shot

説明: SG のショット処理中に呼び出します。ショットのエンティティを更新するかどうかとその方法、また書き出し中にショットのファイルシステム構造を作成するかどうかとその方法を管理するメソッドを提供します。

hook_update_cuts

タイプ: hook

既定値: hiero_update_cuts

説明: SG のショット処理中に呼び出します。カットとカット項目を作成、更新するかどうかとその方法を管理するメソッドを提供します。

default_task_template

タイプ: str

既定値: Basic shot template

説明: アプリが Shotgun で新しいショットを作成する場合に使用する既定のショット タスク テンプレートです。この設定はカスタムの Shotgun 書き出し UI に表示されており、書き出しを実行する前に必要に応じて変更できます。

hook_get_quicktime_settings

タイプ: hook

既定値: hiero_get_quicktime_settings

説明: QuickTime を作成する際、既定の設定を生成するために呼び出します。この引数はブーリアン値で、生成される QuickTime を Shotgun のみにアップロードする場合は True、設定を既定の QuickTime トランスコードで使用する場合は False に設定します。戻り値には 2 つの項目のタプルがあります。1 つ目は、生成される Nuke 書き込みノードの file_type である文字列です。2 つ目はキーが書き込みノードのノブ名であるディクショナリで、値は対応するノードの値です。

nuke_script_published_file_type

タイプ: tank_type

既定値: Nuke Script

説明: Nuke スクリプトに使用される、パブリッシュ ファイル/タンク タイプの文字列値です。

hook_pre_export

タイプ: hook

既定値: hiero_pre_export

説明: Shotgun のショット プロセッサの開始前に呼び出します。キャッシュのクリアと他の特定の初期化に使用できます。

audio_published_file_type

タイプ: tank_type

既定値: Hiero Audio

説明: パブリッシュされたオーディオに使用される、パブリッシュ ファイル/タンク タイプの文字列値です。

nuke_script_toolkit_write_nodes

タイプ: list

説明: なし

plate_published_file_type

タイプ: tank_type

既定値: Hiero Plate

説明: パブリッシュされたプレートに使用される、パブリッシュ ファイル/タンク タイプの文字列値です。

hook_customize_export_ui

タイプ: hook

既定値: hiero_customize_export_ui

説明: UI を書き出す際の初期化中に呼び出します。プリセットとして使用するカスタム UI プロパティを定義し、カスタム ウィジェットを初期化してエクスポータに読み込ませ、カスタム ウィジェットをセットアップしてプロパティ UI ウィジェットで使用するメソッドを提供します。

template_plate_path

タイプ: template

オプション テンプレート キー: ***

説明: ショット プレートのパブリッシュ先のディレクトリを指定するテンプレートのリファレンスです。変換テンプレート フックは Hiero キーワードへの変換方法を認識できる必要があります。

default_task_filter

タイプ: str

既定値: [['step.Step.code', 'is', 'Comp']]

説明: パブリッシュが登録されるショットでタスクを返すフィルタです。この値は、エンティティの条件を設定せずに、Shotgun api の検索メソッドに渡すことができる有効なフィルタである必要があります(エンティティとショットをリンクする値はパブリッシュ時間で追加されます)。フィルタに['step.Step.code', 'is', VALUE]という形式で条件が含まれる場合、VALUE がどのような値であっても、パブリッシュ テンプレートで {Step} を拡張する際に使用する値として既定の translate_template フックで使用されます。フィルタで生成されるタスクが 1 つの場合、アプリによって作成されるパブリッシュはこのタスクに関連付けられます。それ以外の場合は、ショットに関連付けられます。

template_nuke_script_path

タイプ: template

オプション テンプレート キー: ***

説明: パブリッシュされる Nuke スクリプトの名前を指定するテンプレートのリファレンスです。変換テンプレート フックは Hiero キーワードへの変換方法を認識できる必要があります。

custom_template_fields

タイプ: list

説明: Hiero のリゾルバに追加するカスタム文字列のリストです。各項目は置き換えるキーワードを指定したディクショナリと、書き出しツリーのツール ヒントに表示されるこのキーワードの説明です。有効なエントリは「{keyword: a_keyword, description: This is a keyword}」などの形式になります。各キーワードは、解決カスタム文字列フックによって解決済みの文字列に変換される必要があります。

hook_get_extra_publish_data

タイプ: hook

既定値: hiero_get_extra_publish_data

説明: Shotgun で PublishedFile をトランスコードとして作成する前に呼び出します。パブリッシュ ファイルに関連する追加情報がない場合、または Shotgun API の更新方法との互換性があるディクショナリがない場合、このフックは None を返します。

hook_resolve_custom_strings

タイプ: hook

既定値: hiero_resolve_custom_strings

説明: custom_template_fields 設定を介して Hiero リゾルバに追加されたカスタム項目を解決する場合に呼び出します。1 番目の引数は解決するキーワードで、2 番目の引数は実行中の Hiero タスクです。戻り値はキーワードで解決された文字列の値です。

hook_translate_template

タイプ: hook

既定値: hiero_translate_template

説明: テンプレートを Hiero スタイルの置換文字列に変換する必要がある場合に呼び出します。1 番目の引数は変換するテンプレートです。2 番目の引数は変換されるテンプレートのタイプを表す文字列です。戻り値は変換された文字列です。

template_version

タイプ: template

必要なテンプレート キー: version

オプション テンプレート キー: ***

説明: Hiero tk_version トークンを tk のバージョン文字列としてフォーマットする方法を指定する文字列テンプレートです。

hook_update_version_data

タイプ: hook

既定値: hiero_update_version_data

説明: Shotgun でバージョンをトランスコードとして作成する前に呼び出します。バージョンの既定値は version_data ディクショナリにあらかじめ入力されています。このディクショナリを修正して、Shotgun API 作成の呼び出しに引数として渡される内容を変更します。

hook_get_shot

タイプ: hook

既定値: hiero_get_shot

説明: カット情報を更新するショットを返すために呼び出します。1 番目の引数は Hiero 書き出しタスク オブジェクトです。2 番目の引数はショットの作成を実行する hiero.core.TrackItem です。3 番目の引数は、それぞれの呼び出し間のデータをショット作成に渡すために使用できるデータ ディクショナリです。戻り値はショットのデータ ディクショナリです。ID は更新されます。ショットで Shotgun の更新が呼び出される前に、カット情報はこのディクショナリに統合されます。既定の実装では、書き出す Hiero シーケンスを元に名前が付けられるシーケンスを作成または参照し、sg_sequence フィールドを使用してこのシーケンスをショットにリンクします。

フォローする

0 コメント

ログインしてコメントを残してください。