基本 SOP 设置
粘性碰撞是使用RBD 配置 SOP创建的,用于基本碰撞检测。在那里,您可以找到带有各种参数的粘性碰撞子窗格。该系统使用粘性对象和目标对象工作。这两个名称只是为了区分事物的定义。
一个基础网络由两个分支组成:一个用于粘性部分,另一个用于目标。最后,两个分支合并并连接到RBD Bullet Solver SOP解算器或DOP Network SOP。
例如,为了演示粘性碰撞,我们模拟了破裂的地面物体(目标)与圆柱体(粘性)的碰撞。当圆柱体与地面碎片接触时,一些碎片会粘在目标物体上。
例子
步骤 1:创建目标对象
目标物体是一个将要破裂的盒子。
使用创建架上的“Box”工具创建一个盒子。
双击box_object1即可深入到几何级别。
将盒子的尺寸值设置为5、0.1和 ,5以创建一块薄玻璃板。
将Center参数的 Y 值更改为ch("sizey")/2。此表达式取框的Scale.Y值并将其减半。这使得框直接位于地平面上,无论它有多厚。我们稍后会添加地平面。
第 2 步:断裂物体
Houdini 提供了几种方法来破碎物体。最方便和最逼真的方法是基于材质的破碎。
添加RBD Material Fracture SOP并将其第一个输入与 Box SOP 的输出连接起来。
在“主要断裂”选项卡上,将“断裂等级”设置为,1以创建不太复杂的断裂模式。
在“单元格点”部分,增加“散点”以400增加碎片数量。
在“雾量”部分中,将“噪声频率”更改为2、0、2。
将“噪声偏移”的值更改为0、0、2。这会使裂缝沿 XYZ 轴移动,并使碎片分布更均匀。下图显示了默认设置和修改后的设置之间的差异。
步骤 3:标记为目标对象
在此步骤中,目标物体被标记为刚体。
添加RBD Configure SOP并将其第一个输入连接到 RBD Material Fracture 节点的第一个输出。
在“属性”部分中,将“名称前缀”设置为target。
步骤 4:创建粘性对象
粘性物体是一根具有一定初始线速度和角速度的管子。管子在目标立方体上滚动并收集一些玻璃碎片。
写下Tube SOP。
在方向下拉菜单中,选择Z 轴。
打开“端盖”使其成为封闭的圆柱体。
使用中心参数将管转换为3、1.1、0。
将高度设置为2。
将列的值更改为60以创建更平滑的表面。
为了赋予管一些初始速度,添加两个Attribute Adjust Vector SOP节点。
将第一个节点的输入连接到管的输出。
将第二个节点的输入连接到第一个 Attribute Adjust Vector SOP 的输出。
转到两个节点的属性名称参数,第一个v节点输入,第二个节点输入。属性代表线性()和角()速度。wvw
将的常量值设置为,,。这会使管沿负 X 方向移动。v-5.500
将的常量值设置为、、。这会使管绕其 Z 轴旋转。w008
步骤 5:创建粘性碰撞
粘性分支的最后一个节点将管变成具有粘性碰撞的刚体。
添加另一个RBD Configure SOP并将其第一个输入连接到最后一个 Attribute Adjust Vector 节点(角速度节点w)的输出。
在“属性”部分中,将“名称前缀”设置为sticky。
转到“粘性碰撞”部分并打开“最小粘性碰撞脉冲”。脉冲依赖于子步,调整起来可能有点棘手。如果撞击足够强,解算器会将粘合约束添加到约束网络。
改变参数的值以15使更多的碎片粘在管子上。
步骤 6:合并分支
为了完成设置,我们必须将粘性分支和目标分支合并在一起进行模拟。
添加合并 SOP并将其输入连接到 RBD 配置 SOP 的第一个输出。
添加RBD Bullet Solver SOP,并将其第一个输出与 Merge SOP 的输出连接起来。
转到“碰撞”选项卡的“地面碰撞”部分。从“地面类型”下拉菜单中,选择“地面”以创建无限碰撞平面。
按下播放栏上的
播放按钮开始模拟。您应该会看到类似于以下视频的结果。
提示
尝试不同的线速度和角速度、脉冲阈值和管位置来感受参数值。