Application Launcher

アプリケーションの起動

アプリケーションを起動し、Shotgun Pipeline Toolkit を初期化します。
最新バージョン: v0.10.2 (製品)
バージョン番号は、セマンティック バージョニング基準に従っています。
システム名: tk-multi-launchapp

注: このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。詳細については、『Shotgun 統合ユーザ ガイド』を参照してください。
概要
ドキュメント
      仕組み
            起動時にコマンド ライン引数を使用する
            環境変数を設定して起動時に動作を自動化する
            エンジンをまだ指定していないアプリケーションを起動する
      技術の詳細
            3DSMax
                  追加の設定
            Hiero
            Maya
                  追加の設定
            MotionBuilder
                  追加の設定
            Nuke
                  追加の設定
            Photoshop
                  追加の設定
インストール、更新、開発
設定オプション

起動アプリケーションにより、Shotgun や他の環境からアプリケーションに簡単に移動できます。Maya、Nuke、Photoshop など、数多くの共通アプリケーションをサポートします。完全なリストについては、ドキュメントを参照してください。新しいアプリケーション用のエンジン作成に伴い、サポートを定期的に追加しています。アプリケーションが起動されると、Shotgun のコンテキスト(現在の作業領域)が設定されるとともに、Shotgun Pipeline Toolkit の初期化と起動が行われます。また、ユーザ作業用サンドボックスを使用している場合は、ディスク上のフォルダ作成も処理されます。アプリが起動すると、Shotgun で選択したコンテキストを中心とする Shotgun メニューが表示され、ファイル システムの正しい部分からただちに作業を開始できます。

ドキュメント

このアプリケーションには、Shotgun からサポート対象のアプリケーションに簡単に移動できるショートカットがあります。選択した設定に応じて、Shotgun のさまざまなエンティティで呼び出される Shotgun アクション項目を登録します。

仕組み

設定オプションによって異なりますが、エンティティを右クリックしたり、Shotgun アクション メニューや歯車メニューを使用すると、メニュー項目が Shotgun に表示されます。

たとえば、これはサイトの設定でこのアプリを 3 回使用し、Maya、Nuke、Photoshop にメニューを実装した場合のスクリーンショットです。

Tank アクション メニュー

現在サポートされているアプリケーションとエンジンは次のとおりです。

  • 3DSMax
  • Hiero
  • Maya
  • MotionBuilder
  • Nuke
  • Photoshop
  • Mari
  • Houdini
  • Softimage
  • Flame

起動時にコマンド ライン引数を使用する

多くのアプリケーションにはコマンド ライン オプションがあり、異なるエディションのアプリケーションを選択したり( Nuke と NukeX など)、使用に関する他のさまざまな設定を行う際に呼び出すことができます。ランチャーのアプリには、この目的に合わせて設定できる各 OS 用の「引数」の設定があります。たとえば、ここで「--nukex」と設定すると、これがコマンド ラインの起動に追加され、NukeX が通常の Nuke の代わりに実行されます。

NukeX の起動の例

launch_nuke:
  engine: tk-nuke
  extra: {}
  hook_app_launch: default
  hook_before_app_launch: default
  linux_args: '--nukex'
  linux_path: '@nuke_linux'
  location: {name: tk-multi-launchapp, type: app_store, version: v0.2.15}
  mac_args: '--nukex'
  mac_path: '@nuke_mac'
  menu_name: Launch Nuke
  windows_args: '--nukex'
  windows_path: '@nuke_windows'

環境変数を設定して起動時に動作を自動化する

多くの場合、アプリケーションには、パイプラインで適切に機能するように設定された特定の環境変数やプラグイン パスなどが 必要になります。起動アプリケーションは「before_app_launch」フックを介してこのようなケースをカバーしており、アプリケーションの起動のたびに実行されるコードのスニペットを定義できます。既定では、「before_app_launch」フックは何も実行しない単純なパススルーですが、このドキュメントの指示に従ってオーバーライドすることができます。

たとえば、Zync Render を使用する場合は、Zync Maya プラグイン ディレクトリを $PYTHONPATH と $XBMLANGPATH の両方に含める必要があります。起動アプリでこの環境変数を設定するには、次のように「before_app_launch」フックのコード数行を更新します。

環境変数の設定例

