慢动作 小提琴破碎毁灭效果

该项目引导用户如何使用刚体动力学进行小规模破坏,重点是通过调整时间尺度和控制断裂,创造慢动作的小提琴碎裂镜头。然后用RBD模拟驱动次级设备,最后通过Karma XPU渲染。

项目聚焦于通过高尔夫球摧毁小提琴的RBD模拟的时间尺度和控制。本教程将引导你准备和设置更小、独特的物体以进行RBD模拟,同时以慢动作控制它们的破坏。

第一步 – 资产准备

启动任何RBD模拟时,我们需要确保模型已做好被销毁的准备。这意味着要封闭所有孔洞,并修复可能导致破裂问题的几何形状。在我们这里,这意味着确保模型中尽可能多的三维部件,确保没有“断开”的零件,并重新创建小提琴琴颈后方缺失的几何形状。

这个模型有一些需要修复的问题。首先清理琴颈下方连接箱体的缝隙,必须填补,确保没有孔洞。侧板只有2D,需要加厚,还需要一些小修补,比如填充圆柱状物体和炸开一些内部漂浮部件。

图片[5]-慢动作 小提琴破碎毁灭效果-houdiniUE

然后我们只需要把一些部件分组起来,方便在断裂和渲染时选择和命名。然后我们可以创建一个额外的占位符属性,称为pname,它会保留棋子的原始名称,这有助于为Solaris命名物品。之后因为某些分组和几何结构的编辑,后续需要做一些额外的改动,但都是小的。额外素材可以做一个带有斜角的盒子作为支架,一个简单的弧形背景和一个高尔夫球,虽然普通球体也可以,这样就准备好了。当所有模型完成并放置在支架上后,我们就可以开始分解几何结构。

第二步 – 小提琴断裂

模型清理完毕后,是时候开始对小提琴进行破碎,为RBD模拟做准备。好的做法是先对静止的物体设置断裂和约束,然后再简单地将变换或动画复制回对象上。虽然我们的场景相对简单,但把小提琴放回休息,我们就可以开始破碎了。

像小提琴这样的物体要比岩石更复杂,因为木材需要考虑纹理结构,在我们的情况下,还要回溯参考图来了解我们想要制作的作品的大致形状。利用之前的组和名称,我们可以断裂用于RBD模拟所需的主小提琴箱,并确保那些未断裂的部件;在这种情况下,琴颈、尾部和底部的小部件都经过了充分准备,用于进行 RBD 模拟。

图片[6]-慢动作 小提琴破碎毁灭效果-houdiniUE

首先,小提琴的木质外壳会用RBD材料断裂法破碎,但即使我们清理了模型,有时仍可能出现一些问题。在这种情况下,RBD材料断裂节点可能难以正确生成破碎几何形状,通常是由于几何形状不密封。为了解决这个问题,我们会把作品转换成VDB再转换回来,但要确保把属性,尤其是UV转回来,因为我们仍然想用小提琴的原始纹理。这样可以确保工件无孔且气密,因此RBD材料断裂可以轻松呈现出漂亮的断裂效果。尽量保持裂缝较大,这样更容易控制模拟,碎片/碎片也可以作为次要材料。琴桥和音柱太小也可能带来问题,所以我们会先放大、断裂,然后缩小。

琴盒前部的UV需要手动调整,因为我们重建了琴颈后方的几何形状,因此也需要在UV中重建。重建部件的其他UV效果没问题,也不需要调整,因为我们反正也看不到它们。

图片[7]-慢动作 小提琴破碎毁灭效果-houdiniUE

所有木头部件都断裂后,我们可以继续处理其他不会断裂但仍属于模拟的部分。我们只需要为RBD子弹求解器正确命名它们,这意味着给每个部件赋予其独特的名称属性,这可以通过多种方式实现,在这种情况下,我们可以在RBDMaterialFracture中关闭切割器,开启“每件碎片断裂”选项。重新组装小提琴后,我们就可以为RBD模拟设置约束。

步骤3 – 将所有内容全部约束

下一步是在这些部分之间设置约束。我们将使用SOP级别的工具来设置连接,然后调整约束,以控制哪里以及哪些部件会断裂。

