アニメーション パイプラインのチュートリアル

このチュートリアルは、アニメーションや視覚効果用のシンプルで一般的なパイプラインの作成について説明します。このチュートリアルに従うと、外観加工を介してモデリングのアセットをプロダクション シーンに転送するのに必要なすべての処理を提供するパイプラインを作成できます。

このパイプラインの対象となるワークフローの大部分は、ShotGrid に組み込まれた統合機能を使用して、設定なしですぐに作業することができます。パイプラインの中の、スタジオがカスタム ソリューションを作成する頻度が高い部分については、このチュートリアルで、Toolkit プラットフォームを使用してアーティスト ワークフローをカスタマイズするプロセスを紹介します。

次に、このチュートリアルで作成されるパイプラインの概要を示します。

パイプラインの概要

パイプラインの概要

分かりやすくするため、使用するデジタル コンテンツ作成(DCC)ソフトウェアは最小構成で Maya と Nuke に限定しています。また、パイプラインの工程で渡されるデータは、Maya ASCII ファイル、Alembic キャッシュ、およびレンダリング イメージ シーケンスに限定されます。

注 : このチュートリアルで使用される単純なパイプラインはプロダクションのテストを受けていません。ShotGrid ベースのパイプラインの作成例としてのみ使用してください。

前提条件

  • 作業用の ShotGrid プロジェクト - このチュートリアルでは、ShotGrid を使用してプロダクション データのトラッキングや管理を行った経験があることが前提となります。

  • ShotGrid 統合の概要 - ShotGrid には統合機能が付属していて、手動設定が不要な、単純なプロダクション ワークフローがいくつか用意されています。このチュートリアルで説明されている手動設定やカスタマイズについて調べる前に、これらのワークフローの機能や範囲について理解する必要があります。ShotGrid 統合の詳細については、こちらを参照してください。

  • Maya と Nuke の経験 - このチュートリアルは、Maya および Nuke を使用して単純なパイプラインを作成することを目的としています。ShotGrid の統合機能をカスタマイズするには、これらのパッケージの基本について理解する必要があります。

  • Python の操作に関する知識 - このチュートリアルでは、Python で記述された「フック」を使用して、ShotGrid 統合の機能を変更する必要があります。

  • YAML に関する知識 - 作成しているパイプラインの設定のほとんどは、YAML ファイルを変更して処理されます。

その他のリソース

プロジェクトの作成とセットアップ

このチュートリアルでは、ShotGrid で新しいプロジェクトを作成して、プロダクション開始の準備に合わせて設定する必要があります。ここで、すべての必要な ShotGrid エンティティが所定の場所にあり、正しくリンクされていることを確認します。このチュートリアルの場合、アセット、シーケンス、ショット、およびタスクの各エンティティが必要で、既定で新しいプロジェクトで使用できる必要があります。作成する項目は次のとおりです。

  • 2 つのアセット:

    • ティーポット キャラクタ

    • テーブル プロップ

  • シーケンス 1 つ

  • 作成したシーケンスにリンクしたショット 1 つ

  • パイプラインの手順ごとのタスク

次に、ShotGrid で設定したプロジェクト エンティティのスクリーンショットを示します。

ティーポットとテーブル アセット
シーケンスにリンクされたショット
タスク

ソフトウェア ランチャー

次に、Maya および Nuke を ShotGrid Desktop 内で起動できることを確認する必要があります。Desktop で、これらの各パッケージのアイコンをクリックして起動できることを確認します。各パッケージの適切なバージョンが起動していることを確認します。

Desktop にアプリケーションが表示されない場合、または予期したバージョンが起動しない場合は、ソフトウェア エンティティを使用して ShotGrid で起動を手動で設定しなければならない可能性があります。

ShotGrid で定義された規定のソフトウェア エンティティ

ソフトウェア エンティティは、プロダクションで使用する DCC パッケージを操作する場合に使用されます。既定では、標準のインストール場所でこれらのパッケージが検索され、Desktop を使用して起動できるようになります。複数のバージョンがインストールされている場合、または標準以外の場所にインストールされている場合は、ShotGrid の対応するソフトウェア エンティティのエントリを更新して、アーティストの起動環境を整理しなければならない可能性があります。

ソフトウェア エンティティの詳細と、適切に設定する方法については、『統合管理者ガイド』を参照してください。DCC が予期通りに起動した場合は、次のセクションに進んでください。

環境設定

環境設定(設定)は、プロジェクトに関するアーティスト ワークフローを定義します。このワークフローでは、アーティストが起動している DCC に含める ShotGrid 統合、プロジェクトのフォルダ構造の定義方法、およびアーティストがデータを共有するときに作成されるファイルやフォルダの命名規則を指定します。

既定では、すべての新しいプロジェクトは基本的な ShotGrid 統合を使用するように設定されています。この統合は、多数の既製のソフトウェア パッケージを使用してアーティスト間でファイルを共有するための、基本的なワークフローを提供します。次のセクションでは、プロジェクトのパイプライン環境設定(設定)を引き継いで、スタジオに合わせてカスタマイズする方法の概要を示します。

プロジェクトの設定を引き継ぐ

ShotGrid Desktop (以下、「Desktop」)を使用して、プロジェクトの設定を引き継ぎます。Desktop 内で右マウス ボタンをクリックするか、または右下のユーザ アイコンをクリックして、ポップアップ メニューを表示します。[高度なプロジェクト設定…] (Advanced project setup…)オプションを選択し、ウィザードに従ってプロジェクトの設定をローカルにインストールします。次の図に、必要な手順を示します。また、『統合管理者ガイド』の「パイプラインの設定を引き継ぐ」に記載されている手順に従うこともできます。

Desktop のポップアップ メニューで[高度なプロジェクト設定] (Advanced project setup…)を選択する
[ShotGrid の既定値] (ShotGrid Default)設定タイプを選択する

初めて ShotGrid プロジェクトをセットアップする場合は、プロジェクト データのストレージ場所を定義するためのプロンプトも表示されます。それ以外の場合は、既存の格納場所を選択することができます。

新しいストレージを作成します。
新しいストレージに名前を付けます。このストレージはプロジェクト固有のものではなく、サイト全体で使用されることに注意してください。
使用するオペレーティング システム上でこのストレージにアクセスするパスを設定します。

[サイト基本設定] (Site Preferences)[ファイル管理] (File Management)セクションで、ShotGrid サイトのストレージを表示および編集できます。これらの設定の詳細については、こちらを参照してください。

格納場所が選択されたので、その場所にある新しいプロジェクトのディレクトリ名を選択します。

プロジェクト ファイルを配置するフォルダの名前を入力する。

