![]() |
Shotgun Houdini 插件在 Houdini 中集成 Shotgun Pipeline Toolkit |

Shotgun Houdini 插件在 Shotgun Pipeline Toolkit 应用与 Houdini 之间建立桥接。它包含适用于 Windows 的 Qt/PySide 分发,这与 Houdini 捆绑在一起的 Python 版本兼容,因此,可以使用 Python 和 PySide 编写在插件内部运行的应用。
支持的应用程序版本
此插件已经过测试,已知可支持以下应用程序版本:14.0 - 17.0。请注意,此插件也许(甚至非常有可能)支持更新的发布版本,但是尚未正式在这些版本中进行测试。
概述视频
下面的视频对特性和功能进行了简要的介绍。
文档
Shotgun Houdini 插件包含一个用于在 Houdini 中集成 Shotgun 应用的标准平台。

应用开发人员须知
支持的平台
Shotgun Houdini 插件目前支持在 Windows、Linux 和 OS X 平台运行。
在 OS X 平台上,仅支持较新的 Houdini 版本(14 和 15)。由于 OS X 平台上先前 Houdini 版本编译方式的原因(采用操作系统级的垃圾收集),没有支持的 QT 版本在二进制上与该应用程序兼容。自 Houdini 14 起,Houdini 开始随附 PySide,因此不再需要外部版本。
PySide
对于先前的 Houdini 版本(13 及更早),需要安装 PySide 的外部版本。在 Windows 上,我们已经捆绑了一个兼容的 PySide 版本,该版本可支持 Houdini 运行的 Python。在 Linux 上,Houdini 使用系统 Python(依据 http://www.sidefx.com/docs/houdini12.0/hom/),需要有 PySide 或 PyQt 支持。
菜单加载

自 Houdini 15 起,Side Effects 引入了一个动态菜单系统,因此插件现在支持在上下文切换时重建 Shotgun 菜单。
在 Houdini 14 及更早的版本中,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 面板的支持。
面板支持目前需要使用 Houdini 版本 15.0.272 或更新版本,以便面板正确嵌入。在支持的 Houdini 版本中,注册的面板将以窗格形式显示在窗格菜单中。
在先前的 Houdini 版本中,注册面板将显示为对话框。SESI 可能会将某些问题修复向后移植到 Houdini 14 的较新内部版本中。当出现这种情况时,我们会使嵌入式面板也支持这些版本。
具有 OTL 的应用
Shotgun Houdini 插件让您可轻松加载应用程序随附的 OTL。如果您编写的应用使用 OTL,只需将这些 OTL 放入名为 otls 的文件夹,插件便会自动将它们加载到会话中:

然后,您可以通过常用的 Houdini 方法轻松访问您的节点。
警告!!请注意,虽然 OTL 用起来可能很方便,但如果您想在场景中创建持久性节点,OTL 通常不是正确的做法。这是因为一旦将 OTL 放入场景,就在该场景与 OTL 代码之间建立了依赖关系。这样,不仅需要在每次加载场景时都加载 Shotgun Toolkit,还需要小心管理代码,确保代码的任何更新都不会影响场景中使用的旧 OTL。
在 OS X 上通过终端进行启动调试
在 OS X 上为 tk-houdini
插件开启 debug_logging
功能,并不会将所有调试消息都发送至终端。这是因为 tk-multi-launchapp
应用默认使用 open
命令启动可执行文件。这样并不会从终端生成一个新的子进程,而是使用 OS X 的启动服务在别处创建一个新进程。因此,不会显示日志语句。即使在用户默认桌面的 Houdini 中保存一个 Python Shell,似乎也不会在启动时显示调试语句。启动后,嵌入式 Python Shell 会显示调试日志记录语句,但是启动期间的可用输出存在差异。如果您需要在插件启动期间访问调试日志记录语句,可以进行两处更改。
首先,更改测试配置中的 houdini_mac
路径(临时),将其指向 Houdini 应用包内的可执行文件。例如:
#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 中存储和管理的所有应用、插件和框架的源代码。欢迎根据实际需要演进和完善这些内容,以它们为基础做进一步的独立开发,修改它们(以及向我们提交 Pull 请求!),或者只是随手玩一玩,简单了解它们的构建方式和 Toolkit 的工作原理。您可以通过以下网址访问此代码库:https://github.com/shotgunsoftware/tk-houdini。 |
特殊要求
- 需要安装 Shotgun Pipeline Toolkit 核心 API 版本 v0.18.45 或更高版本才能使用此功能。
配置
下面是使用的所有配置设置的摘要。您需要在要启用此应用或插件的环境文件中定义这些设置。
run_at_startup
类型:list
说明:控制哪些应用将在启动时运行。这是一个列表,其中每个列表项都是一个具有“app_instance”和“name”键的词典。“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 评论