統合開発者ガイド

目次:

      パネル

            表示内容を設定する

            アクションを設定する

      パブリッシャー

            概要

                  パブリッシュ フェーズの概要

            コレクタ

                  パブリッシュ項目

                  環境設定

            パブリッシュ プラグイン

                  プラグイン インタフェース

                  環境設定

                  ロギング

            パス情報フック

                  環境設定

      ローダー

      高度な機能

      Shotgun Toolkit でツールを簡単に開発

パネル

パネル アクションの例については、https://github.com/shotgunsoftware/tk-multi-shotgunpanel/tree/master/hooks を参照してください。

表示内容を設定する

詳細領域の値とリストは両方とも shotgun_fields フックから設定可能です。 正確な値を表示するために、このフックをサブクラス化して実装を変更できます。

システムをテンプレート化する

フックはシンプルなテンプレート言語をサポートしているため、優れた柔軟性が得られます。 また、Qt でサポートされている HTML サブセットもサポートしているため、表示される値の色、フォント サイズ、ウェイトなどを制御できます 。 テンプレート言語は次のように機能します。

  • Shotgun の値は <b>Description:</b> {description} のように {brackets}で囲まれています。 このテンプレートをレンダリングすると、{description} の部分が説明フィールドの値で置き換えられます。

  • 値が空以外の場合にのみ表示される値にオプションの接頭辞または接尾辞を指定する場合、{[Prefix]sg_field[suffix]} 構文を使用できます。 両方の値が追加されている場合、テンプレート {[Start: ]start_date} {[End: ]end_date}Start: 12 July 2009 End: 14 July 2012 をレンダリングします。ただし、終了日を設定していない場合は Start: 12 July 2009 をレンダリングします。

  • 一部の値が設定されていない場合はフォールバックを定義することができます。 Shotgun のバージョンについては、プロデューサがアーティストの代わりにバージョンを送信するというワークフローをサポートするため、artist フィールドが created_by フィールドよりも優先されます。 この場合、バージョンはプロデューサによって作成されますが、artist フィールドはアーティストに設定されます。 ただし、いつもそういうわけではありません。アーティストが自分の作業を送信するパイプラインでは、アーティスト欄は空欄になります。 バージョンを表示する場合、最初に artist フィールドを確認できるようにしておくと役立ちます。今回このフィールドは設定されていないため、created_by フィールドにフォールバックします。 このようにするには、Created By: {artist|created_by} のように構文 {field1|field2} を使用します。 {[Created By: ]artist|created_by} のようにオプション フィールドを組み合わせることができます。

このフックには次のメソッドが含まれます。

リストに表示される項目を制御する

get_list_item_definition() メソッドは、Shotgun のエンティティ タイプを考慮して、さまざまなリストの項目の外観を制御するディクショナリを返します。 たとえば、top_lefttop_right、および body といったキーを持つディクショナリを返します。

{
 "top_left": "<big>{code}</big>",
 "top_right": "{updated_at}",
 "body": "By: {created_by}<br>Description: {description}"
}

上部の細部領域を制御する

get_main_view_definition() メソッドは、Shotgun のエンティティ タイプを考慮して、title キーと body キーを持つディクショナリを返します。 これらの値は、詳細領域のオブジェクトの外観を次のように制御します。

{
 "title": "{type} {code}",
 "body": "By: {created_by}<br>Description: {description}"
}

情報タブに表示されるフィールドを制御する

get_all_fields() メソッドは、Info タブで任意のエンティティがレンダリングされる場合に表示するフィールドのリストを返します。

アクションを設定する

アクションは Shotgun のデータを操作するコードの小さなスニペットです。 例を次に示します。

  • 任意の Shotgun バージョンの RV を起動するアクション
  • 任意のタスクに自分に割り当てることができるアクション
  • Maya リファレンスとして Maya に Shotgun パブリッシュをロードするアクション

アクションの実際のペイロードはアクション フックで定義されます。 アクションのロジックを定義したら、アプリケーション設定の Shotgun オブジェクトにこのアクションをマップすることができます。 次に、このアクション マッピングの例を示します。