このチュートリアルでは中央設定を使用します。[分散設定] (Distributed Setup)オプションは、さまざまなメリットを提供する代替オプションを提供します。これは、高速共有ストレージのないスタジオで役に立つ場合があります。さまざまな設定の長所と短所の詳細については、「Toolkit の管理」のプレゼンテーションを参照してください。

サイト全体にわたるストレージとは異なり、この設定はプロジェクトごとに異なるため、ここで選択するディレクトリが設定の保存に直接使用されます。

現在のオペレーティング システムに対して選択した設定パスをメモする。

上記の画面で選択したフォルダに設定がインストールされます。このチュートリアルを通して、このフォルダに含まれている設定の内容を調べ、変更します。

上記の画面で[セットアップを実行] (Run Setup)をクリックすると、Desktop は設定に必要なすべてのコンポーネントのダウンロードとインストールを開始します。このインストール処理には数分かかる場合があります。完了したら、プロジェクト全体の設定のローカル コピーが作成されます。次の手順では、このローカル コピーを変更します。

Desktop インストールのチュートリアルで指定された設定場所は、ShotGrid のプロジェクトの[パイプラインの設定] (Pipeline Configurations)ページに記録されています。

ShotGrid のパイプラインの設定エンティティ

次のセクションに備えて、このフォルダの内容を理解しておいてください。

設定の構成

単純なパイプラインの作成プロセスを開始する前に、パイプライン設定の構成方法とその仕組みについて理解しておく必要があります。次の図に、設定の主な構成要素とその目的を示します。設定とその管理の詳細については、「高度な Toolkit 管理」の記事を参照してください。

プロジェクト スキーマ

このチュートリアルで作成する単純なパイプラインでは、既定の設定で提供されるプロジェクト スキーマを使用します。config/core/schema フォルダを参照すると、Toolkit アプリがディスクにファイルを書き込むときに作成される構造を把握できます。プロジェクト ディレクトリ構造の設定方法については、「ファイル システム設定のリファレンス」のドキュメントを参照してください。

テンプレート

このチュートリアルでは、既定のパイプラインの設定で定義されたテンプレートも使用します。config/core/templates.yml ファイルを開いて、入出力ファイルをディスク上のパスにマップするためにアプリで使用されるテンプレートを確認できます。テンプレート化システムの詳細については、「ファイル システム設定のリファレンス」のドキュメントを参照してください。

フック

このチュートリアルの大部分では、アーティスト ワークフローをカスタマイズするためにアプリのフックを変更します。カスタマイズの詳細を調べる前に、フックの内容、その仕組み、および格納先についての基本を理解する必要があります。管理ドキュメントの「フック」セクションを参照してください。

このチュートリアルの手順を進める中で、Toolkit アプリのいずれかで定義されたフックを「引き継ぐ」ように要求されます。アプリのフックを引き継ぐプロセスは簡単です。この操作を行うように要求されるたびに、次に示す手順を実行するだけです。

  1. 設定のインストール フォルダ内で、オーバーライドするフックを含むアプリの場所を特定します。このアプリの hooks サブディレクトリを検索して、オーバーライドするフック ファイルの場所を特定します。

  2. 設定の上位にある hooks ディレクトリにフックをコピーします(必要に応じて名前を変更します)。

ファイルが設定の hooks フォルダに格納されたら、変更を加えて、コードをカスタマイズすることができます。対応するアプリがこの新しい場所を参照するように設定するには、追加手順が必要です。この手順については、チュートリアルの後半で説明します。

パイプラインを作成する

この時点で、パイプラインの作成を開始する準備ができています。ShotGrid にプロジェクトが設定されていて、Desktop を介して Maya および Nuke を起動することや、プロジェクトの設定をコントロールすることができます。また、設定の構造の基本を理解していて、アーティスト ワークフローを具体的に作成する作業を開始することができます。

次のセクションでは、パイプラインの各手順について説明します。すぐに使用できる機能を示し、ShotGrid 統合のカスタマイズ プロセスを紹介します。これらのセクションが終了するころには、単純な、機能をすべて備えた、エンドツーエンドのプロダクション パイプラインが作成されています。また、アーティストがプロダクション作業で行う手順についても理解できるでしょう。

注 : このチュートリアルのすべてのコードと設定は、tk-config-default2 レポジトリ の pipeline_tutorial ブランチにあります。ファイルの保管場所や、コードの追加場所などについてのヒントが必要な場合は、このブランチを参照してください。

モデリング ワークフロー

シンプルなパイプラインの最初の手順はモデリングです。このセクションでは、プロジェクト内でティーポット アセットの最初の繰り返しを作成します。作成した繰り返しは、ディスクのプロジェクトのフォルダ構造内に保存してからパブリッシュします。

最初に ShotGrid Desktop から Maya を起動します。

Maya が完全にロードされると、[ファイルを開く] (File Open)ダイアログ ボックスが表示されます。このダイアログ ボックスで、プロジェクト内にある既存の Maya ファイルを参照できます。また、ShotGrid 統合で認識される新しいファイルを作成することができます。

[アセット] (Assets)タブを選択して、ティーポットのモデリング タスクにドリル ダウンします。このタスクのアーティスト作業ファイルはまだないため、[+ New File]ボタンをクリックします。

このボタンをクリックすると、新しい空の Maya セッションが作成されて、現在の作業コンテキストがティーポット アセットのモデル タスクに設定されます。

注 : このチュートリアルを使用している場合はいつでも、Maya または Nuke の ShotGrid メニューを介して ShotGrid Panel を起動することができます。このパネルでは、DCC を終了しなくても、プロジェクト データを表示できます。現在の作業コンテキスト、およびこのコンテキスト内の最近のアクティビティが表示されます。フィードバック用のノートをパネルに直接追加することもできます。詳細については、ShotGrid パネルのドキュメントを参照してください。

次に、ティーポットをモデリングするか、提供されたティーポットをダウンロードして読み込みます。

ティーポット モデルに問題がなければ、[ShotGrid] > [ファイルを保存…] (File Save…)メニュー アクションを選択します。このダイアログ ボックスで、ファイルを指定した名前、バージョン、タイプで保存するよう求められます。

このダイアログ ボックスで完全な保存パスを指定するよう求められないことに注意してください。これは、maya_asset_work テンプレートに保存するようにアプリが設定されているためです。このテンプレートは、既定では次のように定義されます。

@asset_root/work/maya/{name}.v{version}.{maya_extension}

アプリがフル パスを入力するのに必要なのは、トークン化されたフィールド {name}{version}、および {maya_extension} のみです。テンプレートの @asset_root の部分は、次のように定義されます。

assets/{sg_asset_type}/{Asset}/{Step}

上記の新しいファイルを作成したときに設定した、現在の作業コンテキストが与えられている場合、ここに示したトークン化されたフィールドは、Toolkit プラットフォームによって自動的に推定できます。

