Houdini

Shotgun Houdini 插件

在 Houdini 中集成 Shotgun Pipeline Toolkit
最新版本:v1.5.6 (Prod)
我们的版本号遵循语义化版本标准。
系统名称:tk-houdini

请注意:本文档介绍仅当控制 Toolkit 配置时可用的功能。有关更多详细信息,请参见 Shotgun 集成用户手册
概述
文档
      应用开发人员须知
            支持的平台
            PySide
            菜单加载
            Shotgun 工具架
            面板
            具有 OTL 的应用
            在 OS X 上通过终端进行启动调试
安装、更新和开发
配置选项

Shotgun Houdini 插件在 Shotgun Pipeline Toolkit 应用与 Houdini 之间建立桥接。它包含适用于 Windows 的 Qt/PySide 分发,这与 Houdini 捆绑在一起的 Python 版本兼容,因此,可以使用 Python 和 PySide 编写在插件内部运行的应用。

支持的应用程序版本

此插件已经过测试,已知可支持以下应用程序版本:14.0 - 16.5。请注意,此插件也许(甚至非常有可能)支持更新的发布版本,但是尚未正式在这些版本中进行测试。

概述视频

下面的视频对特性和功能进行了简要的介绍。

文档

Shotgun Houdini 插件包含一个用于在 Houdini 中集成 Shotgun 应用的标准平台。

Shotgun Houdini 插件

应用开发人员须知

支持的平台

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 支持。

菜单加载

Shotgun 菜单

自 Houdini 15 起,Side Effects 引入了一个动态菜单系统,因此插件现在支持在上下文切换时重建 Shotgun 菜单。

在 Houdini 14 及更早的版本中,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 面板的支持。

面板支持目前需要使用 Houdini 版本 15.0.272 或更新版本,以便面板正确嵌入。在支持的 Houdini 版本中,注册的面板将以窗格形式显示在窗格菜单中。

在先前的 Houdini 版本中,注册面板将显示为对话框。SESI 可能会将某些问题修复向后移植到 Houdini 14 的较新内部版本中。当出现这种情况时,我们会使嵌入式面板也支持这些版本。

具有 OTL 的应用

Shotgun Houdini 插件让您可轻松加载应用程序随附的 OTL。如果您编写的应用使用 OTL,只需将这些 OTL 放入名为 otls 的文件夹,插件便会自动将它们加载到会话中:

Houdini OTL

然后,您可以通过常用的 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 评论

登录写评论。