パブリッシュされたファイルをロードする

ローダー

パブリッシュされたファイルを特定してシーンで参照します。


作成: Shotgun Software
最新バージョン: v1.18.0 (製品)
バージョン番号は、セマンティック バージョニング基準に従っています。
システム名: tk-multi-loader2

目次:

概要

ドキュメント

            環境設定

                  ツリー ビュー

                  パブリッシュをフィルタリングする

                  アクションが何も表示されない

                  アクションを管理する

            リファレンス

                  open_publish()

インストール、更新、開発

設定オプション

概要

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。 Shotgun ローダーを使用すると、Shotgun にパブリッシュしたファイルの概要確認と参照をすばやく行うことができます。 検索可能なツリー ビュー ナビゲーション システムを採用しているため、探しているタスク、ショット、またはアセットにすばやく、簡単にアクセスできます。ローダーには、その項目のパブリッシュすべてについてサムネイル ベースの概要が表示されます。 その後は、設定可能なフックを利用して、パブリッシュを参照したり、現在のシーンに簡単に読み込んだりできます。

概要ビデオ

次のビデオでは、特長と機能の概要について説明します。

ドキュメント

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。

環境設定

ローダーは高度にカスタマイズ可能で、さまざまな方法でセットアップできます。 設定できる領域は主に 2 つあります。

  • ツリー ビューの左側に表示するタブとコンテンツをセットアップします。
  • それぞれのパブリッシュで表示するアクションとそのアクションの実際の内容を制御します。

次のセクションでは、ローダーの設定方法の概要を説明します。 設定に関する技術詳細については、本ドキュメントの後半部分を参照してください。

ツリー ビュー

ツリー ビューは高度に設定可能で、標準的な Shotgun フィルタ構文を使用してさまざまなタブのコンテンツを制御できます。 各タブは 1 つの階層にグループ化される 1 つの Shotgun API クエリーで構成されます。 表示項目を制御する任意のフィルタを追加し、{context.entity}{context.project}{context.project.id}{context.step}{context.task}、および {context.user} といった特別なキーワードを使用して、現在のコンテキストに基づいてクエリーを範囲指定できます。 各キーワードは、関連するコンテキスト情報または None (コンテキストの該当部分が入力されていない場合)で置き換えられるか、キー ID、タイプ、名前を含む標準的な Shotgun リンク ディクショナリで置き換えられます。

既定では、ローダーは現在のプロジェクトに属するアセットとショットを表示します。 再設定することで、他のプロジェクト(または特定のアセット ライブラリ プロジェクトなど)の項目を表示するといった拡張設定を簡単に行うことができます。 また、フィルタを使用して、特定の承認ステータスを持つ項目、またはステータスや他の Shotgun フィールド別のグループ項目のみを表示することなども可能です。 次に、ツリー ビュー タブの設定方法を示したいくつかの構成設定例を紹介します。

# An asset library tab which shows assets from a specific
# Shotgun project
caption: Asset Library
entity_type: Asset
hierarchy: [sg_asset_type, code]
filters:
- [project, is, {type: Project, id: 123}]

# Approved shots from the current project
caption: Shots
hierarchy: [project, sg_sequence, code]
entity_type: Shot
filters:
- [project, is, '{context.project}']
- [sg_status_list, is, fin]

# All assets for which the current user has tasks assigned
caption: Assets
entity_type: Task
hierarchy: [entity.Asset.sg_asset_type, entity, content]
filters:
- [entity, is_not, null]
- [entity, type_is, Asset]
- [task_assignees, is, '{context.user}']
- [project, is, '{context.project}']

パブリッシュをフィルタリングする

ローダーが Shotgun からパブリッシュ データをロードする場合に実行するパブリッシュ クエリーに Shotgun フィルタを適用できます。 フィルタは publish_filters パラメータを介して制御されます。たとえば、フィルタを使用すると、承認されていないパブリッシュまたはそれに関連するレビュー バージョンが承認されていない場合にパブリッシュを非表示にできます。

アクションが何も表示されない

ローダーには、各エンジン用にさまざまなアクションがたくさん用意されています。 たとえば、Nuke の場合、「スクリプトの読み込み」と「ノードの作成と読み取り」の 2 つのアクションがあります。 アクションはフック内で定義されます。つまり、その動作を変更したり、必要に応じて他のアクションを追加したりできます。 その後、ローダーの設定で、このアクションを特定のパブリッシュ タイプにバインドできます。 基本的に、パブリッシュ タイプにアクションをバインドするということは、アクションがローダー内のこのタイプの項目すべてのアクション メニューに表示されるということです。

たとえば、既定では、Nuke のマッピングは次のように設定されています。

action_mappings:
  Nuke Script: [script_import]
  Rendered Image: [read_node]