先约束小提琴主木箱,这将是最复杂的约束系统,但通过使用规则和RBD约束属性节点的RBD约束,它会帮我们完成大量工作,使我们能够专注于确定参数的取值。为前、侧、后三部分分别创建约束,然后将它们与组成琴体的部分与小提琴的三个主要部分不同的约束组合起来。确保约束标签分开,这样我们才能更好地控制各个部件本身,而不是它们之间的连接。

约束类型应该是胶水,因为它能把部件固定在一起,直到被破坏才会移动;但对于任何损坏的部件,确保开启约束切换并设置为约束,这样我们可以在撞击前将需要破坏的部件切换到约束。我发现试图让求解器根据水强度计算断裂,结果很奇怪,比如球突然移动或完全停住,违背木材强度。软约束允许我们跳过这些,专注于木头断裂的最终感觉。

约束设置了爆炸视图

确保开启覆盖角刚度阻尼比,这样我们能更好地控制因冲击而弯曲的木材强度和振动。它应该比一般的刚度阻尼比弱,因为木材是可弯曲的,我们希望能模仿这些特性。

琴桥和音柱也是一样,但对于其他没有断裂的部件,尽量把它们连接到机箱上,尽可能接近真实的组装。这意味着先把连接器和零件固定到这些连接器上,而不是整件直接连接到琴盒上。

约束的约束值是我们通过反复试验调整的,但总体思路是木材要有高振荡和更多自由“弯曲”,而对于没有断裂的木件,我们希望它们大致保持原位,并有轻微振动,以增强冲击力。

第3.5步 – 控制刹车

这个设置很大一部分是控制刹车发生的位置。如前所述,我们将在撞击前将部分约束切换为质,这样高尔夫球才能干净利落地穿透,而不必真正穿透胶水强度的木板。这样做可以让模拟控制变得更容易,因为我们知道冲击会很快且干净地穿透小提琴。

为了实现这种控制,我们将设置边界框,选择想要打破并切换为约束。这比手动选择约束方便多了,因为如果我们想更改断裂或约束,选择会被破坏。这让我们可以自由地修改,不用花太多时间重新调整选择,如果我们回头修改内容。此外,对少数限制进行小幅调整,以调整某些部件。

先把会断裂的部分从我们试图让它们振动和震动的部件中分离出来。在这种情况下,如果我们看参考图,主要是右上角断裂,而对面通常受影响较小。设置边界框捕捉该区域,并为该组命名,以便后续用于突破阈值。对于不破坏的部件,做了一些小调整,确保某些结果,比如销钉不动,并添加一个单独的组来控制它们何时切换到约束以控制振动。

图片[8]-慢动作 小提琴破碎毁灭效果-houdiniUE

第四步 – 破碎

模拟的最后一步是设置RBD ConfigureRBD Bullet Solver节点,因为我们需要做一些调整以达到目标的外观。

很多这些数值都需要时间和一些调整,还要在模拟、断裂和设置之间来回切换。同样地,选择哪些部件来切换约束,或者想办法绕过某些不想要的问题。然而,Houdini的程序化让工作流程变得简单,回头编辑和修改只是其中一部分。

首先用RBD Configuration,我们将把木材密度设为大数值,以增加重量,同时让底部的按钮在撞击后立即处于不激活状态,以防止小提琴从琴架上飞出。然后通过将变换从资产复制到rbdxform节点,将小提琴移到位置即可。最后,把高尔夫球打得密度和速度都不错,但要记住击球是慢动作的,而高尔夫球开球速度极快,所以必须非常快。由于镜头的性质和我们想要捕捉的细节,我们把小提琴和球的密度保持得不切实际。

然后通过将资产的变换复制到rbdxform节点,调整高尔夫球,让它有足够的密度和速度朝向小提琴。记住击球是慢动作的,高尔夫球开球速度极快,所以必须非常快。由于镜头的性质和我们想要捕捉的细节,我们把小提琴和球的密度保持得不切实际。

