Houdini 中文帮助文档

名称空间和版本

Overview

从Houdini12开始,你就可以让你的资产名称在名称空间中用一个字符串表示.

Namespace

名称空间中的允许你给你的资产命名,而不需要担心出现使用和Houdini内部节点相同的名称,或者在将来某一天使用的名称.

例如,Sasha’s的动画中心可能会制作一个拷贝几何体的节点,而且名称可能是com.sundae::copy. 这让它Houdini内部的Copy节点有所区分. 当然, Joe的几何体节点名称也可能是com.joesgeohut::copy .

这对你想创建和其它用户不同名称的节点是非常有用的. 这也对后期使用这些节点时,不必担心它们的名称归类非常有帮助.

通常惯用的确保你名称是独一无二的方法是将你网站DNS地址反转. 例如Houdini的画廊网站是houdini.bacon.org,这样就可以用org.bacon.houdini 作为资产的名称.你也可以用其它的方式,例如在名称中添加创建人等.

Version

版本字符串允许你创建多个版本的资产,并且不需要改变节点的主要名称. 例如

Sasha 想完成它的Copy节点资产的创建,就可以使用 com.sade::copy::2.0来命名.旧版本的资产文件仍然使用旧的方法来定义. 当用户放置一个新的节点时,就会得到最新版本.

The parts of an asset name

名称空间中节点的总体命名方式是: [namespace::]node_name[::version].

Note

一些脚本命令需要节点的分类情况,例如Object/geo, Sop/copy, Dop/popsolver. 想要用脚本命令来命名名称,可以使用这种格式:[namespace::]node_category/node_name[::version].

How to

To…Do this
指定一个资产的名称空号或版本其实右击选择Create Digital Asset 来创建.
创建一个新版本的资产文件1. 选择 Windows > Operator Type Manager 来打开这个窗口.
2. 右击资产文件选择Copy.
3.在Copy Operator Type对话框中增加节点的版本号.

Referencing node types in scripts

当你在脚本中提到一个节点时,你可以使用精确的名称来调用你的节点文件(如com.sundae::vines::2.0),也可以使用模糊的名称来调用节点(如vines).如果你想要使用最新版本的资产,或者希望用户在其它名称空间中调用资产文件,而不修改你的脚本文件,这时你可以使用模糊的名称.

在使用模糊节点时,Houdini使用一下方式来选择节点.

  1. 如果你不指定一个版本号,Houdini会默认选择最高的版本. 没有版本号的节点通常会被认为是低版本的.
  1. Houdini选择的节点必须是被列入当前表单中的.
  1. Houdini会优先选择没有名称空间命名的节点.
  1. Houdini更喜欢在在HOUDINI_OPNAMESPACE_HIERARCHY 变量定义的目录下查找名称. 你可以用该变量来设置分离的名称, 这样可以区分模糊的名称.

For example, if your HOUDINI_OPNAMESPACE_HIERARCHY contains…

com.sundae org.bacon.houdini

Then if Houdini knows about assets named vines, org.bacon.houdini::vines, and com.sundae::vines, and you use the command…

opadd vines

…Houdini will use com.sundae::vines because it is earliest in the HOUDINI_OPNAMESPACE_HIERARCHY list.

你可以添加一些名称让节点获取优先权(即便它是低版本). 例如,在列表中添加com.sundae::vines::1.0,Houdini就会使用模糊的名称Vines(即使此时有com.sundae::vines::2.0 这个名称).

在HOUDINI_OPNAMESPACE_HIERARCHY 这个列表中,你可以使用*和?来命名.

Tip

没有名称空间而又不想含糊的命名它,可以用::node_name. 例如::Copy. 如果没有版本号,而又不想含糊的命名它,可以用node_name::. 例如Copy::.

Subnet scoping——将子网络容器列入表单

你可以使用[Node_category/node_name::]node_spec这样的名称格式来将包含子网络容器的节点命名.例如:你有一个资产名称为:com.example::mysop,你可以命名它为Dop/sopsolver::com.example::mysop,让它只在SOP或DOP中是有效的.

通过限制这些文本,对减少按Tab键展开的菜单复杂度非常有用.

Filtering preferences——过滤参数

选择Edit > Preferences > Shelves and Tab Menu 命令,并且使用Tab menu operator namespace filtering 这个参数来控制哪些资产节点会出现在Tab菜单中.

Version field——版本域

一个资产的属性类型窗口中包含它的版本域.这个域是上一版本留下的,它的功能更多的像是解释. 它和::version 这个是无关的.

otversion脚本命令以及Py的hou.NodeType.version和hou.NodeType.setVersion这些命令,允许你获取设置这个版本域. opparm -V和hou.Node.syncNodeVersionIfNeeded脚本也可以产生节点的Sync Node Version事件手柄.

点击分享到: