パブリッシュを手動で作成するにはどうすればいいですか?

質問 1:

自分のパイプラインでは Toolkit をまだ使用していませんが、このパイプラインでパブリッシュしたファイルが Shotgun の通知ストリームで Toolkit ローダーに表示され、依存関係のデータ マイニングを実行できるように、スクリプトやコードを記述して Shotgun でパブリッシュを作成しようと考えています。 

質問 2:

Shotgun で適切なパブリッシュとして登録しようと考えているパブリッシュ ファイルがディスク上にたくさんあります。スクリプトを作成するにはどうすればいいですか?

回答:

Toolkit アプリは、通常、Shotgun の内部で新しいパブリッシュを作成します。データが処理されるときやパイプラインのシーンの下流工程にロードされるときに、これらのパブリッシュが使用されます。

パブリッシュ ファイルを作成するアプリの典型的な例は、Multi Publish アプリです。これはすべてのエンジンで使用され、さまざまなファイル フォーマットや出力を書き出すように構成できます。パブリッシュを使用して UI を設定するアプリの例として、ローダー、ブレイクダウン、およびファイル マネージャ アプリがあります。パブリッシュは依存関係のリンクを介して他のパブリッシュに接続できます。これはパイプライン内のさまざまなファイルが相互にどのように関連しているかをトラッキングするための非常に強力な方法です。 

Shotgun 7.2 では、パブリッシュ アプリが改良され、スタンドアロンで実行できるようになりました。3dsMax、Houdini、Maya、Nuke、Nuke Studio、Photoshop などのソフトウェア パッケージ内のワークフローに加えて、任意のファイルをドラッグしてパブリッシュできます。

パイプラインの一部で Toolkit を使用しており、その他の部分では使用していない場合、Shotgun でパブリッシュを作成するために、Toolkit を使用しないパイプラインを設定すると有用である可能性があります。これは、それらのファイルをローダーおよび詳細情報アプリが容易に処理できることを意味します。また、チーム全員がプロジェクトで進行している事柄を常に把握しておくために Shotgun によって提供されているすべてのイベント ストリームと通知サービスにアクセスできます。

register_publish() API メソッドを使用してパブリッシュを作成する

未処理の Shotgun API 呼び出しを使用して Shotgun でパブリッシュ レコードを作成することは可能ですが、Toolkit の便利なメソッドを使用することをお勧めします。 パブリッシュを作成する Toolkit アプリはすべて、sgtk.util.register_publish() と呼ばれる API ユーティリティ メソッドを使用しています。

基本的に、このメソッドは Shotgun で新しい PublishedFile エンティティを作成し、ツールキットの概念を使用してその作業を容易にするよう試行します。 以下の行に従ってコードを実行する必要があります。

# Get access to the toolkit API
import sgtk

# this is the file we want to publish.
file_to_publish = "/mnt/projects/proj/seq_abc/shot_123/comp/foreground.v034.nk"

# alternatively, for file sequences, we can just use
# a standard sequence token
# file_to_publish = "/mnt/projects/proj/seq_abc/shot_123/comp/renders/v034/foreground.%04d.exr"

# The name for the publish should be the filename
# without any version number or extension
name = "foreground"

# initialize an API object. If you have used the toolkit folder creation
# to create the folders where the publish file resides, you can use this path
# to construct the API object. Alternatively you can create it from any Shotgun
# entity using the sgtk_from_entity() method.
tk = sgtk.sgtk_from_path(file_to_publish)

# use the file to extract the context. The context denotes the current work area in toolkit
# and will control which entity and task the publish will be linked up to. If you have used the toolkit
# folder creation to create the folders where the publish file resides, you can use this path
# to construct the context.
ctx = tk.context_from_path(file_to_publish)

# alternatively, if the file you are trying to publish is not in a location that is
# recognized by toolkit, you could create a context directly from a Shotgun entity instead:
ctx = tk.context_from_entity("Shot", 123)
ctx = tk.context_from_entity("Task", 123)

# Finally, run the publish command.
# the third parameter (file.nk) is typically the file name, without a version number.
# this makes grouping inside of Shotgun easy. The last parameter is the version number.
sgtk.util.register_publish(
tk,
ctx,
file_to_publish,
name,
published_file_type="Nuke Script",
version_number=34
)

また、上記の基本的なコードに加えて、いくつかの追加オプションも設定できます。

  • publish name にバージョン番号や拡張子を含めることはできません。Toolkit と Shotgun のグループをバージョンの「ストリーム」にまとめてパブリッシュする場合、通常、パブリッシュ名およびエンティティ リンク別に項目がグループ化されます。
  • 上記の例の publish file type パラメータは、パブリッシュに対して Published File Type プロパティを設定します。これにより、さまざまなタイプのコンテンツを分類することができます。これをツールキット アプリやその他の場所で使用して、さまざまなタイプのデータを区別することができます。ファイル拡張子の繰り返しではなく(これは別途確認できます)、ファイルの内容に関する簡単な説明を含めることをお勧めします。例: Nuke スクリプト、レンダリングされたシーケンス、バックグラウンド プレート、拡散、テクスチャ マップ、Maya リグ、Alembic ジオメトリ 
  • 依存関係を登録するには、dependency_ids=[123, 456] パラメータを、パブリッシュしているファイルが依存するすべてのパブリッシュ ID のリストとともに渡します。たとえば、Nuke スクリプトをパブリッシュしている場合は、Nuke シーンをスキャンし、すべての読み取りノードを見つけます。この具体例では、これらが依存関係になります。
  • あるいは、パブリッシュ ID がない場合は、代わりに dependency_paths パラメータを使用してパスのリストを渡すことができます。
  • サムネイルをパブリッシュに関連付けるには、thumbnail_path パラメータを渡します。
  • パブリッシュがレビュー対象の特定のバージョンに関連付けられている場合は、version_entity パラメータを使用してその ID を渡します。
  • comment パラメータを使用して、パブリッシュに含まれている内容の簡単な説明を追加します。

パラメータの完全なリストについては、Core API のドキュメントを参照してください。 

カスタム パブリッシュ アプリを作成する

パブリッシュ用のカスタム アプリを作成する場合、作業が容易になります。この場合、self.sgtk を使用して Toolkit API ハンドルを取得し、self.context からコンテキストを取得できます。 そのため、上記の例のようにそれらを作成する必要はありません。システムがすべての処理を実行します。

Shotgun の API を使用してパブリッシュ レコードを手動で作成する

あるいは、パブリッシュ レコードを Shotgun に手動で直接挿入することもできます。その場合、上記の例に示される基本的なフィールドがすべて含まれていることを確認してください。

フォローする

0 コメント

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