最后,来到RBD子弹求解器,真正设置我们想要的控制和外观。先从时间刻度开始,因为这是慢动作镜头,时间刻度设为0.1,因为参考值似乎在0.1左右,没有精确数字很难判断,但大致合适。其他数字可能需要反复试验才能准确,不过我发现将子弹世界尺度设为1000能获得稳定结果,同时有400次子步骤和100次约束迭代。至于阻力,起初在撞击前设为0,因为高尔夫球是主动物体,这样更容易判断撞击时的速度,也不用花太多时间调整数值

接下来是约束标签页,这里用上了之前的很多设置。对于约束,我们可以将断裂阈值设为角度值为0.45,距离值为0.01,因为我们希望连接点的部分可以铰接,但一旦分离就会断裂。最后,对于Impact组,设置一个标签“切换到下一个约束”,并将帧切换到24。这确保了撞击前的帧,撞击点的约束不再是胶合,而是作为约束工作。

图片[9]-慢动作 小提琴破碎毁灭效果-houdiniUE

记得在RBDBulletSolver输出标签页中的属性传输参数中添加namepname,因为我们以后需要它们来设置渲染名称。

步骤5 – 添加细节及Solaris准备

既然RBD模拟已经完成,我们将添加一些未被模拟的小细节,以进一步增强冲击的重量感和感觉,然后再进入次级。

首先拆包模拟并设置Solaris的名称,因为渲染时会使用Karma XPU。用我们一开始设置的pname属性重置name属性会非常简单,因为RBD模拟市民已经更改了棋子命名。然后,像许多其他RBD模拟一样,我们会在撞击前一帧切换未破碎的原始资产,使用开关隐藏部分瑕疵。

我们还需要为断裂区内部设置合适的UV,因为这是我们新创建的几何体。把内部组拆出来,给它起个名字,这样我们就能在Solaris里轻松分配材质,最后在时间移和冻结的UVTexture上设置UVTexture,然后再把UV属性复制回模拟的几何体。我们现在对内部部件有稳定的UV信号。还把小提琴内部的面拆开,这样我们以后能正确命名贴图,然后就可以添加一些振动和扭动琴轴动画了。

弯曲节点设置

对于混响,我们可以选择所有没有被撞击击飞出的部件,然后用弯曲节点添加一些扭转和弯曲。我们只需要在Bend Angle和Twist中加入一些波噪声,几帧后动画趋近于0,这样振动能尽快结束。记得启用双向变形和连续扭转,以确保振动正确。最后,通过提取要添加动画的钉子的重心,时间偏移,然后动画转动,再复制回原来的钉子的重心。

第6步 – 弦仿真

所以我们有木头的RBD模拟,但我们依然是小提琴和弦乐的重要组成部分!我们可以用 RBD 来驱动牛皮纸弦模拟,但首先需要将素材中的字符串转换成线条,以便通过模拟运行。

完成后,在某些点上加一些切割,这样弦就能在撞击时断裂。然后就是把这些切口缝合起来,确保它们在撞击前能保持牢固。把字符串设置成Hair,并为每根字符串添加名字,这样我们就能控制以后哪些字符串断裂。为了获得弦断裂时的“弹跳”效果,将弦的边缘长度刻度设为小于1,这样弦上的点会尝试向彼此收缩,断裂时会尝试收缩。

有一些设置需要调整,以帮助稳定模拟器,给出更准确的结果。对于VellumSolver本身,记得把时间刻度设为0.1,因为弦也应该是慢动作。增加子步碰撞通行抛光通行,防止弦线失控,最后在撞击前将静态阈值动画化到高值,撞击后再降到0,因为我们需要琴弦在琴桥上稳定,这样才能防止弦滑脱。

串状羊皮纸模拟的最后一步是设置羊皮纸串本身的断裂点,添加一些Vellum约束属性节点,并动画化移除参数,移除在撞击时将切割断点固定在一起的约束。现在剩下的就是用 Extrude By Thickness,这样我们就能把原始 UV 转移到模拟字符串上并实际渲染它们。

注释

弦可能会有几帧奇怪的跳跃和异常行为,试图稳定,但这没关系。只要它们足够稳定,能在撞击前和之后冻结几帧,我们就可以继续使用。任何异常都会通过渲染设置中的时间冻结和切换隐藏。


第七步 – 尘埃