アクション メニューが何も表示されていない場合は、使用しているパブリッシュ タイプとは異なる名前を選択している可能性があります。 この場合、設定に移動して、ローダー内に表示するためにこのタイプを追加します。

アクションを管理する

ローダーがサポートするアプリケーションごとに、このアプリケーションでサポートされるアクションを実装するアクション フックがあります。 たとえば Maya などの場合、既定のフックは referenceimport、および texture_node の各アクションを実装し、それぞれが特定の Maya コマンドを実行して現在の Maya シーンにコンテンツを取り込みます。 すべてのフックと同様に、アクションを完全に上書きおよび変更できます。また、埋め込まれたフックに基づいたフックも作成できるため、たくさんのコードを複製しなくても、組み込みのフックに他のアクションを簡単に追加できます。

アクション フックでアクションのリストを定義したら、このアクションをパブリッシュ ファイル タイプにバインドできます。 たとえば、「Maya Scene」という名前のパイプラインにパブリッシュ ファイル タイプを指定すると、フック内で定義されている reference アクションと import アクションにこの設定をバインドできます。 これにより、Toolkit は表示される各 Maya Scene パブリッシュに reference と import のアクションを追加します。 このようにして実際のフックからパブリッシュ タイプを分離すると、既定の設定で用意されるローダーとは異なるパブリッシュ タイプ設定を使用できるようにローダーを簡単に再設定できます。

ローダーは Toolkit の第 2 世代のフック インタフェースを使用するため、柔軟性に優れています。 このフックの形式は改善された構文を使用します。 これはローダーにインストールされた既定の構成設定で次のように表示されます。

actions_hook: '{self}/tk-maya_actions.py'

キーワード {self} は、フックの hooks アプリケーション フォルダを確認するように Toolkit に指示します。 このフックをユーザが設定した実装で上書きする場合は、値を {config}/loader/my_hook.py に変更します。 これにより、設定フォルダ内の hooks/loader/my_hook.py と呼ばれるフックを使用するように Toolkit に指示します。

ローダーが使用する別の第 2 世代フック機能では、execute() メソッドを指定する必要がなくなりました。 代わりに、フックは通常のクラスのような形式になり、すべてのグループ化に適したメソッドのコレクションが含まれます。 ローダーの場合、使用するアクション フックは次の 2 つのメソッドを実装する必要があります。

def generate_actions(self, sg_publish_data, actions, ui_area)
def execute_multiple_actions(self, actions)

詳細については、アプリケーションに付属するフック ファイルを参照してください。 フックは継承も活用します。つまり、フック内のすべての項目を上書きすることなく、さまざまな方法で既定のフックを簡単に拡張または強化して簡単にフックを管理できます。

v1.12.0 よりも前のバージョンでは、アプリケーションがアクションを実行するには execute_action フックを起動していました。 新しいバージョンでは execute_multiple_actions フックを起動します。 既存のフックとの下位互換性を提供するために、execute_multiple_actions フックは提供される各アクションの execute_action を実際に起動します。 アプリケーションを v1.12.0 以降にアップグレードした後に execute_multiple_actions フックが定義されていないと報告される場合は、環境の actions_hook 設定が組み込みフック {self}/{engine_name}_actions.py から正しく継承されるようにします。 組み込みのフックからカスタム フックを派生させる方法については、Toolkit リファレンス ドキュメントを参照してください。

フックの継承を使用すると、次のように既定のフックに他のアクションを追加できるようになります。

import sgtk
import os

# toolkit will automatically resolve the base class for you
# this means that you will derive from the default hook that comes with the app
HookBaseClass = sgtk.get_hook_baseclass()