また、ダイアログ ボックスの下部に、記述するファイル名およびパスのプレビューが表示されます。プロジェクトの設定を引き継ぐときに定義したプライマリ ストレージおよびプロジェクト フォルダが、テンプレート パスのルートに配置されます。

[保存] (Save)ボタンをクリックして、ティーポット モデルを保存します。

この時点において重要なのは、アーティストが作業ファイルを開く手順、および保存する手順は、パイプラインのどの段階においても、ここで完了したのと同じ手順になることです。[File Open]および[File Save]ダイアログ ボックスは、Workfiles アプリに含まれています。この「マルチ」アプリは、ShotGrid 統合でサポートされているすべての DCC で実行され、すべてのアーティストに一貫性のあるワークフローを提供します。

次の手順では、ティーポットにいくつかの変更を行います。ふたのジオメトリはモデルの残りの部分から独立しているため、後でリギングすることができます。

作業内容に問題がなければ、[ShotGrid] > [ファイルを保存…] (File Save…)メニュー アクションをもう一度実行します。今度は、ダイアログ ボックスの既定のバージョン番号が 2 になります。ファイルのバージョンは自動的に増分するため、アーティストは完了した作業の完全な履歴を維持することができます。[保存] (Save)ボタンをクリックします。

ティーポット モデルをバージョン 2 に保存したら、チュートリアルのこのセクションの最後の手順に進むことができます。

ティーポット モデルの準備ができたので、モデルをパブリッシュして、サーフェスの作成やリギングを実行できるようにする必要があります。パブリッシュするには、[ShotGrid] > [パブリッシュ…] (Publish…)メニュー アクションをクリックします。[アプリのパブリッシュ] (Publish App)ダイアログ ボックスが表示されます。

このダイアログ ボックスには、パブリッシュされる内容を表す項目がツリー表示されます。ツリーには、パブリッシュ対象の項目を表すいくつかのエントリと、パブリッシュ操作中に実行されるアクションを表すいくつかのエントリが含まれています。

ダイアログ ボックスの左側には、現在の Maya セッションを表す項目が表示されます。その下に、[ShotGrid にパブリッシュ] (Publish to ShotGrid)子アクションが表示されます。[すべてのセッション ジオメトリ] (All Session Geometry)を表す追加項目が、現在のセッションの子項目として表示されます。[ShotGrid にパブリッシュ] (Publish to ShotGrid)子アクションも表示されます。

注 : [すべてのセッション ジオメトリ] (All Session Geometry)項目が表示されない場合は、Maya で Alembic 書き出しプラグインが有効になっていることを確認してください。

ツリーの左側の項目をクリックして、Publish アプリを調べます。操作を行う項目を選択すると、パブリッシュする内容の説明を入力できます。また、右側のカメラ アイコンをクリックして、項目に関連付けられるスクリーンショットを作成することもできます。

準備ができたら、右下の[パブリッシュ] (Publish)ボタンをクリックして、現在の作業ファイルとティーポット ジオメトリをパブリッシュします。完了したら、ShotGrid でティーポット アセットを参照し、パブリッシュが正常に完了したことを確認できます。

上の図に、ティーポット モデルを含む、パブリッシュされた Alembic ファイルが示されています。また、Maya セッション ファイルのパブリッシュも示されています。これらのパブリッシュは、パブリッシュ アプリのツリー表示内の項目に対応します。

[File Save]ダイアログ ボックスを使用して作成された作業ファイルと同様に、これらの 2 つのパブリッシュの出力パスはテンプレートによって制御されます。次に、これらのテンプレートの内容を示します(アプリに対してこれらのテンプレートが設定される場所については、後で示します)。

Maya セッションのパブリッシュ:

@asset_root/publish/maya/{name}.v{version}.{maya_extension}

このテンプレートは、既定では作業ファイル テンプレートと非常に似ています。唯一の違いは、フォルダが publish であることです。

アセットのパブリッシュ:

@asset_root/publish/caches/{name}.v{version}.abc

このテンプレートは、Maya セッションのパブリッシュ テンプレートに似ていますが、ファイルは caches フォルダに書き込まれます。

[ファイルを保存] (File Save)ダイアログと異なり、パブリッシュするときに、名前、バージョン、またはファイル拡張子の値を指定する必要はありません。これは、パブリッシャーが作業ファイルのパスからこれらの値を取得するように既定で設定されているためです。パブリッシャーは作業テンプレートを介してこれらの値を内部で抽出し、パブリッシュ テンプレートに適用します。この概念は、Toolkit プラットフォームに関して重要であると同時に、パイプライン ステップの出力を別のステップの入力に接続するためにテンプレートをどのように使用するのかという点においても重要です。これについては、以降のセクションで詳細に説明します。

ディスクのファイルを参照して、これらが正しい場所に作成されていることを確認します。

お疲れ様でした。最初にパブリッシュされたティーポットの繰り返しが正常に作成されました。テーブル プロップのモデリング タスクからテーブルのモデルをパブリッシュする際に、学習した内容を使用できるかどうかを確認します。結果は以下のようになります。

次に、サーフェス作成ワークフローについて説明します。

サーフェス作成ワークフロー

このセクションでは、モデリング セクションで学習した内容を基に作成します。Loader アプリを使用して、前のセクションで作成したティーポット モデルをロードする方法について学習します。また、ティーポットのシェーダをパブリッシュするために Publish アプリをカスタマイズする方法についても学習します。

Desktop から Maya を起動して開始します。前のセクションの作業を行った後も Maya が開いている場合、再起動する必要はありません。Maya が開いたら、[ShotGrid] > [ファイルを開く…] (File Open…)メニュー項目を使用して作業ファイル アプリを開きます。モデリング セクションと同様に、[アセット] (Assets)タブを使用して、ティーポット アセットのタスクにドリル ダウンします。今回は、サーフェス作成タスクを選択して、[+ New File]をクリックします。

ティーポットのサーフェス作成タスクの作業が開始しました。右側のプロダクション コンテキスト内で作業していることを確認する最も簡単な方法は、ShotGrid メニューの最初のエントリを調べることです。

次に、ティーポット モデルを新しいサーフェス作成作業ファイルにロードする必要があります。このためには、Maya の [ShotGrid] > [ロード…] (Load…)メニュー項目を使用して、Loader アプリを起動します。

Loader アプリのレイアウトは作業ファイル アプリと似ていますが、今は作業ファイルを参照して開くのではなく、パブリッシュされたファイルを参照してロードします。