action_mappings:
  PublishedFile:
  - actions: [reference, import]
    filters: {published_file_type: Maya Scene}
  - actions: [texture_node]
    filters: {published_file_type: Rendered Image}
  Task:
  - actions: [assign_task]
    filters: {}
  Version:
  - actions: [play_in_rv]
    filters: {}

上記の例では、referenceimporttexture_nodeassign_task、および play_in_rv といったアクションを使用します。 次に、さまざまな Shotgun のオブジェクトと条件にこのアクションをマップします。 たとえば import アクションは、タイプが Maya Scene のすべてのパブリッシュに表示されるよう要求しています。

オブジェクトがパネルにロードされると、上記のアクション設定が読み込まれ、分析されます。 現在のオブジェクトに適したアクションのリストが決定され、generate_actions() フック メソッドが実行されます。 この特定の Shotgun オブジェクトに対してアクションを実行できるかどうかをフック コードが判断できるように、指定したエンティティの Shotgun データはこの時点でフックに渡されます。 この方法により、各フックで表示前にチェックを実行できます。 たとえば、play_in_rv フックはメディアをローカルで利用できる場合にのみ意味を持ちます。設定でセットアップされたアクション マッピングは指定した Shotgun エンティティで有効にするアクションをパネルに通知しますが、指定したオブジェクトに適していないと generate_actions() メソッドによって判断された場合は、すべてのアクションが表示されない可能性があります。

generate_actions() メソッドから返されるアクションはアクション メニューに表示されます。ユーザがクリックすると、execute_acton() フック メソッドが呼び出されてアクションが実行されます。

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

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

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

キーワード {self} は、フックのアプリケーションの hooks フォルダを確認するように Toolkit に指示します。 このフックをユーザが設定した実装で上書きする場合は、値を {config}/panel/maya_actions.py に変更します。 これにより、設定フォルダ内の hooks/panel/maya_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_data, actions, ui_area):
        """
        Returns a list of action instances for a particular object.
        The data returned from this hook will be used to populate the 
        actions menu.

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

        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 object, 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.

        :param sg_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_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_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_data: Shotgun data dictionary with all the standard publish fields.
        :returns: No return value expected.
        """

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

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

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

action_mappings:
  PublishedFile:
  - actions: [reference, import, my_new_action]
    filters: {published_file_type: Maya Scene}
  Version:
  - actions: [play_in_rv]
    filters: {}

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

パブリッシャー

概要

パブリッシュ用に項目をアーティストに表示する方法やそれらのファイルを処理する方法を制御するフックにより、パブリッシュ アプリケーションを高度にカスタマイズ可能です。 以下のセクションでは、スタジオで使用可能なすべてのフックと API の概要を説明しています。

パブリッシュ アプリケーションの使用方法の詳細については、ユーザ ガイドを参照してください。 第 1 世代のパブリッシャーの詳細を確認するには、従来型のパブリッシャーに関するドキュメントにアクセスしてください。

パブリッシュ フェーズの概要

パブリッシャーには、開発者が知っておくべきいくつかの実行フェーズがあります。

  • 収集: パブリッシャーが起動している場合は、現行のユーザ セッションの項目がコレクタ フックを介して収集されます。 また、ファイルがパブリッシュ UI にドラッグ アンド ドロップされたときにも収集が発生します。

  • 承認: 収集後は、設定されたパブリッシュ プラグインが収集された項目に対して実行されるかどうかを決定できます。 最初の承認パスは、項目のタイプをプラグインのフィルタと照合することによって実行されます。 項目のタイプがプラグインのフィルタと一致する場合、より具体的な承認ロジックを実行するためにプラグインでメソッドが呼び出されます。

  • 検証: ユーザが UI で Validate ボタンまたは Publish ボタンをクリックすると、1 つまたは複数のプラグインによって承認された項目が検証されます。 検証フェーズは、項目をエラーなしでパブリッシュできるようにするために項目の状態に対して検査を実行する目的で使用されます。

  • パブリッシュ: Publish ボタンをクリックすると、一致した各プラグインによって項目が処理されます。 プラグインは、Shotgun でのパブリッシュ エントリの作成やレビュー可能なメディアのアップロードなど、スタジオによって求められるアクションを実行できます。

  • 確定: パブリッシュ フェーズが完了すると、必要なクリーンアップまたはサマリー レポートを処理するためにプラグインの確定フェーズが実行されます。

