Houdini

Shotgun Engine for Houdini

Houdini への Shotgun Pipeline Toolkit の統合


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

概要

このドキュメントは、Toolkit の設定を管理するユーザのみが使用可能な機能について説明します。 詳細については、『Shotgun 統合管理者ガイド』を参照してください。 Shotgun Engine for Houdini は Shotgun Pipeline Toolkit アプリケーションと Houdini の橋渡しを行います。 このエンジンに含まれている Windows 用の Qt/PySide ディストリビューションは、Houdini にバンドルされているバージョンの python と互換性があります。このため、エンジン内で動作する Python と PySide を使用してアプリケーションを記述できます。

サポート対象のアプリケーション バージョン

この項目はテスト済みです。アプリケーション バージョン 14.0、15.0、15.5、16.0 で動作することが分かっています。 最新のリリースでの動作は十分可能ですが、正式なテストはまだ完了していません。

概要ビデオ

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

ドキュメント

Shotgun Engine for Houdini には、Shotgun アプリケーションと Houdini を統合するための標準プラットフォームが含まれています。

Shotgun Engine for Houdini

アプリケーション開発者向けの情報

サポート対象プラットフォーム

Shotgun Engine for Houdini は、Windows、Linux、OSX で現在サポートされています。

OSX でサポートされるのは最新バージョンの Houdini (14 と 15)のみです。 古いバージョンの Houdini では、OSX に対するコンパイル方法(オペレーティング システム レベルのガベージ コレクション)が原因で、アプリケーションとのバイナリ互換性を持つ Qt ビルドは一切サポートされていませんでした。 Houdini 14 では、外部ビルドが不要な PySide がバンドルされるようになりました。

PySide