def execute(self, **kwargs):
    """
    The execute functon of the hook will be called to start the required application        
    """

    # Example to show how to set env vars on Maya launch

    # Append the desired path to the existing $PYTHONPATH to ensure
    # everything upstream still works
    os.environ["PYTHONPATH"] = os.environ["PYTHONPATH"] + os.pathsep + "~/Library/zync/zync-maya"

    # Set $XBMLANGPATH to the desired path, may need to append it as
    # with $PYTHONPATH if already defined in your pipeline
    os.environ["XBMLANGPATH"] = "~/Library/zync/zync-maya"

「before_app_launch」を使用すると、Shotgun の更新など、他の動作を自動化することもできます。たとえば、起動アプリが実行されるたびに(タスクからの起動のみ)タスク ステータスが更新されるように起動アプリを設定できます。次の例では「in progress」に更新するよう設定しています。

タスク ステータス更新の自動化の例

def execute(self, **kwargs):
    """
    The execute functon of the hook will be called to start the required application        
    """

    # If there is a Task in the context, set its status to 'ip'

    if self.parent.context.task:
        task_id = self.parent.context.task['id']
        data = {
            'sg_status_list':'ip'
        }
        self.parent.shotgun.update("Task", task_id, data)

ご想像のとおり、多くの選択肢があります。起動アプリの目的は、パイプラインのニーズに合わせた柔軟性を提供することです。

エンジンをまだ指定していないアプリケーションを起動する

起動アプリケーションを使用して、Toolkit のエンジンをまだ指定していないアプリケーションを起動することもできます。この場合、フォルダは、起動元のショット、タスク、またはアセットのディスク上に作成されます。アプリケーションは起動されますが、アプリケーション起動後にコードは何も実行されず、アプリケーション内には Shotgun メニューが何も表示されません。つまり、Shotgun 内の Toolkit でまだサポートされていないアプリケーションを起動できるということです。

これを行うには、エンジンのオプションを空にしたまま、起動するアプリケーションのパスを起動アプリケーションに指定します。

技術の詳細

3DSMax

このアプリは、3DSMax が起動プロセスの一部として実行する 3DSMax コマンド ラインに、MaxScript の init_tank.ms を自動的に追加します。

3DSMax が起動すると、次のプロセスが実行されます。

  1. 3DSMax が起動時に init_tank.ms を実行します。
  2. init_tank.ms により、Python インタプリタが利用可能で tank_startup.py が実行されることが確認されます。
  3. Shotgun Toolkit コンテキスト API を使用して、Shotgun から渡されたエンティティ ID が Toolkit コンテキストに変換されます。
  4. tank.system.start_engine() を介して適切なエンジンを起動し、コンテキストに渡します。エンジンが残りのプロセスを処理します。

追加の設定

3DSMax エンジンには、追加の設定は不要です

Hiero

Maya

このアプリは userSetup.py 自動開始スクリプトを Maya に登録し、Maya はそれを起動プロセスの一部として呼び出します。

Maya が起動すると、次のプロセスが実行されます。

  1. Maya が userSetup.py 起動スクリプトの実行を開始します
  2. Shotgun Toolkit コンテキスト API を使用して、Shotgun から渡されたエンティティ ID が Toolkit コンテキストに変換されます。
  3. tank.system.start_engine() を介して適切なエンジンを起動し、コンテキストに渡します。エンジンが残りのプロセスを処理します。

追加の設定

Maya エンジンには、追加の設定は不要です

MotionBuilder

このアプリは init_tank.py 自動開始スクリプトを MotionBuilder に登録し、MotionBuilder はそれを起動プロセスの一部として呼び出します。

MotionBuilder が起動すると、次のプロセスが実行されます。

  1. MotionBuilder が init_tank.py 起動スクリプトの実行を開始します
  2. Shotgun Toolkit コンテキスト API を使用して、Shotgun から渡されたエンティティ ID が Toolkit コンテキストに変換されます。
  3. tank.system.start_engine() を介して適切なエンジンを起動し、コンテキストに渡します。エンジンが残りのプロセスを処理します。

追加の設定

MotionBuilder エンジンには、追加の設定は不要です

Nuke

このアプリは menu.py 自動開始スクリプトを Nuke に登録し、Nuke はそれを起動プロセスの一部として呼び出します。