コレクタ

collector フックは、パブリッシュする項目の現在のユーザ セッションを処理します。 また、パブリッシャーにドラッグ アンド ドロップされたファイルも処理します。 その主な目的は、項目を検出および分類し、パブリッシュ用にユーザに表示することです。 次の 2 つのメソッドが実装されている必要があります。

process_file(parent_item, path)

このメソッドは、外部ソースからパブリッシャーの UI にドロップされたパスを受け入れます。 パスはメソッドによって分析され、1 つまたは複数のパブリッシュ項目が作成されて、パブリッシュ用にユーザに表示されます。 項目は、指定された親項目の子として作成する必要があります。

process_current_session(parent_item)

このメソッドは、ユーザのコンテンツ作成セッション(Maya のシーン、Nuke スクリプト、Photoshop ドキュメントなど)を分析し、 1 つまたは複数のパブリッシュ項目を作成します。 これらの項目は、既にディスクに書き出されたファイルまたはパブリッシュ プロセス中に書き出されるセッション内のコンポーネントを表す場合があります。 項目は、指定された親項目の下にあるサブツリーとして作成する必要があります。

パブリッシュ項目

作成

パブリッシュ項目は、既存の項目(通常は、コレクタ メソッドの 1 つに指定された parent_item)の create_item メソッドを使用して作成されます。

create_item(item_type, display_type, name)

item_type は、項目のタイプを表す文字列です。 これは任意の文字列にすることができますが、通常はスタジオの規則によって定義されます。 この値は、パブリッシュ プラグインが処理対象の項目を識別するために使用されます。 基本の Shotgun の統合では、階層ドット表記を使用します。 たとえば、file.imagefile.moviemaya.scene のようになります。

display_type 引数は項目タイプに対応していますが、表示目的にのみ使用されます。

たとえば、Image FileMovie FileMaya Scene のようになります。

name 引数は項目インスタンスの表示名です。 これは、Nuke または Houdini のファイルまたはノードの名前、あるいはその両方の組み合わせにすることができます。 この値はユーザに表示されるため、ユーザは現行のセッションまたはディスク上のファイルに関して項目が表す意味を容易に識別できます。

メソッドとプロパティ

項目が作成されたら、次のメソッドとプロパティを使用して、ユーザに表示するためにさらにカスタマイズできます。

関連項目

parent

親パブリッシュ項目です(読み取り専用)。

children

子パブリッシュ項目のリストです(読み取り専用)。

項目情報

context

この項目に関連付けられたコンテキストです。 コンテキストが定義されていない場合は、親コンテキストが返されます。また、親コンテキストが定義されていない場合は、None が返されます。

description

この項目に関するパブリッシュの説明で、ユーザに表示され、Shotgun の最終的なパブリッシュに関連付けられます。 この項目の説明が設定されていない場合は、親項目の説明が返されます。 親に関する説明が設定されていない場合、None が返されます。

display_type

パブリッシュ項目の作成時に定義された表示タイプです。

name

作成時に定義された項目の表示名です。

properties

項目に関する任意のデータを保存できる自由形式のディクショナリです。 ディクショナリ自体のプロパティは読み取り専用(item.properties = my_properties の呼び出しが無効)ですが、任意のキー値のペアをディクショナリ内に設定することができます。 このプロパティにより、パブリッシュ プラグイン全体のデータおよびプラグイン内のさまざまなパブリッシュ フェーズ間の項目のデータを保存することができます。

thumbnail

