【教程】houdini 破碎的艺术 第一季 08两种物质黏合破损制作
从这周开始会更新一个破碎的系列教程:一共有两季,包含了30多套教程,基本上包含了破碎的各个方面,学完这套教程可以对RBD基本上各个方面都有所了解,特别是各种约束,各种使用方法,各种破碎的效,而且课程简洁明朗,是CG猎人强烈推荐的那种教程
视频教程
学习笔记
基本设置
两块box分别命名为box_interier和box_exterior分别制作破碎和链接在一起,并且分别设置hard constrain 约束,分别命名为 hard_interier和hard_exterior
同时设置碰撞区域的active为1,其他的为0
注意,约束是基于名字name属性
如果没有修改内部墙和外部墙的破碎name属性:默认是piece,那么约束会在他们自己内部和之间都会有(也就是houdini无法区分什么是内部墙,什么是外部墙)
所以在assemble赋予name属性的时候一定要区分开
设置小球动刚体
在动力学中设置
在动力学中加载小球和box,并且分别调用两个hard constrain relationship,并且设置sop sovler进行条件判定删除
完成效果:内部墙自己结块,外部墙自己结块
下面设置两块墙l之间的关联设置
找到他们之间的重叠的区域
原理,基于之前的proomte节点(把name从primitive转化为point层级后)scatter分别撒点,使用attribute rename节点把 name的值存储到一个previous_name中(这个在动力学中需要识别)→attributewrangle 重新定义个name属性 分别命名为interior和exterior→merge 合并
目前视图就是一堆点,但是厚的墙的name的值是interior,前面薄的墙的name的值是exterior
使用connect adjent pieces节点会一句name的值查找不同的值链接,也就是中间部分(设置查找范围和数量;通过fuse节点把独立的点删除,仅仅保留primitive line其实看到刚好的是两个墙面的贴合部分
链接完成后使用attribute delete节点把这个name删除,然后使用attribute rename节点把之前存储起来的previous_name存储为name→primitive缩放→wrangle添加constrain的名字
在动力学中增加多一套约束
第二套约束就是用来制作两个墙之间的约束
解算查看第一个墙和第二个墙也就约束在一起了
09处理提前破碎和后续抖动问题
使用rbdkeyactive节点,可以给active
可以使用表达式,也可以是k关键帧,但是注意关键帧要使用0和1的constant过度,也就是没有过度的关键帧形式,因为acitve只存在0和1两种状态(布尔值)
找到碰撞前的帧和最后不需要解算的帧进行设置