涉及结点:copy、attribwrangle、pointvop、mountain、smooth、null、convert
涉及知识:copy替代、模型和刚体之间的转换、刚体解算
涉及快捷键:
快捷键 | |
开始播放、停止播放 | ↑ 、↑ |
退回第一帧 | CTRL+↑ |
鸣谢:aboutcg 的nero black老师
基础知识
下图为maya状态互相转换的示意图:maya中粒子替代无法转换为刚体,除非转成模型再转成刚体,非常麻烦。
houdini的方便之处在于不同的形式之间都是可以相互转换的
SOP——surface operation
POP——particle operation 粒子
RBD——rigid body 刚体
Pyro——烟火
FLIP——水体
DOP——dynamic operation 动力学
下面让我们开始吧~
随机大小、方向和颜色的模型
一
参考小球替代的三种方式的vop方式,在copy中给rotate和scale也添加新的属性
然后将随机属性赋值给transform
最后得到如下模型
插播:控制随机数范围
//控制随机数的范围在0.2~0.5之间
//因为rand生成的数字是0~1的
rand($PT)*.5+0.2
提问:旋转0~360度的随机数如何生成?
rand($PT)*360
二
现在将grid换成一个别的模型,这里我用了cube,在houdini里面转换是非常简单的,只需要将连线改一下就可以了
对了,因为cube默认情况下只有八个顶点,肯定不够,增加分段需要这样做,第一步改为mesh,第二步axis控制分段数目,第三步最好将scale改的大一点,不要让小球们都黏在一起
这一步也可以用vex脚本来完成,只需要三句话就可以了,参考这篇文的vex方式
@Cd=vector(rand(@ptnum)); //颜色
@pscale=rand(@ptnum)*5+0.2; //大小
@orient=vector(rand(@ptnum)); //角度 不用*360
//@orient=@N; //法线方向
做完这一步的效果:
添加随机性
mountain节点可以给模型来点起伏,起伏的大小,粗糙程度以及噪声的模型,都可以调这些参数, 可以自己试试,反正我也玩的不是很明白,回头应该会单出一期讨论一下
然后可以选择让mountain稍微平滑一点(这步是可选的)
添加一个smooth节点
做完这一步的效果
null节点
null节点的作用是过滤掉copy节点里不需要显示的线线,可以对比一下下面两个图,加之前and加之后
转为polygon
why?因为低模的计算速度更快,可以代替高模看看效果
连接convert节点就好啦
转为刚体
退出到obj层级,选中刚才做的东西
不要用这两个:
①这个是转单个刚体的
②这个目前不适合用在这里
用这个
并且选择以打包的方式,打包会让houdini省掉一些不需要的属性细节, 用起来会更快,如果之后需要做一些什么碎裂啊等等,这些需要用到物体具体属性的,一般还是用fractured。但是packed也可以解包,所以这里还是选择打包。
之后会生成一个AutoDopNetwork,这个就是动力学解算啦,可以点进去看一下
将里面的节点安排成下图这样
解算动画
按下“↑”开始动画,最后的结果如下
整个geometry中节点树的结构
ps:如果你用了vex应该会连一个attribwrangle