QPixmap として関連付けられているサムネイルです。 サムネイルとは項目を視覚的に表すためのイメージのことで、イメージのサムネイルやシーンのスクリーンショットなどがあります。 項目に対してサムネイルが定義されていない場合、親サムネイルが返されます。 サムネイルが存在しない場合、値は None です。

type

パブリッシュ項目の作成時に定義された項目のタイプです。

項目の状態

checked

パブリッシュ項目のチェック ボックスを既定でオンにする必要があるかどうかを示す bool です。 項目のチェック状態は子項目およびパブリッシュ プラグインによっても影響を受けます。 既定値は True です。

enabled

パブリッシュ UI で項目を有効にするかまたは無効にするかを示す bool です。 checked プロパティと組み合わせて使用すると、必須のパブリッシュ プラグインで、ユーザが無効にできないということが示せます。 既定値は True です。

expanded

パブリッシュ UI で項目を展開するか折りたたむかを示す bool です。 既定値は True です。

thumbnail_enabled

パブリッシュ項目のサムネイルの生成を有効にするかまたは無効にするかを示す bool です。 既定値は True です。

アイコンとサムネイル

set_thumbnail_from_path(path)

パブリッシュ項目のサムネイルを指定されたパスから作成するためのヘルパー メソッドです。

set_icon_from_path(path)

パブリッシュ項目のアイコンを指定されたパスから作成するためのヘルパー メソッドです。

環境設定

コレクタ フックは、タイプが hook のパブリッシュ アプリケーションの collector 設定によって構成されます。 hook 設定データ タイプの詳細については、開発者用ドキュメントを参照してください。

基本の Shotgun の統合の場合、規則として、パブリッシャーにドラッグ アンド ドロップされるファイルを処理するための基本クラス コレクタを使用します。 特定のコンテンツ作成ソフトウェアを処理するコレクタは、基本コレクタのサブクラスになります。 一例として、コレクタは基本設定では次のようになります。

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

パブリッシュ プラグイン

パブリッシュ プラグインは、収集されたパブリッシュ項目を処理するフックです。 すべての項目が収集された後、パブリッシャーは項目を適切なパブリッシュ プラグインと一致させようとします。 一致するプラグインはすべて、パブリッシュ項目階層内に子タスクとして表示されます。

プラグイン インタフェース

次のメソッドおよびプロパティがパブリッシュ プラグイン フックによって定義される必要があります。

icon

このプラグインのアイコンとして使用する、ディスク上のイメージへのパスです。

name

このプラグインの 1 行の名前です。

description

プラグインが実行する内容の、詳細な複数行にわたる説明です。 これにはフォーマット用の単純な HTML を含めることができます。

settings

このプラグインが acceptvalidatepublish、および finalize メソッドで設定パラメータを介して受け取ることを予期している設定を定義するディクショナリです。 ディクショナリは次の形式になります。

    {
        "Settings Name": {
            "type": "settings_type",
            "default": "default_value",
            "description": "One line description of the setting"
        },

        "Another Setting": {
            "type": "settings_type",
            "default": "default_value",
            "description": "One line description of the setting"
        }
    }

タイプ文字列は、ツールキットが環境設定の一部として受け入れるデータ タイプのいずれかである必要があります。

item_filters

このプラグインに関連がある項目タイプのリストです。 このリスト内のエントリに一致する項目のみ、適用メソッドに表示されます。 文字列には、* などの glob パターンを含めることができます(例: ["maya.*", "file.maya"])。

accept(settings, item)

項目がこのプラグインに関連しているかどうかを判断するために、パブリッシャーによって呼び出されます。 item_filters プロパティによって定義されたフィルタに一致する項目のみ、このメソッドに表示されます。

ここで適用された項目ごとにパブリッシュ タスクが生成されます。 次のブーリアンとともにディクショナリを返します。

  • accepted: プラグインが何らかの形でこの値に関連しているかどうかを示します (必須)。
  • enabled: True の場合、プラグイン インスタンスが UI で有効になり、そうでない場合は無効になります。 オプションで、既定では True です。
  • visible: True の場合、プラグイン インスタンスは UI で表示され、そうでない場合は非表示になります。 オプションで、既定では True です。
  • checked: True の場合、プラグイン インスタンスは UI でチェックがオンになり、それ以外の場合はチェックがオフになります。 オプションで、既定では True です。

settings 引数は、設定プロパティで返されるキーと一致する設定のディクショナリです。 値は、設定の構成済みのインスタンスです。

item 引数は、処理する項目を表します。

validate(settings, item)

指定された項目を検証して、パブリッシュしても問題がないことを確認します。 有効かどうかを示すブーリアンを返します。

settings 引数は、設定プロパティで返されるキーと一致する設定のディクショナリです。 値は、設定の構成済みのインスタンスです。

item 引数は、処理する項目を表します。

publish(settings, item)

指定された項目および設定のパブリッシュのロジックを実行します。

settings 引数は、設定プロパティで返されるキーと一致する設定のディクショナリです。 値は、設定の構成済みのインスタンスです。

item 引数は、処理する項目を表します。

finalize(settings, item)

確定パスを実行します。 すべてのパブリッシュ タスクが完了したら、このパスが 1 回実行されます。

settings 引数は、設定プロパティで返されるキーと一致する設定のディクショナリです。 値は、設定の構成済みのインスタンスです。

item 引数は、処理する項目を表します。

環境設定

パブリッシュ プラグイン フックは、パブリッシュ アプリケーションの publish_plugins 設定によって設定します。 設定は、フックのリストとして定義されます。 hook データ タイプの詳細については、開発者用ドキュメントを参照してください。

基本の Shotgun の統合における Maya 統合のためのパブリッシュ プラグイン設定は次のようになります。

    publish_plugins:
        - '@common.settings.tk-multi-publish2.publish_file'
        - '@common.settings.tk-multi-publish2.upload_version'
        - name: Begin file versioning
          hook: "{config}/tk-multi-publish2/maya.basic/start_version_control.py"
          settings: {}
        - name: Publish to Shotgun
          hook: "{config}/tk-multi-publish2/maya.basic/publish_maya_session.py"
          settings: {}

定義済みの 2 つのプラグインが最初に組み込まれており、標準ファイル用のメディアのパブリッシュとアップロードを処理します。 3 番目と 4 番目のプラグインは Maya セッションのパブリッシュを処理します。

任意の数のパブリッシュ プラグインをパブリッシャーのインスタンス内で構成できます。

ログ記録

コレクタおよびパブリッシュ プラグイン フック内のログは、パブリッシャーの進行状況の詳細ウィジェットに表示されます。 標準のログ メソッドを使用して、情報、警告、エラー、およびデバッグ メッセージをユーザに表示できます。

パブリッシャーには特別なログ ハンドラがあり、これは標準の extra ディクショナリを利用してログ メッセージの隣にアクション ボタンを表示します。 次の例は、アクション ボタンの認識済みのディクショナリ フォームを表します。

action_button

クリックするとコールバック メソッドを実行する一般的なボタンです。 例:

    {
        "label": "Hello, world!",
        "tooltip": "This button says hello to the world.",
        "callback": self._hello_world,
        "args": {"foo": 123, "bar": 456}
    }

label は、ボタンに表示されるテキストです。 tooltip は、ボタンのツールチップです。 callback は、クリックすると実行されるメソッドです。 args は、コールバックに指定する引数です。

action_show_folder

システムのファイル ブラウザで指定されたパスのフォルダを表示するための一般的なアクションです。 例:

    {
        "label": "Show Publish Folder",
        "tooltip": "Show the publish path in a file browser.",
        "path": path,
    }

path は、ファイル ブラウザに表示するファイルまたはフォルダへのパスです。 label および tooltip はオプションです。 既定値はそれぞれ Show Folder と Reveal in the system's file browser です。

action_show_in_shotgun

