breake效果——houdini浅尝&备忘

用户头像
重庆/三维设计师/5年前/267浏览
breake效果——houdini浅尝&备忘

自用

首先整理一下思路,这次要做的是一个破碎的动画,首先是工作流:

预计首先用ZB取得一个精度比较高的模型,然后把模型丢到Houdini中进行破碎模拟,再导入C4d做镜头动画,最后用rs渲染pr稍作修改出片。



模型准备——ZB

    细分拉高,但受限于渣机,最终只能折中27W面。

    ZB可以与c4d通过默认插件goz互通,所以我一般喜欢先导入c4d看下模型效果;再导出模型。


效果制作——Houdini

    

首先整理思路,首先就算是houdini面对大量面的同时也会产生卡顿,甚至崩溃。所以在制作的过程中需要就行多次优化(optimize)和缓存(cache)。首先需要产生破碎的块,产生块以后用动力学(dop network)进行约束。


首先需要对模型进行减面(polyreduce),这能极大的加快模拟(sim)的速度,如图我缩小了10倍。


碎片的生成使用的是booleanfracture 它可以用两个物体相切的形式用B将A切割。

先制作用于切割的B,可以手操但是也可以用更程序化的操作来生成,我属于后者,

生长一些点,然后通过copytopoint将刀片(grid)放置到点的位置上。

首先scatter在模型表面撒点(亦可以用pointfromvolume在体积上撒点,效果会更好),我通过delete对撒点的位置进行了比较细致的调整,以让破碎更为细致。

用attribute randomize可以对点的属性进行随机的修改,如图修改点的法线为随机方向

然后是负责切割的面,新建一个grid,添加mountain


可以切割出凹凸不平的感觉


然后copytopoint,前面提的attitude randomize 十分必要,不然grid将以平行的方式copy


然后就可以把模型和刀片(grid)接入booleanfracture

再外接一个explodedview可以查看碎裂情况


为了后期上材质方便可以将碎块分组(group),分组可以在c4d中继承,以选集方式。

对象破碎就到此为止。

然后为了后面结算的速度,将破碎后的模型缓存一下,新建file cache

$HIP表示houdini文件的位置

$HIPNAME表示houdini文件的名字

$OS表示节点的名字

如,以上缓存的文件名字如下


接下来是最重要的数据整理和优化!!!


首先用assemble将所有破碎的方块重新排序


然后用null 作为一个阶段的记录,到此为止就是高模的完成


convex decomposition 可以在保持物体体积形态的情况下(需手调),给对象减面。

效果还是非常明显的


然后在这个基础上,进一步进行减面


通过for each name primitive 可以按照块的序号来单独调整每块

再次减面,这里比较复杂,首先是a,b两个减面条件不一样

a在原有基础上保留百分之3

b仅保留4个面

然后是switch

nprims(0)指每块对象的面数

nprimis(0)小于4结合switch及当通过a以后面数小于4的即返回,重新通过b,即以4个面的结果往下传递。


接着可以新建一个null作为低模 ,可以看出经过二次减面,目前面数已经下降到10K级别


利用assemble把面打包,即同一个物体的面打包在一起算作一个对象,简化动力学运算

可以看到打包后面数已经来到k级别了,优化到此


动力学部分


千辛万苦,终于到动力学部分了,

首先明确,要做破碎,那肯定是用刚体动力学(rbd dopnetwrok),

刚体动力学也有细分,首先是整体的刚体动力学(rbd object、rbd solver)

用于一整个刚体解算


然后是不知道如何翻译的(rbdpackedobjet、rigidbodysolver)

用于打包物体解算


rbd不需要source,只需要将输出对象的节点放到object


然后给一个重力(gravity)就可以看见破碎效果了。


然后返回模型geo,在LOW 下方接入dopimport可以将动力学效果引入,然后用houdini非常牛批的一个节点transformpieces,可以将低模(LOW)的运动同步给高模(HIGH)。如图A的运动会继承B,及可以只运算低模的动力学就可以实现高模的动力学,从而节省大量的解算时间。


回到动力学

现在破碎的效果是不可控的,它会整体的在重力下掉落。


constraint network 约束条件 类似于一个base,可以把动力学(约束条件)加到已有的network里。

glueconrel 字面意思,胶水,将方块黏在一起。stength 相当于多少强度的力会让物体“断开”


glueconrel 粘合需要顺序,即粘连的对象,不像c4d会自动选择周围的对象,houdini中需要手动生成一条序列,作为粘合的顺序

这里用connect adjacent pieces 将各个方块连接起来,search radius可以调整连接范围,max connections可以调整连接的最大数量。


接下来需要为创建的序列命名


返回glue 会发现这里面有生成一个用于连接的属性 data name——ConRelGlue

我们把这个连接属性赋予constraint network 这里的做法是用attribute create 将ConRelGlue赋予constraint_name

再将constraint_name 输入到constraint network


这样子所有碎片就粘合起来了,


最后则需要让物体按照喜欢的方式破碎了,

这里想让它沿着一条曲线的顺序破碎

新建curvel 打开追踪,沿着模型画出自己想要的破碎顺序

用resample在curvel上撒点,细分,平滑

然后用ray追踪对象,将点贴合到模型表面,方向是A追踪到B上

用smooth平滑一下

通过pointvop将点的pscale属性通过ramp调整

新建carve 可以实现首位的变化

然后用delete选择最前面的点

再用copy to point 将包含pscale属性的sphere复制到点上










note:

    force

    popmetaballforce

    switch  可以实现帧数取余等于2且帧数小于72时为右


0
举报
|
收藏
分享
相关推荐
评论
用户头像
评论你的想法~
表情
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
三维金融创意股票基金金融模型
旋转的漩涡和流动的线条,三维渲染
矢量三维场景彩色质感球体抽象海报
深蓝色三维科技地球,全球化、国际化、科学技术概念抽象图形
扁平化抽象几何三维模型创意时尚海报
红色三维概念礼盒背景
三维曲线空间背景
三维渲染城市背景
矢量抽象三维几何图形创意海报
三维渲染炫彩背景
三维户型剖面图
三维渲染的老年医生
三维地形图,等高线。抽象的点线科技背景,类似云端数据连接、区块链、神经网络的概念。
三维渲染极简空白室外背景
三维界面科学技术,科幻场景矢量背景图。
三维上海城市天际线
点线连接的科技矢量背景,三维抽象矢量星球,寓意全球化、国际化,球形世界地图
三维渲染抽象波浪流金风格背景
三维渲染红色礼盒
黑暗房间内的金属方块展台,三维渲染
三维渲染的简约简洁极简风格几何体场景海报
红色喜庆风格的三维产品展台
实验室三维场景
矩阵立方体三维空间科技背景
三维渲染极简北欧风现代家居装饰场景
你可能喜欢
相关收藏夹
大家都在看
登录注册