[Assets]タブでティーポットのキャラクタを参照して、前のセクションで作成したティーポットのパブリッシュを表示します。Maya シーンおよび Alembic キャッシュ パブリッシュが表示されます。Alembic キャッシュ パブリッシュを選択して、ダイアログ ボックスの右側にその詳細を表示します次に、Alembic キャッシュ パブリッシュの[アクション] (Actions)メニューで、[参照を作成] (Create Reference)項目をクリックします。ローダーは既定で開いたままになるため、追加のアクションを実行できますが、ローダーを閉じて続行することもできます。モデリング タスクからティーポット パブリッシュを示す参照が作成されていることが、Maya に表示されます。

次に、ティーポットに単純なプロシージャ シェーダを追加します。

パイプライン作成時のシェーダ管理は時間がかかり、複雑な作業になる場合があります。これは通常、スタジオに対して非常に固有な作業になります。付属の Maya 統合で、すぐに使用できるシェーダまたはテクスチャ管理が処理されないのは、これが理由です。

[ShotGrid] > [ファイルを保存…] (File Save…)メニュー アクションを使用して、現在のセッションを保存してから続行します。

カスタム シェーダ パブリッシュ

この単純なパイプラインの目的に合わせて、サーフェス作成ステップで Maya シェーダ ネットワークを追加のパブリッシュ項目として書き出すように、Publisher アプリをカスタマイズします。チュートリアルの後半では、下流工程の参照時にシェーダが Alembic ジオメトリ キャッシュに再接続できるスピード重視のソリューションを作成します。

注 : 追加するカスタマイズは、明らかに、非常に単純かつ不安定です。より堅牢なソリューションを作成する場合は、サーフェス キャラクタの代替表現と、テクスチャ マップとして外部イメージを使用するというアセット管理の側面を考慮することになります。この例は、実際のソリューションを作成する際の第一歩として使用してください。

注 : パブリッシャー プラグインの作成方法の詳細については、こちらを参照してください。

Maya コレクタをオーバーライドする

最初に、Publish アプリのコレクション ロジックを修正する必要があります。パブリッシャーには、アプリ内でパブリッシュおよび表示する項目を「収集」するためのロジックを定義する、コレクタ フックが設定されています。構成されたアプリの設定は、プロジェクトの環境設定内のこのファイルに含まれています。

env/includes/settings/tk-multi-publish2.yml

このファイルでは、すべてのアーティスト環境内での Publish アプリの使用方法を定義します。ファイルを開き、Maya セクション、特にアセット ステップの設定を検索します。これは、次のようになります。

コレクタの設定は、パブリッシャーの収集ロジックが配置されるフックを定義します。既定では、値は次のようになります。

collector: "{self}/collector.py:{engine}/tk-multi-publish2/basic/collector.py"

この定義には 2 つのファイルが含まれます。フックの設定に複数のファイルが表示されている場合は、フックが継承されています。最初のファイルには、インストールされた Publish アプリのフック フォルダに対して評価する {self} トークンが含まれています。2 番目のファイルには、現在のエンジン(この場合はインストールされた Maya エンジン)のフック フォルダに対して評価する {engine} トークンが含まれています。要約すると、この値は、Maya 固有のコレクタが Publish アプリのコレクタを継承することを示しています。これは、パブリッシャー設定の一般的なパターンです。Publish アプリのコレクタ フックには、実行中の DCC に関係なく、便利なロジックが含まれているためです。DCC 固有のロジックは、この基本ロジックから継承され、現在のセッションに固有の項目を収集するように拡張されます。

注 : アセットのステップ環境のコレクタ設定のみが変更されているため、ショット ステップなどの他のコンテキストで作業しているアーティストには、修正が認識されません。このようなアーティストは、付属している既定の Maya コレクタを使用し続けます。

環境設定」セクションでは、フックの引き継ぎ方法について学習しました。カスタマイズ プロセスを開始するには、まず、設定内の Maya エンジンのコレクタ フックを引き継ぎます。

上図に、その方法を示します。まず、プロジェクト設定の hooks フォルダ内にフォルダ構成を作成します。こうすると、後で他の DCC に合わせて同じフックをオーバーライドできるため、コレクタ プラグインに名前空間が提供されます。次に、インストール フォルダから新しいフック フォルダ構造に Maya エンジンのコレクタフックをコピーします。これで、設定内に、次のパスを持つ Maya コレクタのコピーが作成されました。

config/hooks/tk-multi-publish2/maya/collector.py

次に、新しいフックの場所を指すように、publish2 設定ファイルを更新します。現在のコレクタ設定には、次の値が含まれています。

collector: "{self}/collector.py:{config}/tk-multi-publish2/maya/collector.py"

{config} トークンをメモします。このパスは、プロジェクト設定内のフック フォルダに解決されるようになっています。コレクタの新しいコピーは、アプリ自体によって定義されたコレクタから継承されます。

注 : この時点でパブリッシュする場合、パブリッシュ ロジックは新しい場所から単にコピーおよび参照されているコレクタとまったく同じになります。

お好きな IDE またはテキスト エディタでコレクタのコピーを開いて、process_current_session メソッドの場所を特定する必要があります。このメソッドは、現在の DCC セッション内のパブリッシュ項目をすべて収集します。新しいパブリッシュ タイプが収集されるため、このメソッドの下部に移動して、以下の行を追加します。

self._collect_meshes(item)

これが、現在のセッションにあるすべてのメッシュを収集する際に追加する、新しいメソッドです。このメソッドは、(後で作成される)シェーダ パブリック プラグインが作用するメッシュ項目を作成します。渡される項目は、メッシュ項目の親となるセッション項目です。

注 : これは、既存のパブリッシュ プラグインを変更するための、対象が非常に限定されたアプローチです。パブリッシャーの構造とその可動部分の詳細については、開発者向けドキュメントを参照してください。

ここでは、ファイルの末尾に、次の新しいメソッド定義を追加します。

    def _collect_meshes(self, parent_item):
       """
       Collect mesh definitions and create publish items for them.

       :param parent_item: The maya session parent item
       """

       # build a path for the icon to use for each item. the disk
       # location refers to the path of this hook file. this means that
       # the icon should live one level above the hook in an "icons"
       # folder.
       icon_path = os.path.join(
           self.disk_location,
           os.pardir,
           "icons",
           "mesh.png"
       )

       # iterate over all top-level transforms and create mesh items
       # for any mesh.
       for object in cmds.ls(assemblies=True):

           if not cmds.ls(object, dag=True, type="mesh"):
               # ignore non-meshes
               continue

           # create a new item parented to the supplied session item. We
           # define an item type (maya.session.mesh) that will be
           # used by an associated shader publish plugin as it searches for
           # items to act upon. We also give the item a display type and
           # display name (the group name). In the future, other publish
           # plugins might attach to these mesh items to publish other things
           mesh_item = parent_item.create_item(
               "maya.session.mesh",
               "Mesh",
               object
           )
          
           # set the icon for the item
           mesh_item.set_icon_from_path(icon_path)

           # finally, add information to the mesh item that can be used
           # by the publish plugin to identify and export it properly
           mesh_item.properties["object"] = object

