Houdini 中文帮助文档

Active Value节点

激活或关闭一个模拟物体。

一个主动物体(即主动刚体)可以由解算器控制,也可以被其它物体影响。一个被动物体,即使附加了解算器,它也不会被解算器所修改。但它仍然可以影响其它物体,但不会被这些物体所影响。此数值可以被设置动画来使物体在两个状态间切换。

使用RBD Keyframe Active DOP节点来给刚体物体设置动画更容易。此节点会合并一个Active Value DOP节点,让你控制被设置动画的位置以及激活状态下的位置。

Parameters

开启该参数会修改数据名参数值,确保由该节点创建的数据会使用一个唯一的名称被附加,这样它就不会在任何已有的数据中被覆盖。

当关闭该参数,使用相同名称附加两个数据块会导致第二个数据被第一个替换。

如果一个物体需要多个风扇力来吹起它,此时使用唯一数据名方式更容易确保每个风扇力不会覆盖先前的风扇力(而不是要试着改变每个风扇的数据名来避免产生冲突)。

在另一方面,如果已经知道一个物体被附加了一些RBD状态数据,关闭该选项可以允许一些新的RBD状态数据覆盖已有的数据。

Active控制物体是主动还是被动物体。
Parameter Operations每个数据选项都有一个关联的菜单,可以指定参数如何操作对象。

Use Default使用默认操作菜单中的数值。
Set Initial只当数据被创建时,设置该参数的值(设置初始状态)。在所有随后的时间步幅中,此参数数值不会改变。此可以用于设置,如位置,速度的初始状态。
Set Always一直都使用该参数值。此方式可以用于被设置关键帧的数值在整个时间上都需要时所使用。这可能在整个时间上都使用物体的关键帧位置,或导出SOP中的几何体物体在每个时间步幅上都被重新抓取(如果物体有变形)。

你也可以使用此设置与参数的局部变量来随着时间的改变而修改参数。例如,在X位置上,表达式$tx + 0.1会导致在每个时间步幅上都向右移动一个单位。

Set Never从不设置此参数的数值。当使用该节点修改一个已有的连接到第一输入端的数据块时,此选项非常有用。

例如一个RBD State DOP节点可以只给物体的质量设置动画。Set Never选项可以用于所有参数,除了质量参数(其会使用Set Always方式)。

Default Operation

默认操作方式

对于任意的”操作” 菜单中设置使”用默认方式”的参数,此参数控制使用什么操作方式。

该参数也有同样的菜单选项,意思和参数操作菜单一样,但是没有”使用默认”选项。

Data Sharing控制由该节点创建的数据被模拟中多个物体所共享的方式。(数据共享可以很大程度上减少内存的使用)

Do Not Share Data

无数据共享

不使用数据共享。每个物体都有自己的数据副本被附加。
Share Data Across All Time

在整个时间上共享数据

此节点只会给整个模拟创建单个数据块。数据会在其被需要的第一时间被创建,这样任何只用于第一个物体的表达式都会被计算。

所有之后的物体都会有该数据,附有从第一个物体表达式中计算出的同样的数值。要记住,表达式不会和数据共同辈存储,所以它们不可以在数据之后被创建。

表达式是通过DOP节点在创建数据之前计算的。涉及时间的表达式在单个数据块被创建时也会被计算。此选项适用于不随时间变化的数据,并且对所有物体都是一样的,如Gravity DOP节点。

Share Data In One Timestep

在单个时间步幅中共享数据

模拟中,会给每个时间步幅创建新的数据块。在一个时间步幅内,所有物体都会被附加同样的数据。所以涉及到时间的表达式会使数据在整个时间上产生动画,但是涉及物体的表达式只会在被附加数据的第一个物体上计算。

此选项适用于数据随着时间变化的情况,但是它对所有物体,如 Fan Force DOP 节点都是一样的,因为在该节点中风扇力可以能随着时间而移动或旋转。

Activation

激活

定义该节点是否应当在给定的时间步幅上,为特定的物体做一些事情。如果该参数是一个表达式,它会用于每个物体的计算(即使开启共享数据)。

如果计算出的是一个非0值,那么数据就会附加到物体上,如果计算出的是0,就不会附加任何数据,并且先前通过该节点附加的数据也会被移除。

Group当一个物体连接器被附加到该节点的第一输入端时,此参数可以用于从这些物体中选择被该节点所影响的一个Subnet容器。
Data Name

数据名

提示会被附加到物体上火其它数据中的数据名。如果数据名包含一个或多个”/”,表示要进入子数据内部。

例如,如果 Fan Force DOP 节点有默认的Forces/Fan数据名,此会将名为Fan的数据附加到一个名为Force的数据块中。如果不存在名为Forces的数据,会创建一个数据块容器来放置Fan子数据。

不同的数据块在应当使用什么名称方面有不同的需要。除非在及其罕见的情况下,会使用默认的数据。

Unique Data Name

唯一的数据名

Inputs

First Input此可选输入可用于控制哪个模拟物体会被该节点修改。任何通过该输入端连接的物体,以及匹配组参数的物体都会被修改。

如果该输入端没有连接,此节点可以配合一个Apply Data(运用数据)节点使用,或者可以作为其它数据节点的输入。