古いバージョンの Houdini (13 以前)の場合、PySide の外部ビルドが必要です。 Windows の場合、Houdini が実行する Python と連携する、互換性のある PySide ビルドがバンドルされています。 Linux の場合、Houdini は PySide または PyQt のサポートが必要な Python システム(http://www.sidefx.com/docs/houdini12.0/hom/)を使用しています。

メニューのロード

Shotgun メニュー

Houdini 15 では、Side Effects により動的メニュー システムが導入されました。これにより、このエンジンでコンテキスト切り替え時に Shotgun メニューの再構築がサポートされるようになりました。

Houdini 14 以前の場合、Houdini の Shotgun メニューは Houdini の起動前に生成され、セッション全体で固定されます。 このため、メニューに登録されている Toolkit コマンドは、コンテキストが変更されても更新されません。

Shotgun シェルフ

Shotgun シェルフ

リリース v0.2.4 では、エンジンに動的 Shotgun シェルフが導入されています。 このシェルフでは登録されたアプリケーション コマンドがツール ボタンとして表示されます。 ボタンはメニュー コマンドとほとんど同じ順序で表示されます。

環境内のシェルフをオンにするには enable_sg_shelf 設定を使用します。 動的メニューをサポートしないバージョンの Houdini (14 以降)を使用する場合、シェルフの使用時に Shotgun メニューもオフにできます。 その場合は、enable_sg_menu 設定を false に設定します。

シェルフを使用したコンテキストの切り替えを有効にするには、エンジン設定の tk-multi-workfiles アプリケーションの sg_entity_types 設定にエンティティ タイプも追加する必要があります。

次に、Shotgun シェルフに関連する設定を示します。

tk-houdini:
  apps:
    # ... other app definitions
    tk-multi-workfiles:
       # ... other app settings
       sg_entity_types: [Shot, Asset] # allow context switching to Shots or Assets
       # ... other app settings
  enable_sg_shelf: true
  enable_sg_menu: false
  # ... other engine settings

Shotgun シェルフを有効にしたら、Houdini 内で設定したシェルフに手動で追加する必要があります。

Shotgun シェルフを追加する

Shotgun シェルフをシェルフ セットに追加すると Houdini セッション間をまたいで保持されますが、Shotgun コンテキストが変更されると動的に更新されます。

パネル

v0.2.8 以降のエンジンでは、埋め込み Toolkit パネルのサポートを追加できます。

埋め込まれた適切なパネルをサポートするには、15.0.272 以降のバージョンの Houdini が必要です。 登録パネルは、サポート対象バージョンの Houdini でペイン メニューのペインとして表示されます。

古いバージョンの Houdini では登録パネルがダイアログとして表示されます。 SESI はいくつかのバグ修正を Houdini 14 の最新ビルドに移植する場合があります。 その場合は、埋め込みパネルがそれぞれのバージョンで動作するようにします。

OTL を使用したアプリケーション

Shotgun Engine for Houdini により、OTL で提供されるアプリケーションが簡単にロードできます。 OTL を使用するアプリケーションを作成する場合、otls と呼ばれるフォルダにドロップするだけで、エンジンがアプリケーションをセッションに自動的にロードします。

Houdini OTL

通常の Houdini メソッドからノードに簡単にアクセスできます。

警告:OTL の使用は便利ですが、シーン内で保持されるノードを作成する場合、一般的には適切な解決方法ではありません。 その理由は、シーン内に OTL を配置するとすぐに、このシーンと OTL コードの間に依存関係が生まれるためです。 シーンのロードのたびに Shotgun Toolkit をロードする必要があるだけでなく、コードを更新するときにシーン内で使用されている古い OTL が分割されないように慎重に管理する必要もあります。

OSX のターミナルからデバッグを起動する

OS X の tk-houdinidebug_logging をオンにしても、すべてのデバッグ メッセージがターミナルに送信されるわけではありません。 その理由は、既定では、tk-multi-launchapp アプリケーションが実行可能ファイルの起動に open コマンドを使用するからです。 これでターミナルから新しいサブプロセスがスポーンされることはありませんが、代わりに OS X の起動サービスを使用して新しい場所が作成されます。 その結果、ログのステートメントが表示されなくなります。 Houdini でユーザの既定のデスクトップに Python シェルを保存しても、起動時にデバッグのステートメントは表示されないようです。 起動後、埋め込み Python シェルはデバッグ ログのステートメントを表示しますが、起動時に使用可能な出力にはギャップがあります。 エンジンの起動時にデバッグ ログのステートメントにアクセスする必要がある場合は、次の 2 つの変更を行います。

最初に、Houdini アプリケーション バンドル内の実行可能ファイルを指定するようにテスト設定で houdini_mac パスを(一時的に)変更します。 例:

#houdini_mac: /Applications/Houdini 15.0.272/Houdini Apprentice.app
houdini_mac: /Applications/Houdini\ 15.0.272/Houdini\ Apprentice.app/Contents/MacOS/happrentice

次に、テスト設定の config/hooks ディレクトリの tk-multi-launchapp アプリケーションの app_launch フックのコピーを作成し、config/env/includes/app_launchers.yml ファイルでそのコピーを指定します。

launch_houdini:
  defer_keyword: ''
  engine: tk-houdini
  extra: {}
  hook_app_launch: app_launch    # <----- use a custom app_launch hook
  hook_before_app_launch: default
  icon: '{target_engine}/icon_256.png'
  linux_args: ''
  linux_path: '@houdini_linux'
  location: {name: tk-multi-launchapp, type: app_store, version: v0.6.6}
  mac_args: ''
  mac_path: '@houdini_mac'
  menu_name: Launch Houdini
  versions: []
  windows_args: ''
  windows_path: '@houdini_windows'

その後は実行可能ファイルを直接起動するように起動ロジックを修正するだけです。 たとえば、ディレクトリの古い動作(アプリケーション バンドル)を維持し、それ以外のコマンドを直接実行するとします。 次に例を示します。

        elif system == "darwin":
            # on the mac, the executable paths are normally pointing
            # to the application bundle and not to the binary file
            # embedded in the bundle, meaning that we should use the
            # built-in mac open command to execute it
            if os.path.isdir(app_path):
                cmd = "open -n \"%s\"" % (app_path)
                if app_args:
                    cmd += " --args \"%s\"" % app_args.replace("\"", "\\\"")

            # not a directory, execute directly
            else:
                cmd = "%s %s" % (app_path, app_args.replace("\"", "\\\""))

ターミナルで tank を使用して launch_houdini を実行すると、すべてのデバッグ出力を取得できます。 テストが完了したら、パスを元に戻して、アプリケーション起動の変更を取り消してください。 デバッグの成功をお祈りします。

インストールと更新

Shotgun Pipeline Toolkit にこのエンジンを追加する

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

> tank Project XYZ install_engine asset tk-houdini

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

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

特殊な要件

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

環境設定

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

run_at_startup

タイプ: list

説明: 起動時に実行するアプリケーションを制御します。 これはリストで、各要素は「app_instance」と「name」という 2 つのキーを持つディクショナリになります。 app_instance 値は、環境設定ファイルで定義された特定のアプリケーション インスタンスにこのエントリを接続します。 name は Houdini エンジンの起動時に実行するコマンドのメニュー名です。 name が「"」の場合は、特定のアプリケーション インスタンスのすべてのコマンドが開始されます。

enable_sg_shelf

タイプ: bool

既定値: True

説明: シェルフがインストール済みのアプリケーションで登録されたコマンドを使用して構築されるかどうかを制御します。 Shotgun のコンテキストが変更されると、シェルフが動的に再構築されます。

menu_favourites

タイプ: list

説明: メイン メニューのお気に入りセクションを制御します。 これはリストで、各メニュー項目は app_instance と name というキーを持つディクショナリになります。 パラメータ app_instance は、環境設定ファイルで定義された特定のアプリケーション インスタンスにこのエントリを接続します。 name はお気に入りを作成するためのメニュー名です。

launch_builtin_plugins

タイプ: list

説明: Houdini の起動時にロードする tk-houdini プラグインのカンマ区切りリストです。 この機能を使用すると、Houdini の起動時に Toolkit をブートストラップするための従来のメカニズムが無効になります。

debug_logging

タイプ: bool

説明: デバッグ メッセージをロガーに送信するかどうかを制御します。

automatic_context_switch

タイプ: bool

既定値: True

説明: ロード中のファイルを変更するたびに、Toolkit がその内容を自動的に調整する必要があるかどうかを制御します。 既定値は True です。

enable_sg_menu

タイプ: bool

既定値: True

説明: メニューがインストール済みのアプリケーションで登録されたコマンドを使用して構築されるかどうかを制御します。 現在は Shotgun コンテキスト切り替えのメニューを再構築できないため、このオプションを使用すると、動的に再構築できる Shotgun シェルフを考慮してメニューを無効にできます。

フォローする

0 コメント

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