コードにはコメントが付いていて、実行される機能を把握できるようになっています。重要なのは、現在のセッション内のいずれかの最上位メッシュに対して、メッシュ項目を収集するためのロジックが追加されたことです。ただし、この時点でパブリッシャーを実行する場合は、項目ツリーにメッシュ項目が表示されません。これは、これらに作用するパブリッシュ プラグインが定義されていないためです。次に、これらのメッシュ項目にアタッチされ、下流工程で使用できるようにこれらのパブリッシュを処理する、新しいシェーダ パブリッシュ プラグインを記述します。

注 : 上記のコードに、メッシュ項目のアイコンを設定するための呼び出しが含まれる可能性があります。このため、指定したパスの設定にアイコンを追加する必要があります。

config/hooks/tk-multi-publish2/icons/mesh.png

シェーダ パブリッシュ プラグインを作成する

次の手順では、新たに収集されたメッシュ項目を、メッシュのシェーダをディスクに書き出してパブリッシュできるパブリッシュ プラグインに接続します。そのためには、新しいパブリッシュ プラグインを作成する必要があります。このリンクに従ってこのフックのソース コードを表示しhooks/tk-multi-publish2/maya フォルダに保存して、publish_shader_network.py という名前を付けます。

注 : このプラグインには、Toolkit プラットフォームおよびパブリッシュ コードを初めて使用する場合に使用するコードが多数含まれています。今のところ、これについて悩む必要はありませんこのチュートリアルの進行状況や、パブリッシャーの機能に対する理解度に応じて行われる操作については、時間をかけて調査し、内容を理解するようにしてください。今は、ファイルを作成し、ファイルの目的が、シェーダ ネットワークのディスクへの書き込みを処理することであることを理解しておきます。

シェーダをパブリッシュできるようになる前の最後のステップでは、新しいシェーダ パブリッシュ プラグインで定義されたテンプレートと設定を追加します。settings プロパティに、このプラグインで定義された設定が表示されます。

    @property
    def settings(self):
       "”” … "””

       # inherit the settings from the base publish plugin
       plugin_settings = super(MayaShaderPublishPlugin, self).settings or {}

       # settings specific to this class
       shader_publish_settings = {
           "Publish Template": {
               "type": "template",
               "default": None,
               "description": "Template path for published shader networks. "
                              "Should correspond to a template defined in "
                              "templates.yml.",
           }
       }

       # update the base settings
       plugin_settings.update(shader_publish_settings)

       return plugin_settings

このメソッドは、プラグインの設定インタフェースを定義します。シェーダ ネットワークをディスクに書き込む場所をプラグインに指示するには、「パブリッシュ テンプレート」の設定が必要です。パブリッシャーの設定に新しいパブリッシュ プラグインを追加して、テンプレートの設定を含めます。これは、コレクタを引き継ぐ前に修正されたのと同じ設定ブロックです。これは、次のファイルで定義されます。

env/includes/settings/tk-multi-publish2.yml

設定は次のようになります。

最後に、設定内で新しい maya_shader_network_publish テンプレートを定義する必要があります。このファイルを編集して、次の内容を追加します。

config/core/templates.yml

アセット関連の Maya テンプレートが定義されているセクションを見つけて、新しいテンプレート定義を追加します。定義は次のようになります。

これで終了です。シェーダをパブリッシュするメッシュを検索するように、Publish アプリのコレクタ フックが上書きされました。収集されたシェーダ項目にアタッチする新しいパブリッシュ プラグインが実装されました。また、シェーダ ネットワークがディスクに書き込まれる新しいパブリッシュ テンプレートが定義および設定されました。

注 : 設定のカスタマイズ中に Maya を終了しても、問題はありません。単に Maya を再起動し、[ファイルを開く] (File Open)ダイアログ ボックスを使用すれば、サーフェス作成作業ファイルを開くことができます。次の再ロード ステップはスキップできます。

ShotGrid 統合を再ロードする

カスタマイズを試すには、Maya セッション内で統合を再ロードする必要があります。このためには、[ShotGrid] > (タスク名) > [作業領域の情報…] (Work Area Info…)メニュー アクションをクリックします。

この操作を行うと、現在のコンテキストに関する情報を示す Work Area Info アプリが起動します。設定を変更しながら統合を再ロードするための便利なボタンもあります。このボタンをクリックして、アプリおよびエンジンを再ロードしてから、ダイアログ ボックスを閉じます。

シェーダ ネットワークをパブリッシュする

これで、プロジェクトの設定を変更した場合の結果を確認できるようになりました。ShotGrid メニューから Publish アプリを起動します。Publish Shaders プラグインがアタッチされている、収集されたティーポット メッシュ項目が表示されます。

作業の説明を入力し、サーフェス ティーポットのサムネイルを取り込んで、パブリッシュされたファイルに関連付けます。最後に、パブリッシュをクリックして、ティーポット シェーダをディスクに書き出して、このファイルをパブリッシュとして ShotGrid に登録します。完了すると、セッションのパブリッシュ プラグインによって、作業ファイルが次に使用可能なバージョンに自動的に保存されます。これが、ShotGrid 統合でサポートされているすべての DCC の既定の動作です。

これで、ShotGrid 内のティーポット アセットを参照して、すべてが予測どおりに機能したことを確認できるようになりました。

お疲れ様でした。パイプラインが正常にカスタマイズされ、ティーポットのシェーダがパブリッシュされました。学習した内容を使用して、テーブル プロップのサーフェス作成タスクからシェーダをパブリッシュできるかどうかを確認します。結果は以下のようになります。

次に、リギング ワークフローについて説明します。

リギング ワークフロー

現在、ShotGrid に付属している Workfile アプリおよび Publish アプリを使用すると、作業ファイルを開く(または作成する)、保存する、パブリッシュする操作を極めて快適に行うことができます。また、上流工程からパブリッシュをロードする Loader アプリを使用する機会もありました。学習した内容を使用して、次のタスクを完了します。

  • ShotGrid Desktop から Maya を起動する

  • ティーポット アセットのリギング ステップで、新しい作業ファイルを作成する

  • モデリング ステップでティーポット Alembic キャッシュ パブリッシュをロード(参照)する

  • 開け閉めするティーポットのふたをリギングする(単純にする)

  • ティーポットのふたを保存してパブリッシュする

最終的には、ShotGrid で次のようになります。

次に、アーティストが上流工程の変更をワークフロー内でどのように処理するのかを見てみましょうモデリング作業ファイルを開いて、ティーポット モデルに何らかの変更を加えます。次に、更新された作業をパブリッシュします。結果は次のようになります。

