在制作物体破碎时,我最开始的初步接触,想法很简单,就是只有物体撞到了,才会产生破碎和速度方向,后来参考了一些教程,发现在ihoudini中其实可以给破碎制作力或者说是场,下面来记录我刚学到的一个简单的方法。
首先给物体一个大致的破碎,并用Glue constraint作为约束。我就破了一小块地方,动力解算时也只激活组内的碎块。
制作破碎是由于将碎块全部都primetive了,所以每个碎块都是一个点,在摆放一个sphere,通过Pointvop,用每个碎块的点的位置减去sphere点的位置,算出距离,再将这个向量法线规整化,连到输出端的法线N,此时,可以明显的看到法线方向,也就是我做的力的方向。
由于每个点的位置不相同,所以每个点与sphere的距离也不相同,可以通过length计算出它们的长度,通过fIt成0-1,然后输入到一个渐变中,控制力的衰减,目的就是限定受到力影响碎块的范围。将规整后的法线和长度渐变后的法线通过Multiply相乘,连接到输出端的V,这样,SOP force就出来了。
接着完善细节,给Multiply连接两个parameter,一个用来确定力的作用与否,也就是01的区别,另一个就是与本身的速度相乘,给速度一个倍增或者倍减。pointvop节点图如下:
如何让这个速度影响dop解算呢?
在动力学解算中,使用multisolver,用sopsolver导入速度,删除墙体以外的物体,传递力给物体,使力只能影响墙体碎块。如果需要改变力的方向,只需移动球体位置,这点还是挺方便的。
P.S:第一次用博客记录自己的学习,希望能一直前进下去。博客也能一直更新下去。
时间: 2024-10-15 18:51:28