现在小提琴破碎的主体部分已经完成,是时候加入一些次要元素了。在这种情况下,我们会加入一些颗粒碎片、一些尘埃和一些较小的颗粒,以帮助填充整体的碎片云。

VDB用于火燃碰撞

首先,将小提琴的模拟与舞台结合起来,并两者都转换成VDB缓存,以便为火药模拟提供碰撞。用VDBFromPolygons节点,把体素大小调低到足够低,以保留小提琴的细节,然后把距离VDB的名称改成碰撞。把 Surface 属性改成 point.v,把 VDB 名改成 collisionvel,最后把矢量类型改成 Displacement/Velocity/Acceleration。碰撞现在可以缓存出来,输入到火焰模拟中。

注释

确保小提琴的VDB没有孔洞且细节合理,否则碰撞可能会有偏差。使用VDBReshapeSDF节点可以通过侵蚀和膨胀来帮助调整VDB。


我们将从碎片源中获取点,但由于模拟是0.1时间尺度,生成的点的速度值过快。只需将点的速度乘以时间尺度来调整速度以补偿这些点的速度,以实现固定。这些点可以输入带有popforcepopnet,但请记得将popsolver的时间度设为0.1,并将粒子来源调整为几帧,寿命也被调到非常短的时间,因为以秒为单位,速度以0.1倍的速度非常长。取这些点,根据nage设置密度和pscale,给速度加噪声,然后光栅化密度和速度,这样我们就能输入到火解算器中。

Pyro 求解器的优化

由于场景规模较大,烟雾本身需要将体素大小降低到相当小的数值以保持细节,这里是0.02,并且别忘了将时间尺度设为0.1。至于 pyroSolver 的设置,确保碰撞类型设置为 SDF+Volume Velocity,速度体积是 collisionvel,也就是我们之前为碰撞 VDB 设定的名称。把烟雾藏起来,我们快完成了。

优化说明

确保我们不会输出尘埃模拟不需要的数据,因为体积可能会比较大,我们不想缓存额外的数据。关闭我们不用的字段,比如温度和火焰,并开启一些后期处理功能,帮助缩减缓存大小。

第八步 – 碎片与碎片

最后一个次要元素是碎片,有些是撞击产生的颗粒,还有一些小提琴碎片在撞击后飞舞。先用另一个碎片源,只发射快速移动的大块,然后给这些碎片加上速度噪声,因为原始速度可能太线性,细节不多。在Popnet中运行这些点作为粒子源,Violin和舞台作为碰撞器,同样以0.1时间尺度运行,同时加入一些popforcepopAdvectByVolumes,导入尘埃模拟的vel场,帮助为模拟提供更多细节。这些粒子也为几帧提供来源,但它们的寿命可以大大延长,因为我们会根据它们的能量来调整pscale,让它们随着年龄增长而缩小和消失。

图片[10]-慢动作 小提琴破碎毁灭效果-houdiniUE

复制点和进一步分裂的碎片

复制点中,开启Piece Attribute参数并将其设置为piece,并在Pack和Instance参数中检查。最后,使用归属随机化为碎片添加一个随机名称,因为这将用于分配材料给碎片。

步骤9 – 渲染

我们终于准备好渲染这个场景了!进入Solaris,选下sopImports,就能导入镜头的所有细节。小提琴、弦乐、尘埃、碎片和舞台。根据具体情况,给这些物体分配材料,比如小提琴内部应与外部以及破碎部件内部的质感不同。我们可以重复利用小提琴材料来做碎片,因为它们本来就是小提琴的一部分。

材料分配好后,放下一些灯光和一个karmaFogBox,营造朦胧感。用karmaRenderSettings把渲染拆分成不同的通道,这样小提琴、灰尘、颗粒和木屑在两个摄像机上都分开处理。关于karmaRenderSettings,我们使用Karma XPU引擎渲染,并确保你启用了运动模糊,景也设置为关闭。打开速度模糊,这就足够重现这个镜头了!

图片[11]-慢动作 小提琴破碎毁灭效果-houdiniUE
慢动作 小提琴破碎毁灭效果-houdiniUE
付费资源
慢动作 小提琴破碎毁灭效果
此内容为付费资源,请付费后查看
10积分
版本20.5
格式hip
© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容