ティーポットのリギング ステップで、作業ファイルを再び開きます([ShotGrid] > [ファイルを開く…] (File Open…]を使用)。[ShotGrid] > [シーンの詳細情報…] (Scene Breakdown…) メニュー アクションを起動します。この操作を行うと、Breakdown アプリが起動し、作業ファイル内で参照した上流工程のパブリッシュがすべて表示されます。この場合は、上流工程のティーポット モデルのみがあります。次のように表示されます。

アプリは参照ごとに、2 つのインジケータのいずれかを表示します。参照されたパブリッシュが最新バージョンであることを示す緑のチェックと、新しいパブリッシュが公開されていることを示す赤の「x」です。この場合は、新しいパブリッシュが公開されていることがわかります。

参照されたティーポット Alembic キャッシュ項目を選択して(または下部にある[すべての赤を選択] (Select All Red)ボタンをクリックして)、[選択項目を更新] (Update Selected)をクリックします。

Maya 参照がティーポット Alembic キャッシュの最新の繰り返しに更新されます。ファイル内に新しいモデルが含まれているのを確認できるはずです。

新しいモデルについて考慮する必要があるリギング ステップを調整して、変更をパブリッシュします。

次のセクションでは、ショットのコンテキスト内で作業します。次に、ショットのレイアウトについて説明します。

レイアウト ワークフロー

このセクションでは、プロジェクトのために作成したショット内で作業を開始します。以前のセクションで作成したアセットをロードし、ショットを作成します。次に、パブリッシャーを再びカスタマイズし、今回はショット カメラをパブリッシュします。

まず、以前のセクションで学習した内容に基づいて、次のタスクを完了します。

  • ShotGrid Desktop から Maya を起動する

  • ショットのレイアウト ステップで新しい作業ファイルを作成する(ヒント: ローダー内の[Shots]タブを使用する)

  • ティーポットのリギング ステップでティーポットのパブリッシュをロード(参照)する

  • テーブルのモデル ステップでティーポットのパブリッシュをロード(参照)する

ここで、テーブルに置かれたティーポットを含む、単純なシーンをブロックします。camMain という名前のシーンにカメラを追加して、いくつかのフレームをアニメートし、ショットのカメラ移動を作成します。

ショットのレイアウトに問題がなければ、[ShotGrid] > [ファイルを保存…] (File Save…)メニュー アクションを使用してファイルを保存します。先に進んで、この時点でパブリッシュする場合は、Maya セッション全体のみがパブリッシュ可能な項目として表示されます。

簡単なカスタマイズを追加する場合、およびパイプラインの柔軟性を高めるためにカスタマイズする場合は、他のパッケージに簡単に読み込むことができるファイル形式にスタンドアロン カメラをパブリッシュします。これにより、カメラを一度作成すれば(通常はレイアウト内)、アニメーション、ライト、および合成など、他のすべてのパイプラインの手順でこのカメラを直接使用できるようになります。

カメラを収集する

シェーダのパブリッシュと同様に、最初にコレクタ フックをカスタマイズします。Maya のコレクタ フックをすでに引き継いで、アセット ステップで設定してあります。この設定を、ショットのパイプライン ステップに合わせて更新する必要があります。そのためには、パブリッシャーの設定ファイルを修正し、Maya ショット のステップ コレクタ設定を編集します。

ショットのコンテキスト内でタスクを実行している場合は、カスタム コレクタ ロジックが実行されます。次のステップでは、カスタムのカメラ コレクション ロジックを追加します。

カスタム コレクタ フックを開き、サーフェス作成セクションでメッシュを収集するための呼び出しを追加した、process_current_session メソッドの最下部に、次のメソッド呼び出しを追加します。

self._collect_cameras(item)

次に、ファイルの末尾にメソッド自体を追加します。

    def _collect_cameras(self, parent_item):
       """
       Creates items for each camera in the session.

       :param parent_item: The maya session parent item
       """

       # build a path for the icon to use for each item. the disk
       # location refers to the path of this hook file. this means that
       # the icon should live one level above the hook in an "icons"
       # folder.
       icon_path = os.path.join(
           self.disk_location,
           os.pardir,
           "icons",
           "camera.png"
       )

       # iterate over each camera and create an item for it
       for camera_shape in cmds.ls(cameras=True):

           # try to determine the camera display name
           try:
               camera_name = cmds.listRelatives(camera_shape, parent=True)[0]
           except Exception:
               # could not determine the name, just use the shape
               camera_name = camera_shape

           # create a new item parented to the supplied session item. We
           # define an item type (maya.session.camera) that will be
           # used by an associated camera publish plugin as it searches for
           # items to act upon. We also give the item a display type and
           # display name. In the future, other publish plugins might attach to
           # these camera items to perform other actions
           cam_item = parent_item.create_item(
               "maya.session.camera",
               "Camera",
               camera_name
           )

           # set the icon for the item
           cam_item.set_icon_from_path(icon_path)

           # store the camera name so that any attached plugin knows which
           # camera this item represents!
           cam_item.properties["camera_name"] = camera_name
           cam_item.properties["camera_shape"] = camera_shape

ここでも、コードにはコメントが付いていて、実行される機能を把握できるようになっています。現在のセッション内のすべてのカメラに対してカメラ項目を収集するロジックを追加しました。ただし、以前と同様に、この時点でパブリッシャーを実行する場合は、項目ツリーにカメラ項目が表示されません。これは、これらに作用するパブリッシュ プラグインが定義されていないためです。次に、これらの項目にアタッチされ、下流工程で使用できるようにこれらのパブリッシュを処理する、カメラ パブリッシュ プラグインを記述します。

注 : 上記のコード内に、カメラ項目のアイコンを設定するための呼び出しが含まれる可能性があります。このため、指定したパスの設定にアイコンを追加する必要があります。

config/hooks/tk-multi-publish2/icons/camera.png

カスタム カメラ パブリッシュ プラグイン

次の手順では、新たに収集されたメッシュ項目を、メッシュのシェーダをディスクに書き出してパブリッシュできるパブリッシュ プラグインに接続します。そのためには、新しいパブリッシュ プラグインを作成する必要があります。このリンクに従ってこのフックのソース コードを表示しhooks/tk-multi-publish2/maya フォルダに保存して、publish_camera.py という名前を付けます。

カメラ パブリッシュの設定

最後に、ショット ステップで Publish アプリの設定を更新する必要があります。設定ファイルを編集して、新しいプラグインを追加します。

env/includes/settings/tk-multi-publish2.yml

設定は次のようになります。

新しいプラグインの settings メソッドで定義されているとおりに、ファイルに 2 つの設定が追加されています。シェーダ プラグインと同様に[テンプレートをパブリッシュ] (Publish Template)設定があり、そこでカメラ ファイルが書き込まれる場所を定義できます。カメラの設定は、プラグインが作用するカメラを制御する、カメラに関する文字列のリストのことです。何らかのタイプのカメラ命名規則があり、この設定によって、規則に一致しないカメラのパブリッシュ項目が、ユーザに対して表示されなくなるはずです。上図では、パブリッシュ用の camMain カメラのみが表示されます。cam* などのワイルドカード パターンを使用した場合も、追加したプラグインの実装は機能します。

変更をテストする前の最終ステップでは、新しいカメラ パブリッシュ テンプレートの定義を追加します。config/core/templates.yml ファイルを編集し、Maya ショット テンプレートのセクションにテンプレートの定義を追加します。

この時点で、新しいプラグインを使用してカメラをパブリッシュする準備が整っています。Work Area Info アプリを使用して統合を再ロードしてから、パブリッシャーを起動します。

図に示されているように、新しいカメラ項目が収集され、パブリッシュ プラグインがアタッチされます。先に進んで、[パブリッシュ] (Publish)をクリックしてディスクにカメラを書き込み、ShotGrid に登録します。

注 : Alembic 書き出しと同様、カメラのパブリッシュ プラグインでは FBX 書き出しプラグインをロードする必要があります。カメラのパブリッシュ プラグイン項目が表示されない場合は、FBX プラグインがロードされていることを確認し、パブリッシャーを再起動してください。

ShotGrid では次のように表示されます。

これで操作は終了しました。次に、アニメーションについて説明します。

アニメーション ワークフロー

ここまでの手順で、Publish アプリのみをカスタマイズすることにより、カスタム ファイル タイプ/コンテンツをディスクに書き込み、他のパイプライン ステップにこれらを共有しました。このセクションでは、Loader アプリの設定をカスタマイズし、ラウンド トリップを完了してカスタム パブリッシュの読み込み/参照を実行できるようにします。

以前のセクションで学習した内容に基づいて、次の作業を完了します。

  • ShotGrid Desktop から Maya を起動する

  • ショットのアニメーション ステップで新しい作業ファイルを作成する

  • ショットのレイアウト ステップで Maya セッションのパブリッシュをロード(参照)する

注 : レイアウト セッションのパブリッシュ ファイルに、このカメラが含まれていました。堅牢なパイプラインでは、カメラを明示的に非表示にするか、またはセッションのパブリッシュから除外して、独立したカメラ パブリッシュ ファイルを実際のカメラ定義の 1 つに設定できるようにします。先に進んで、参照によって含まれているカメラを削除または非表示にします。

カスタム カメラ ローダー アクション

カメラのパブリッシュを読み込む/参照するように Loader アプリをカスタマイズするには、アプリの設定ファイルを編集する必要があります。設定内のファイルのパスは、次のようになります。

config/env/includes/settings/tk-multi-loader2.yml

Maya のアプリが設定されているセクションを見つけて、action_mappings 設定のアクション リストに次の行を追加します。

FBX Camera: [reference, import]

カスタム カメラ パブリッシュ プラグインでは、カメラをディスクに書き込む際に Maya の FBXExport mel コマンドを使用しました。ShotGrid にファイルを登録する際に使用したパブリッシュ タイプは FBX Camera でした。設定に追加された行は、ローダーに対して、タイプ FBX Camera の任意のパブリッシュの reference および import アクションを表示するように指示します。これらのアクションは、Loader アプリの tk-maya-actions.py フックで定義されています。これらのアクションは、Maya が参照できる、または読み込むことができる任意のファイル タイプを処理するように実装されています。カスタム プラグインによって生成された .fbx ファイルはこのカテゴリに分類されるため、これが、パブリッシュされたカメラをロードできるようにするために必要な唯一の変更になります。

アプリの設定は次のようになります。

ここで、Work Area Info アプリを使用して統合を再ロードし、新しい設定を選択してから、レイアウト内のパブリッシュされたカメラを参照します。

新しいパブリッシュ タイプでフィルタしてから、カメラの参照を作成します。ローダーを閉じると、新たな参照カメラを使用して、前のセクションで作成したカメラの移動を再生できるようになります。

次に、何らかの動作を行うようにティーポット モデルをアニメートします(単純なものにしてください)。

アニメーションがうまく作成されたら、以前のセクションと同じように作業ファイルを保存してパブリッシュします。

次に、照明について説明します。

照明ワークフロー

このセクションでは、以前のセクションでパブリッシュしたすべてのものを組み合わせて、ショットをレンダリングします。このためには、ティーポット アセットのサーフェス作成ステップでパブリッシュ済みのシェーダをロードするように Loader アプリをカスタマイズします。

最初に、以前のセクションで学習した内容に基づいて、次の作業を完了します。

  • ShotGrid Desktop から Maya を起動する

  • ショットの照明ステップで新しい作業ファイルを作成する

  • ショットの照明ステップで Maya セッションのパブリッシュをロード(参照)する

  • ショットのレイアウト ステップでカメラ パブリッシュをロード(参照)する

カスタム シェーダのローダー アクション

サーフェス作成手順でパブリッシュしたシェーダをロードするには、前のセクションで説明した tk-maya-actions.py フックを引き継ぐ必要があります。インストール場所から設定にこのフックをコピーします。

このフックは、指定されたパブリッシュに対して実行できるアクションのリストを生成します。Loader アプリは、付属の統合でサポートされている DCC ごとに、このフックの異なるバージョンを定義します。

サーフェス作成ワークフロー セクションでパブリッシュされたシェーダは単なる Maya ファイルであるため、書き出されたカメラと同様に、既存のロジックを変更しなくても、ローダーから参照することができます。必要な変更は、シェーダをファイル内で参照した後に、シェーダを適切なメッシュに接続するための新しいロジックをアクション フックに追加することだけです。

アクション フックの末尾(このクラスの外部)に次のメソッドを追加します。

    def _hookup_shaders(reference_node):
       """
       Reconnects published shaders to the corresponding mesh.
       :return:
       """

       # find all shader hookup script nodes and extract the mesh object info
       hookup_prefix = "SHADER_HOOKUP_"
       shader_hookups = {}
       for node in cmds.ls(type="script"):
           node_parts = node.split(":")
           node_base = node_parts[-1]
           node_namespace = ":".join(node_parts[:-1])
           if not node_base.startswith(hookup_prefix):
               continue
           obj_pattern = node_base.replace(hookup_prefix, "") + "\d*"
           obj_pattern = "^" + obj_pattern + "$"
           shader = cmds.scriptNode(node, query=True, beforeScript=True)
           shader_hookups[obj_pattern] = node_namespace + ":" + shader

       # if the object name matches an object in the file, connect the shaders
       for node in (cmds.ls(references=True, transforms=True) or []):
           for (obj_pattern, shader) in shader_hookups.iteritems():
               # get rid of namespacing
               node_base = node.split(":")[-1]
               if re.match(obj_pattern, node_base, re.IGNORECASE):
                   # assign the shader to the object
                   cmds.select(node, replace=True)
                   cmds.hyperShade(assign=shader)

