![]() |
Shotgun Engine for HoudiniHoudini への Shotgun Pipeline Toolkit の統合 |

ドキュメント
アプリ開発者向けの情報
サポート対象プラットフォーム
PySide
メニューのロード
Shotgun シェルフ
パネル
OTL を使用したアプリ
OSX のターミナルからデバッグを起動する
インストール、更新、開発
設定オプション
Shotgun Engine for Houdini は Shotgun Pipeline Toolkit アプリと Houdini の橋渡しを行います。このエンジンに含まれている Windows 用の Qt/PySide ディストリビューションは、Houdini にバンドルされているバージョンの python と互換性があります。このため、エンジン内で動作する Python と PySide を使用してアプリを記述できます。
サポート対象のアプリケーション バージョン
この項目はテスト済みです。アプリケーション バージョン 14.0-18.0 で動作することが分かっています。 最新のリリースでの動作は十分可能ですが、正式なテストはまだ完了していません。
概要ビデオ
次のビデオでは、特長と機能の概要について説明します。
ドキュメント
Shotgun Engine for Houdini には、Shotgun アプリと 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/)を使用しています。
メニューのロード

Houdini 15 では、Side Effects により動的メニュー システムが導入されました。これにより、このエンジンでコンテキスト切り替え時に Shotgun メニューの再構築がサポートされるようになりました。
Houdini 14 以前の場合、Houdini の Shotgun メニューは Houdini の起動前に生成され、セッション全体で固定されます。このため、メニューに登録されている Toolkit コマンドは、コンテキストが変更されても更新されません。
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 シェルフをシェルフ セットに追加すると 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 の使用は便利ですが、シーン内で保持されるノードを作成する場合、一般的には適切な解決方法ではありません。その理由は、シーン内に OTL を配置するとすぐに、このシーンと OTL コードの間に依存関係が生まれるためです。シーンのロードのたびに Shotgun Toolkit をロードする必要があるだけでなく、コードを更新するときにシーン内で使用されている古い OTL が分割されないように慎重に管理する必要もあります。
OSX のターミナルからデバッグを起動する
OS X の tk-houdini
の debug_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.19.1 以降が必要です。
環境設定
以下に、使用するすべての環境設定の概要を示します。これらの設定は、このアプリまたはエンジンを有効にするための環境設定ファイルで定義する必要があります。
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 シェルフを考慮してメニューを無効にできます。