Nuke が起動すると、次のプロセスが実行されます。

  1. Nuke が menu.py 起動スクリプトの実行を開始します
  2. Shotgun Toolkit コンテキスト API を使用して、Shotgun から渡されたエンティティ ID が Toolkit コンテキストに変換されます。
  3. tank.system.start_engine() を介して適切なエンジンを起動し、コンテキストに渡します。エンジンが残りのプロセスを処理します。

追加の設定

Nuke エンジンには、追加の設定は不要です

Photoshop

このアプリは、Adobe Extension Manager を使用して Tank プラグインのインストールやインストール確認を行います。

Photoshop が起動すると、次のプロセスが実行されます。

  1. Photoshop が Tank プラグインの実行を開始します
  2. Shotgun Toolkit コンテキスト API を使用して、Shotgun から渡されたエンティティ ID が Toolkit コンテキストに変換されます。
  3. tank.system.start_engine() を介して適切なエンジンを起動し、コンテキストに渡します。エンジンが残りのプロセスを処理します。

追加の設定

このアプリを使用して Photoshop を起動する場合、追加のセクションで 4 つの設定値を指定する必要があります。次に、システムとインストールの場所に合わせた調整が必要な設定および適切な既定値を示します。

mac_python_path: "/usr/bin/python"
windows_python_path: "C:\\Python27\\python.exe"
mac_extension_manager_path: "/Applications/Adobe Extension Manager CS6/Adobe Extension Manager CS6.app"
windows_extension_manager_path: "C:\\Program Files (x86)\\Adobe\\Adobe Extension Manager CS6\\XManCommand.exe"

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

パブリッシュ ファイルを起動する

このアプリケーションはランチャー アプリケーションと連動するため、パブリッシュされたファイルを右クリックすると、そのホスト アプリケーションでこのファイルが起動します。Shotgun は関連するアプリケーションを起動し、ランチャー アプリケーションを介して Shotgun Pipeline Toolkit を初期化して、最後にファイルをロードします。

管理者ガイド

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

ユーザ ガイド

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

インストールと更新

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

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

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

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

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

特殊な要件

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

環境設定

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

linux_args

タイプ: str

説明: Linux 上のアプリケーションに文字列として渡される引数です。

engine

タイプ: str

説明: 開始する Shotgun エンジンの名前です。通常、tk-maya、tk-nuke、tk-photoshop のように、アプリケーションの先頭に tk が付きます。これを空の文字列に設定すると、Toolkit エンジンは開始されません。つまり、Toolkit エンジンがセットアップされていないアプリケーションを起動できます。

mac_args

タイプ: str

説明: Mac OS X 上のアプリケーションに文字列として渡される引数です。

windows_path

タイプ: str

説明: Windows で実行可能なアプリケーションのパスです。

group

タイプ: str

説明: このコマンドがメンバーだとみなされるグループの名前です。

hook_before_app_launch

タイプ: hook

既定値: before_app_launch

説明: このフックは hook_app_launch を使用する直前に呼び出されます。アプリケーションの起動方法を変更せず(これは高度な使用方法で、app_launch フックのオーバーライドにより実行可能です)、アプリケーション起動前の環境のみを変更する場合に有用です。セットアップに他のパイプライン パスや API などの設定を追加したり、実行する他のスクリプトなどを指定することもできます。

linux_path

タイプ: str

説明: Linux で実行可能なアプリケーションのパスです。

mac_path

タイプ: str

説明: Mac OS X で実行可能なアプリケーションのパスです。

skip_engine_instances

タイプ: list

説明: ソフトウェア ランチャー コマンドの登録をスキップするエンジン インスタンスの文字列名の一覧です。たとえば、この設定の['tk-nukestudio']という値は、その環境の 'tk-nukestudio' エンジン インスタンスを参照するエンジンに登録される、すべてのソフトウェア エンティティ ランチャー コマンドを停止します。これを使用すると、ランチャーが存在しなくても、指定された環境に対してエンジン インスタンスを設定することができます。特定の環境に対するコンテキストの変更を許可する Nuke Studio の場合に役に立ちますが、ここではアプリケーションをプロジェクト環境から起動できるよう設定するだけです。この設定は、ソフトウェア エンティティ ランチャーにのみ影響を与えます。

extra

タイプ: dict

説明: Shotgun エンジン固有の特別な値です。これは Shotgun エンジンごとに定義されます。詳細については、アプリのドキュメントを参照してください。

defer_keyword

タイプ: str

説明: 高度なパラメータです。これにより、遅延フォルダの作成を高度にカスタマイズできます。遅延フォルダを作成することにより、特定のキーワードに応じて部分的サブフォルダ構造を作成できるようになります(詳細についてはメインのドキュメントを参照)。アプリの起動前にフォルダが自動的に作成され、既定では(この設定を null にしておくと)起動アプリがエンジンの名前を遅延フォルダの作成のキーワードとして渡します。これにより、tk-maya や tk-nuke などのフォルダ作成設定で遅延ルールを簡単にセットアップできます。ただし、Nuke と Nuke X のそれぞれ(両者とも Nuke エンジンを実行)に固有の遅延フォルダ構造をセットアップするなどの場合は、より詳細な設定が必要です。この設定を使用すると、エンジン名を渡すだけの既定の動作をオーバーライドして、 代わりに遅延フォルダを作成するための任意の文字列を渡すことができます(上記の場合は「nuke」と「nuke_x」)。このパラメータは Toolkit エンジンが定義されていないアプリの起動と連動して遅延フォルダの作成を使用する場合にも役立ちます。このアプリ起動インスタンスでは、エンジン設定が空になるため、遅延フォルダの作成に渡されるエンジン名はありません。その場合は、このパラメータを使用すると、遅延フォルダの作成を制御できます。区切り記号としてカンマを使用すると、複数のキーワードを指定できます( 「nuke, nuke_x」など)。これにより、遅延フォルダの作成の設定にいずれかの値が指定されているスキーマ内のフォルダに対して、フォルダ作成がトリガされます。

menu_name

タイプ: str

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

hook_app_launch

タイプ: hook

既定値: app_launch

説明: アプリケーションを起動するために呼び出されます。このフックには、起動コマンドとパラメータを実際に実行するコードが含まれます。カスタム ランチャー システムがある場合は、Tank の既定の起動動作を簡単にオーバーライドできます。

versions

タイプ: list

説明: このアプリのインスタンスに使用する他の設定用の値で {version} トークンの代わりに使用される文字列のリストです。たとえば、この設定に値['2012', '2013', '2014']を指定し、menu_name に「Launch Maya {version}」を指定すると、コマンド メニュー名に Launch Maya 2012、Launch Maya 2013、Launch Maya 2014 が登録されます。アプリを実行するエンジンがこの概念をサポートしている場合は、リスト内の最初のバージョンが「既定の」バージョンとみなされます。['(7.0)v3', '(8.0)v1']のように括弧で文字列を囲むと、バージョンの一部分を使用することができます。このようなバージョン文字列の一部分は、置き換えトークン {v0}, {v1}, {v2}, ... として他の設定で利用できます。

scan_all_projects

タイプ: bool

説明: この設定と use_software_entity が true の場合、ランチャーは現在の環境のプロジェクトだけではなく、すべてのプロジェクトに登録されます。

hook_before_register_command

タイプ: hook

既定値: before_register_command

説明: このフックは、ランチャー コマンドの登録が発生する直前に呼び出されます。必要になるランチャーに関連付けられているエンジンのインスタンス名を変更するために使用することができます。このフックのメソッドは、ソフトウェア エンティティ ランチャーが使用されているときにのみ呼び出されます。

windows_args

タイプ: str

説明: Windows 上のアプリケーションに文字列として渡される引数です。

use_software_entity

タイプ: bool

説明: 利用可能な DCC に起動コマンドを登録するために Shotgun ソフトウェア エンティティを使用するかどうかを指定します。

group_default

タイプ: bool

説明: このコマンドがグループ全体を表すかどうかを示すブーリアン値です。この値を True に設定した場合、指定のグループごとに 1 つのボタンを表示するアプリケーションで実行され、そこに表示されるコマンドだということが示されます。

icon

タイプ: str

既定値: {target_engine}/icon_256.png

説明: アプリケーションに表示するアイコンのパスです。値が「{target_engine}」で始まる場合、パスの残りの部分はエンジンのインストールのルートに対して相対的になります。値が「{config_path}」で始まる場合、パスの残りの部分は設定のルートに対して相対的になります。パスには、使用時にオペレーティング システムごとの正しい区切り文字で置換されるスラッシュを使用する必要があります。

フォローする

0 コメント

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