Shotgun でエンティティの詳細ページを表示するための一般的なアクションです。 例:

    {
        "label": "Show Version",
        "tooltip": "Show uploaded Version in Shotgun.",
        "entity": entity,
    }

entity は、Shotgun に表示されたエンティティに対応する標準の Shotgun エンティティ ディクショナリです。 label および tooltip はオプションです。 既定値はそれぞれ Show Entity と Reveal the entity in Shotgun です。

action_show_more_info

1 行のログ出力に収まる内容よりも詳細な情報を表示するための一般的なアクションです。 出力はテキスト ブラウザのポップ アップ ダイアログに表示されます。 例:

    {
        "label": "Show Error",
        "tooltip": "Show the full error stack trace.",
        "text": formatted_stack_trace,
    }

text は、ポップアップ ダイアログに表示されるテキストの長い文字列です。 label および tooltip はオプションです。 既定値はそれぞれ More Info... と Show additional logging info です。

action_open_url

既定のブラウザで指定された URL を開くための一般的なアクションです。 例:

    {
        "label": "Show Docs",
        "tooltip": "Show the associated documentation.",
        "url": url,
    }

url は、開く URL です。 label および tooltip はオプションです。 既定値はそれぞれ Open URL と Opens a url in the appropriate browser です。

パス情報フック

path_info フックには、ファイル パスから情報を推測するために基本の Shotgun の統合によって使用されるメソッドが含まれます。 バージョンとフレーム番号の ID、パブリッシュの表示名、イメージ シーケンスのパスなどが該当します。 スタジオは、独自の命名規則とパス構造を構成するために、これらのパス処理メソッドを上書きできます。

path_info フックのすべてのメソッドは、パブリッシャーの util モジュールを介して公開され、コレクタ フックおよびパブリッシュ フック内で容易に呼び出せるようになっています。 フックで定義されているメソッドは次のとおりです。

get_publish_name(path, sequence=False)

ファイルのパスを指定して、パブリッシュに使用する表示名を返します。 通常、これはパスとバージョン番号が削除された名前になります。これは後続のバージョンがパブリッシュされるときにパブリッシュ名の整合性を保持するためです。 例:

    # versioned file. remove the version
    in: /path/to/the/file/scene.v001.ma
    out: scene.ma

    # image sequence. replace the frame number with #s
    in: /path/to/the/file/my_file.001.jpg
    out: my_file.###.jpg

path 引数は、パブリッシュされる可能性があるファイルへのパスです。 sequence 引数が True の場合、パスをシーケンスの名前として処理し、フレーム番号をプレースホルダで置き換えます。

このメソッドは、指定されているパスのパブリッシュ表示名である文字列を返します。

get_version_number(path)

指定されたパスからバージョン番号を抽出します。 これは、パブリッシュ時にファイルに関連付けるバージョン番号を認識する必要があるプラグインによって使用されます。

path 引数は、パブリッシュされる可能性があるファイルへのパスです。

このメソッドは、指定されたパスのバージョン番号を表す整数を返します。 バージョンが見つからない場合、None が返されます。

get_frame_sequence_path(path, frame_spec=None)

フレーム数を指定したフレームを指定して、シーケンスのパスを返します。このパスでは、フレーム番号が {FRAME}%04d、または $F などの特定のフレーム指定に置き換えられます。

path 引数は、フレーム番号を含む入力パスです。 frame_spec 引数は、フレーム番号を置き換えるフレーム指定を表します。

このメソッドは、フレーム シーケンスのフル パスを表す文字列を返します。

get_frame_sequences(folder, extensions=None, frame_spec=None)

フォルダが指定されている場合、そこに含まれるファイルを検証し、フレーム番号を含むと思われるファイルを検索します。

path 引数は、ファイルのシーケンスが含まれている可能性があるフォルダへのパスです。

extensions 引数は、パスを取得するためのファイル拡張子のリストです。 指定しない場合、拡張子の一致は無視されます。

frame_spec 引数は、返されたシーケンス パス内のフレーム番号を表すために使用する文字列です。

