Houdini楼房刚体区域影响破碎笔记
效果预览:
思维导图式笔记:
参考连接:
https://www.youtube.com/watch?v=V1K_XjMvgag
目录:
一、构建基础楼房
二、添加破碎解算设置
三、结算数据复用与保存
--------------------------------------------------------------------------------
一、构建基础楼房
分支1:创建楼层主体。
1、创建一个Geometry用来装载楼房和结算的内容。
2、进入后创建一个Grid,并设置此平面的参数。
3、创建一个Resample节点(重取样),并在工具栏中,激活显示标记点
<此节点为设置网格的顶点数量>
勾选:通过多边形边缘 重新采样 == Resample by Polygon Edge
设置长度:(数值越高,密度越少),此处设置为2
4、创建一个ConvertLine(连接线),
ConvertLine:<此节点为使顶点相链接>
此节点通过点,进行链接,形成线段。
5、创建一个 Carve(分隔线)<此节点为 --控制线段的节点>
勾选上两个节点,并调节滑条会发现,线段两头会跟着变化
但这里我们需要让线段是沿中心点收缩或放大的,需要以下操作。
①、拷贝下此栏信息
②、在此栏中粘贴同步设置。
③、这里的 1-ch(“domainu1”) 中的 1- 意思是 从中心点这个位置收缩。
6、创建Sweep(据线成面):通过沿脊柱曲线,扫掠横截面曲线,创建曲面。
节点连接:Sweep
并设置:
Surface Shape(表面)>>:方形管
columns(线列数量):为1.
7、创建Copy节点,对已构成的几何面,进行复制
并设置,间隔距离为1,复制数量为4.
8、创建一个Skin节点>>(在任意数量的形状曲线之间构建皮肤表面).
9、创建Polyfill(填充洞):
分支2:创建楼层中间隔层。
1、创建Polyextrude节点,回到Grid节点上,并连接,对面进行厚度
2、创建一个Copy节点,对隔板,进行复制。
3、创建一个merge节点,对两个生成好的模型,进行合并。
PS:快捷操作,小知识点
按Shift加选两个节点,然后在下方的拉线按钮上,用鼠标拉下,即可自动生一个合并节点。
分支3:创建帽檐
1、创建一个Copy节点并链接在Gird节点上。
2、创建一个Sweep节点,并选择表面生成形状,和线段,宽度。
3、将分支3,合并到 Merge节点下。
分支4:创建楼房立柱,增加破碎内容。
1、创建一个grid2.并设置参数如下
2、创建一个copytopoints,并设置参数(将第一个输入中的几何图形复制到第二个输入的点上).
3、创建一个 polyExtrued节点(导出面,节点),设置高度为2.
PS:这里我们发现,导出的面,是在地平面之下的,这个时候就需要用到Reverse节点。
4、创建一个Copy节点,对以上的柱子,进行复制,并调整对应高度,大小。
5、将以上创建的不同区域的模型,进行merge(合并)操作。
以上,模型的构建部分,基本就构建完成了。
二、添加破碎解算设置
1、创建一个RBD materialfracture 破碎设置节点。
设置节点参数与此处位置。
chipping Rotio 设置为0.8可增加细碎的渣土细节,增加破碎真实性。
2、创建一个rbdbulletsolver(大脑=求解器)
设置参数为:碰撞,平面地面。
这个时候可以 点击 运行,进行初步 破碎预览。(自然破碎)
3、实现,设置约束 藕断丝连 的 破碎感,参数设定。
在两个节点中,将小粉点,互相连接,这实际上就是 材料断裂的约束。
PS:这里,可以通过创建 rbdexplodedview 节点,进行预览
这里我们只是,扩展一下,并不实际用到此处 节点。
在将小粉点连线上后,可以再次播放,进行预览。
但是我们这个时候发现,楼房不会自然破碎了,显然,是约束力太强了。
需要外力,或者,减少约束力。
4、设置力约束卡。选中 rbdmaterialfracture节点。
设置好以上参数后,则,可播放预览,看下破碎效果是否是相约束的破碎的。
5、添加 <自定义 破碎 力 >
创建一个 "组" group,并将其,命名<blast_pnts爆炸点>。
设置 blast_pnts参数:
设置组类型为 顶点
关闭基础组默认全区域,
并将其设置,保持在边界区域内,将其 设置为 边界 球体。
这时,通过 位置,大小改变,爆破区域的位置。
以上设置好后,创建一个Pointvelocity 点 重力 节点。 为局部破碎,添加速度控制。
并为 pointvelocity节点,修改如下参数。
这个时候,播放进行预览,可得如下效果。
三、结算数据复用与保存
1、保存缓存数据。
在以上播放结算结束后,为了方便使用。
创建一个filecache 节点。
结算完成后,加载缓存数据播放。