class MyActions(HookBaseClass):

    def generate_actions(self, sg_publish_data, actions, ui_area):
        """
        Returns a list of action instances for a particular publish.
        This method is called each time a user clicks a publish somewhere in the UI.
        The data returned from this hook will be used to populate the actions menu for a publish.

        The mapping between Publish types and actions are kept in a different place
        (in the configuration) so at the point when this hook is called, the loader app
        has already established *which* actions are appropriate for this object.

        The hook should return at least one action for each item passed in via the
        actions parameter.

        This method needs to return detailed data for those actions, in the form of a list
        of dictionaries, each with name, params, caption and description keys.

        Because you are operating on a particular publish, you may tailor the output
        (caption, tooltip etc) to contain custom information suitable for this publish.

        The ui_area parameter is a string and indicates where the publish is to be shown.
        - If it will be shown in the main browsing area, "main" is passed.
        - If it will be shown in the details area, "details" is passed.
        - If it will be shown in the history area, "history" is passed.

        Please note that it is perfectly possible to create more than one action "instance" for
        an action! You can for example do scene introspection - if the action passed in
        is "character_attachment" you may for example scan the scene, figure out all the nodes
        where this object can be attached and return a list of action instances:
        "attach to left hand", "attach to right hand" etc. In this case, when more than
        one object is returned for an action, use the params key to pass additional
        data into the run_action hook.

        :param sg_publish_data: Shotgun data dictionary with all the standard publish fields.
        :param actions: List of action strings which have been defined in the app configuration.
        :param ui_area: String denoting the UI Area (see above).
        :returns List of dictionaries, each with keys name, params, caption and description
        """

        # get the actions from the base class first
        action_instances = super(MyActions, self).generate_actions(sg_publish_data, actions, ui_area)

        if "my_new_action" in actions:
            action_instances.append( {"name": "my_new_action",
                                      "params": None,
                                      "caption": "My New Action",
                                      "description": "My New Action."} )

        return action_instances

    def execute_action(self, name, params, sg_publish_data):
        """
        Execute a given action. The data sent to this be method will
        represent one of the actions enumerated by the generate_actions method.

        :param name: Action name string representing one of the items returned by generate_actions.
        :param params: Params data, as specified by generate_actions.
        :param sg_publish_data: Shotgun data dictionary with all the standard publish fields.
        :returns: No return value expected.
        """

        # resolve local path to publish via central method
        path = self.get_publish_path(sg_publish_data)

        if name == "my_new_action":
            # do some stuff here!

        else:
            # call base class implementation
            super(MyActions, self).execute_action(name, params, sg_publish_data)

これで、この新しいアクションを設定内のパブリッシュ タイプのセットにバインドできます。

action_mappings:
  Maya Scene: [import, reference, my_new_action]
  Maya Rig: [reference, my_new_action]
  Rendered Image: [texture_node]

上記のようにフックの派生を利用すれば、カスタム フック コードには、管理と更新を簡単にするために実際追加するビジネス ロジックを含めるだけで構いません。

リファレンス

次のメソッドがアプリケーション インスタンスで利用可能です。

open_publish()

ユーザがパブリッシュを選択できる「Open File」スタイル バージョンのローダーを表示します。 選択したパブリッシュが返されます。 アプリケーション用に設定された通常のアクションは、このモードでは許可されていません。

app.open_publish( str title, str action, list publish_types )

パラメータと戻り値

  • strtitle: open publish ダイアログで表示するタイトルです。
  • str action: 「open」ボタンで使用するアクションの名前です。
  • list publish_types: パブリッシュの利用可能なリストのフィルタリングに使用するパブリッシュ タイプのリストです。 これが空または None の場合は、すべてのパブリッシュが表示されます。
  • Returns: ユーザによって選択された Shotgun エンティティ ディクショナリのリストです。

>>> engine = sgtk.platform.current_engine()
>>> loader_app = engine.apps.get["tk-multi-loader2"]
>>> selected = loader_app.open_publish("Select Geometry Cache", "Select", ["Alembic Cache"])
>>> print selected

関連するアプリケーションとドキュメント

Scene Breakdown

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。 Scene Breakdown アプリケーションは、シーンに読み込まれている(参照されている)項目のリストを表示し、期限切れの項目を通知します。 概要から複数のオブジェクトを選択して更新ボタンをクリックすると、選択したすべての項目が最新のパブリッシュ バージョンを使用するよう更新できます。

パブリッシュ

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。 Multi Publish は、アーティストが Shotgun にファイルをパブリッシュするために使用できるワークフロー アプリケーションです。 このアプリケーションは、UI はシンプルながら中核機能は高度にカスタマイズ可能で、作業シーンとその依存関係にある要素(Maya シーン、Nuke スクリプト、OBJ、Alembic キャッシュ、カメラ、テクスチャなど)のファイルやデータを任意に組み合わせてパブリッシュするよう簡単に設定できます。 Multi Publish は既定の設定すべてで使用されるため、Nuke でパブリッシュをレンダリングするための Maya での Alembic キャッシュの生成、Photoshop でのアート リファレンス管理、または Shotgun やシェル環境でのプレートの取得までワークフローをサポートするように簡単に設定できます。

パブリッシュ

アーティストはパブリッシュ アプリケーションを使用して作品をパブリッシュすることにより、下流行程に関わるアーティストが自分の作品を使用できるようにすることができます。 アーティストのコンテンツ作成ソフトウェア内における従来のパブリッシュ ワークフローと、ディスク上にある任意のファイルのスタンドアロン パブリッシュがサポートされます。 コンテンツ作成ソフトウェアで作業し、基本的な Shotgun 統合を使用すると、このアプリケーションはアーティストがパブリッシュする項目を自動的に探して表示します。 さらに高度な制作上のニーズがある場合は、アーティストのワークフローを操作するカスタム パブリッシュ プラグインを作成することもできます。

Shotgun パネル

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。 Shotgun パネルを使用すると、埋め込まれたパネルから Shotgun の情報にすばやくアクセスできます。 ユーザが現在作業しているタスクに関する情報に簡単にアクセスでき、アクティビティ ストリーム、ノート、タスク、バージョン、およびパブリッシュにもすぐにアクセスできます。 チームの他のメンバーから確認のために送信されたバージョンを再生します。 アプリケーション内からノートに直接返信できます。 パイプラインで依存関係の情報を追跡する場合は、Shotgun パネルからもこの情報を直接参照できます。

Shotgun の作業ファイル

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。 このアプリケーションは、Shotgun Pipeline Toolkit でファイルを管理する場合の基礎部分を構成します。 これにより、さまざまな Shotgun エンティティ間をすばやく移動し、作業をすばやく開始することが可能になります。 アプリケーションがシーンの裏でパスを管理するため、パスを指定する必要はありません。 このアプリケーションを使用すると、作業領域内の作業ファイルを管理し、他のユーザと作業を簡単に共有できます。

管理者ガイド

これは Shotgun 統合の管理者ガイドです。

Toolkit Pipeline のチュートリアル

このドキュメントには、高度な方法で Toolkit を使用してシンプルなエンドツーエンドのパイプラインをセットアップする、テクニカル ディレクタ(TD)向けの段階的なチュートリアルを用意しています。 このチュートリアルを終了した新しい Toolkit ユーザは、プラットフォームの基本的な要素と貴社固有のニーズに基づいたカスタマイズの方法を習得できます。 また、すぐに使用できる Toolkit アプリケーションと、アーティストのワークフローに合わせた利用方法についても紹介します。
このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。

ユーザ ガイド

これは Shotgun 統合のユーザ ガイドです。

インストールと更新

Shotgun Pipeline Toolkit にこのアプリケーションを追加する

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

> tank Project XYZ install_app asset tk-maya tk-multi-loader2

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

この項目が既にプロジェクトにインストールされている場合に最新バージョンを取得するには、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-multi-loader2 からアクセスできます。

特殊な要件

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

環境設定

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

publish_filters

タイプ: list

説明: パブリッシュ リストに適用する追加の shotgun フィルタのリストです。 これらは他のフィルタよりも先に適用されるため、特定のステータスを持つ項目を非表示にすることなどが可能です。

entity_mappings

タイプ: dict

説明: エンティティ タイプとアクションを関連付けます。 アクションはアクション フック内ですべて定義されます。

filter_publishes_hook

タイプ: hook

既定値: {self}/filter_publishes.py

説明: 必要に応じて、現在の場所で Shotgun から返されたパブリッシュの未修正のリストをフィルタリングできるフックを指定します。

action_mappings

タイプ: dict

説明: パブリッシュされたファイルのタイプとアクションを関連付けます。 アクションはアクション フック内ですべて定義されます。

menu_name

タイプ: str

既定値: Load

説明: Shotgun メニューに表示される名前です。

entities

タイプ: list

既定値: [{u'caption': u'Project', u'publish_filters': [], u'type': u'Hierarchy', u'root': u'{context.project}'}, {u'publish_filters': [], u'entity_type': u'Task', u'hierarchy': [u'entity', u'content'], u'caption': u'My Tasks', u'filters': [[u'task_assignees', u'is', u'{context.user}'], [u'project', u'is', u'{context.project}']], u'type': u'Query'}]

説明: この設定は左側に表示されるさまざまなタブを定義します。 各タブは、ツリーを形成するいくつかの Shotgun フィールドでグループ化された Shotgun クエリーを表します。 この設定はディクショナリのリストです。 リスト内の各ディクショナリが 1 つのタブを定義します。 type キーが「Hierarchy」に設定されたディクショナリでは、次のキーを指定する必要があります。caption はタブの名前を指定し、root は表示するプロジェクト階層のルートへのパスを指定します。 type キーが「Query」に設定されたディクショナリでは、次のキーを指定する必要があります。caption はタブの名前を指定し、entity_type は表示する Shotgun エンティティ タイプを指定します。 filters は標準的な API Shotgun フィルタのリストです。 hierarch は、ツリー グループを定義する Shotgun フィールドのリストです。 必要に応じて、メイン ビューにロードされるパブリッシュ リストに適用する Shotgun API フィルタが含まれる publish_filters キーを指定できます。

actions_hook

タイプ: hook

既定値: {self}/{engine_name}_actions.py

説明: アクション管理のすべてのメソッドを制御するフックです。

title_name

タイプ: str

既定値: Loader

説明: UI ダイアログのタイトルに表示される名前です。

download_thumbnails

タイプ: bool

既定値: True

説明: サムネイルを Shotgun からダウンロードするかどうかを制御します。 サムネイルはローダーの操作性を大幅に向上させるためダウンロードすることを強くお勧めしますが、一部の状況では、帯域幅またはインフラ上の制約が原因で難しい場合があります。

フォローする

0 コメント

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