このメソッドは、識別されたフレーム シーケンスごとにタプルのリストを返します。 タプルの最初の項目は、入力されたフレーム指定にフレーム番号が置き換えられたシーケンス パスです。 フレーム指定が入力されていない場合、ファイル内でパディングが検出された Python 文字列フォーマットの仕様が返されます。 例:

    # method call:
    get_frame_sequences(
        "/path/to/the/folder",
        extensions=["exr", "jpg"],
        frame_spec="{FRAME}"

    )

    #results:
    [
        (
            "/path/to/the/supplied/folder/key_light1.{FRAME}.exr",
            [<frame_1_path>, <frame_2_path>, ...]
        ),
        (
            "/path/to/the/supplied/folder/fill_light1.{FRAME}.jpg",
            [<frame_1_path>, <frame_2_path>, ...]
        )
    ]

get_version_path(path, version)

バージョン番号を含まないパスを指定すると、指定されたバージョン番号を含むパスが返されます。 指定されたパスでバージョン番号が検出されると、パスはそのまま返されます。

path 引数は、バージョン番号情報を挿入するパスです。

version 引数は、パスに挿入する番号です。

このメソッドは、指定されたバージョン番号を挿入して変更されたパスを返します。

get_next_version_path(path)

ファイル パスが指定されている場合、次のバージョンへのパスが返されます。 これは通常、現在の作業ファイルを次のバージョン番号に保存する必要があるプラグインの、自動バージョニング ロジックによって使用されます。 指定されたパスでバージョンを特定できない場合、None が返されます。これは次のバージョン パスを判別できないことを示します。

path 引数は、パブリッシュされる可能性があるファイルへのパスです。

メソッドにより、指定されたパスの次のバージョンへのパスが返されます。

util メソッド

その他のメソッドは、パブリッシュ プラグインの作成時に役立つ可能性がある、パブリッシャーの util モジュールによって定義されます。 これらのメソッドについて以下に説明します。

get_file_path_components(path)

指定されたパスのファイル コンポーネントを判別するための便利なメソッドです。

path 引数は、コンポーネント化するファイルへのパスです。

このメソッドは、次の形式でファイル パス コンポーネントを返します。

    # path="/path/to/the/file/my_file.v001.ext"
    {
        "path": "/path/to/the/file/my_file.v001.ext",
        "folder": "/path/to/the/file" ,
        "filename": "my_file.v001.ext",
        "extension": "ext",
    }

    # path="/path/to/the/folder"
    {
        "path": "/path/to/the/folder",
        "folder": "/path/to/the" ,
        "filename": "folder",
        "extension": None,
    }

環境設定

パス情報フックは、パブリッシュ アプリケーションの path_info 設定によって設定可能です。 hook データ タイプの詳細については、開発者用ドキュメントを参照してください。

ローダー

ロード操作の例については、https://github.com/shotgunsoftware/tk-multi-loader2/tree/master/hooks を参照してください。

高度な機能

Shotgun Toolkit でツールを簡単に開発

独自のアプリケーションを作成できることをご存じですか。 各エンジンは、Python および PySide に基づく一貫性のあるインタフェースを公開しているため、Nuke、Photoshop、および 3dsmax で動作する 1 つのアプリケーションを作成できます。 Core API 機能を使用すれば、スタジオ用に大規模なパイプライン スタックを構築する必要がなくなり、代わりに開発リソースを制作上の問題解決に集中させることができます。 当社の Toolkit を使用すると、プロジェクト間でツールを容易に再利用できます。命名規則やその他の要件が変化する場合には、アプリケーションを再構成するだけで済みます。 Toolkit に組み込まれた GIT と Github のサポートによってツールを安全に展開し、開発時にコードをすばやくホットロードしましょう。 独自の開発サンドボックスで作業し、TD と早期採用者を招いてテストしてください。プロジェクトに関わるすべての人にコードを適用する必要はありません。

特殊マークアップ「TANK_NO_HEADER」を追加して、ヘッダが不要だということをドキュメント作成システムに通知します。

フォローする

0 コメント

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