ここで、_create_reference メソッドの末尾に次の 2 行を追加して、シェーダ フック ロジックを呼び出します。

    reference_node = cmds.referenceQuery(path, referenceNode=True)
    _hookup_shaders(reference_node)</td>

新しい参照が作成されると、必ずこのコードが実行されるため、ファイル内にシェーダが既に存在する場合に新しいジオメトリを参照すると、シェーダが割り当てられます。同様に、ジオメトリが既に存在するときにシェーダを参照した場合も、このコードが機能します。

注 : このフック ロジックは非常に力任せであるため、プロダクション対応パイプラインを実装するときに考慮する必要がある名前空間やその他の Maya 関連の微妙な動作は、適切に処理されません。

最後に、次のファイルを編集して、ショットのローダー設定が新しいフックを指すようにします。

config/env/includes/settings/tk-multi-loader2.yml

それと同時に、Maya シェーダ ネットワーク パブリッシュ タイプと参照アクションを関連付けます。ローダーの設定は次のようになります。

ここで、Work Area Info アプリを使用して統合を再ロードし、新しい設定を選択してから、サーフェス内のパブリッシュされたシェーダを参照します。

ティーポット シェーダ ネットワーク パブリッシュに対する参照を作成します。

ここで、テーブル シェーダ ネットワークをロードします。Maya でハードウェア テクスチャリングが有効になっている場合は、アニメーション ステップ中にシェーダがメッシュ参照に自動的に接続されているはずです。

ここで、シーンにライトをいくつか追加します(単純なものにしてください)。

Maya レンダーをパブリッシュする

ショットをディスクにレンダリングします。

注 : ご覧のとおり、ティーポットとテーブル アセットのサーフェスには共に問題があります。このチュートリアルでは、これらが意図的かつ芸術的な選択肢であると想定します。これらの問題を解決する場合は、これらのアセットのサーフェス作成作業ファイルをロードして、シェーダを調整し、再びパブリッシュしてください。この操作を行う場合は、照明作業ファイル内の参照を忘れずに更新して、再度レンダリングしてください。これらの手順を実行する場合は、参照を再ロードした後に、詳細情報アプリが更新済みのシェーダを再接続しないことがあります。シェーダの参照をフックするようローダーを変更した経験に基づいて、ユーザは詳細情報アプリのシーン操作フックを更新し、必要なロジックを追加できるようになっています。このファイルの update メソッドを参照してください。

付属の ShotGrid 統合は、ファイル内で定義されたレンダリング レイヤを調べて、イメージ シーケンスを収集します。レンダリングが完了したら、パブリッシャーを起動します。レンダリングされたシーケンスがツリー内の項目として表示されます。

先に進んで、セッションおよびレンダリングされたイメージ ファイル シーケンスをパブリッシュします。ShotGrid では次のように表示されます。

次に、コンポジットについて説明します。

コンポジット ワークフロー

チュートリアルのこの最終セクションでは、Nuke が提供する既定の統合をいくつか紹介します。以前のセクションで参照したアプリの他に、ShotGrid 対応書き込みノードや、レビューのためにレンダーを他のユーザにすばやく送信するためのアプリについて学習します。

最初に、次に示す手順を行って作業ファイルを準備します。

  • ShotGrid Desktop から Nuke を起動する

  • Maya と同様に、[ShotGrid] > [File Open]メニュー アクションを使用して、ショットのコンポジット ステップ内で新しい作業ファイルを作成します。

Loader アプリを使用して前のセクションでレンダリングおよびパブリッシュしたイメージ シーケンスをロードします。

Image および Rendered Image パブリッシュ タイプに対して定義されているアクションは、ノードの作成と読み取りです(タイプはファイル拡張子によって異なります)。このアクションをクリックして、Nuke セッション内で新しい Read ノードを作成します。

Nuke プロジェクト設定の出力フォーマットが、レンダリングされたイメージと一致することを確認します。バックグラウンドとして使用する一定のカラーを作成して、読み取りノードと結合します。ビューアをアタッチしてコンポジットを表示します。

コンポジットに問題がなければ、[ShotGrid] > [ファイルを保存…] (File Save…)メニュー アクションを使用して、作業ファイルを保存します。

次に、Nuke の左側メニューで ShotGrid のロゴをクリックします。このメニューの ShotGrid 対応書き込みノードの 1 つをクリックします。

ShotGrid Write Node アプリは、現在の ShotGrid のコンテキストに基づいて出力パスを自動的に評価する組み込みの Nuke 書き込みノードの上に、レイヤを配置します。

ディスクにイメージ フレームをレンダリングします。Nuke セッションをパブリッシュして、レンダリングされたイメージに作業ファイルを関連付けられるようになりました。既定では、パブリッシャーはレンダリングされたフレームを収集し、ShotGrid にフレームを登録するプラグインをアタッチします。2 番目のプラグインは、レビュー提出と呼ばれる、バックグラウンドで実行される統合方法を使用して、フレームをアップロードします。このアプリは Nuke を使用して QuickTime を生成します。生成された QuickTime は、アップロードしたり、レビューしたりできます。

もう 1 つの便利な統合は、Quick Review アプリです。これは、QuickTime をすばやく生成して、レビューのために ShotGrid にアップロードする出力ノードです。このアプリは、左側メニュー内の、ShotGrid 書き込みノードの横にあります。

Quick Review ノードを作成してから、[Upload]ボタンをクリックして、ディスクへの入力のレンダリング、QuickTime の生成、レビューのための ShotGrid への結果のアップロードを行います。フレームを提出する前に、いくつかの標準オプションが表示されます。

ShotGrid の[メディア] (Media)タブを調べて、アップロードされた QuickTime を両方とも確認します。

ShotGrid のメディアのレビューの詳細については、公式ドキュメントを参照してください。

まとめ

おめでとうございます。これで完了です。このチュートリアルが、ShotGrid 統合を使用して独自のカスタム パイプラインを作成する際の第一歩になるはずです。スタジオ固有のニーズに合わせて既定の統合を拡張する方法について理解できたことでしょう。

質問したり、他のスタジオが Toolkit をどう使用しているかについて学習するには、shotgun-dev Google グループを使用してください。常に最新の投稿を読むことができるよう、サブスクライプすることをお勧めします。

既定の統合では実現できない機能やワークフローがあると感じた場合は、独自のアプリをいつでも作成できます。最初のアプリの作成を開始する際に役立つ優れたドキュメントを次に示します。

このチュートリアル、ShotGrid、または Toolkit プラットフォーム全般に関してさらに質問がある場合は、コミュニティに連絡してください。


Edit this document