All Other Inputs如果该节点有多高输入连接对象,其它数据可以作为修改由该节点创建的数据的修改器。

指定的子数据类型对从节点到节点是非常有意义的。中键点击一个输入连接器来查看可获取的数据节点列表(这些节点可以被有意义的附加)。

Outputs

First Output此操作节点的输出取决于连接到该节点的输入对象。如果一个物体流输入到该节点,输出也会是一个包含同样物体的物体流(但是会在物体上附加该节点的数据)。

如果没有物体流连接到该节点,此输出就会是一个数据数据。此数据输出可以被连接到一个 Apply Data DOP 节点上,或者之间连接到其它数据节点的输入上,将该节点的数据附加到另外一个物体或数据块上。

Local variables局部变量(DOP中所有局部变量都请参考此处)

channelname定义通道名,例如一个节点可能有位置通道(positionx, positiony, positionz),以及用于设置物体名的参数(objectname),其中,positionx, positiony, positionz,objectname就是通道名,也是局部变量,可以在Houdini中使用局部变量来调用这些参数。

下面这个是一个dopfield表达式: dopfield($DOPNET, $OBJID, dataName, “Options”, 0, channelname)

如果数据不存在,会返回0或一个空的字符串。

DATACT此变量是一个模拟时间变量(可以查看ST)。
DATACF此变量是一个模拟帧变量(可以查看SF)。
RELNAME只有当数据被附加到一个关系上时(如,当Constraint Anchor DOP节点连接到Constraint DOP节点的第二,三,四输入端时),才会设置该值。

在这种情况下,此数值会设置数据被附加到另外数据上的这一关系名称。

RELOBJIDS只有当数据被附加到一个关系上时(如,当Constraint Anchor DOP节点连接到Constraint DOP节点的第二,三,四输入端时),才会设置该值。

在这种情况下,此数值会设置为一个字符串, 此字符串是以空格方式列出的物体的识别号(数据被附加到的该关系中的所有被影响的物体)。

RELOBJNAMES只有当数据被附加到一个关系上时(如,当Constraint Anchor DOP节点连接到Constraint DOP节点的第二,三,四输入端时),才会设置该值。

在这种情况下,此数值会设置为一个字符串, 此字符串是以空格方式列出的物体的识别号(数据被附加到的该关系中的所有被影响的物体)。

RELAFFOBJIDS只有当数据被附加到一个关系上时(如,当Constraint Anchor DOP节点连接到Constraint DOP节点的第二,三,四输入端时),才会设置该值。

在这种情况下,此数值会设置为一个字符串, 此字符串是以空格方式列出的物体的识别号(数据被附加到的该关系中的所有被影响的物体)。

RELAFFOBJNAMES只有当数据被附加到一个关系上时(如,当Constraint Anchor DOP节点连接到Constraint DOP节点的第二,三,四输入端时),才会设置该值。

在这种情况下,此数值会设置为一个字符串, 此字符串是以空格方式列出的物体的识别号(数据被附加到的该关系中的所有被影响的物体)。

ST此变量是一个模拟时间变量,以秒为单位。如可以用$ST == 0,但不可以用$T == 0 or $FF == 1.
SF此变量是一个模拟帧变量,以帧为单位。如可以用$SF == 10,和$ST 不一样,一个以秒为单位,一个以帧为单位。
TIMESTEP此变量表示模拟的时间步幅。
SFPS此变量是TIMESTEP变量的反转形式。是每秒模拟中的时间步幅次数。
SNOBJ此变量是模拟中物体的标号,如object_$SNOBJ可能代表object_1,object_2,object_3,object_4这几个物体。
NOBJ此变量表示会被当前节点计算的物体的标号。和SNOBJ(用于模拟中的物体)不同,因为很多节点不会处理处于模拟中的物体。

如果节点不是有序的处理每个物体(如Group DOP节点),此变量可能返回0.

OBJ此变量是被节点所处理的物体的索引号。总是从0运行到 NOBJ-1。

可以用于创建随机标号的物体,或以不同方式分离物体到两个或多个组中。

OBJID表示物体的ID号,每个物体的ID号都是唯一的。
ALLOBJIDS此变量是一个字符串,其以空格方式列出所有被当前节点处理的物体的ID号。
ALLOBJNAMES此变量是一个字符串,其以空格方式列出所有被当前节点处理的物体的名称。
OBJCT此变量是一个模拟时间变量,当前物体是在该时间处被创建的。

因此要检查一个物体是否在当前时间步幅中被创建,可以使用 $ST == $OBJCT 表达式。如果节点不是有序的处理物体的话(如Group DOP节点),此变量会返回0.

OBJCF此变量是一个模拟帧变量,当前物体是在该帧处被创建的。其用法和OBJCT 一样。
OBJNAME此变量是一个字符串,其以空格方式列出当前被处理的物体的名称。
DOPNET此是一个字符串变量,包含当前DOP网络的完整路径。

Note

很多动力学节点都有和节点参数名一样的局部变量。例如,在Position节点中,你可以写这样的表达式:

$tx + 0.1

使物体沿着X轴向,在每个时间步幅上移动0.1个单位。

点击分享到: