刚体破碎和Xplode应用
【闲话】
2015年,又涨了一岁。好长时间没有编写C4D技术文章了,不是“黔驴技穷”,而是最近把大量的业余时间用来研究中医了。这些日子,认真阅读了清黄元御编写的《四圣心源》(古文版)一书。读半,感觉太好了,他把《黄帝内经》、《伤寒》等几部医书理论统一起来了,建立了一个完整的天地人“左升右降”的理论模型,解开了我读《皇帝内经》里很多不明白的问题,这本书非常值得爱好中医养生者一读,等读完之后,我会编写几篇养生感悟与大家分享。虽然研究中医,但计算机也没闲着,翻看博客的“草稿箱”里面已经准备好的“动力学初探”半成品,都编到十五期了,而现在完成发布的的仅八期,后面的刚体破碎和布料还没有谈到;XFROG植物建模,仅写完两期,后边的树木和花草还未编写完成;答应吧友编写的室内外建模刚刚编写二期半成品;角色建模和骨骼绑定还没有着手编写。编写博客技术文章是我凭兴趣而写,题目和内容很是随意,但我坚信:有计划就必须完成这个道理。所以,我接下来要继续完成动力学这个系列,虽然现在对之已经不感兴趣了。
【目的】
1、研究物体”破碎“及插件Xplode1.3
2、研究刚体“激发”属性。
谈到刚体,除了以前研究过的物体相互碰撞,还有物体本身”破碎“问题。
一、手工破碎:我们知道动画里的模型实际上就是一个“壳”。点组成的线,线构成的面,面围成的体,模型里面是空的。计算机为了节约资源,看到的地方就渲染,看不到的就忽略,(法线便是标注面的朝向的矢量)。如果破碎模型物体,只用切刀,而不用特殊的插件,那么分裂开的也是“破碎的面”而已,还必须想办法把这些面,变成独立的体,非常麻烦。为了说明这个道理,下面我们手工制作一个物体“破碎”。
1、首先在场景中制作一个平面,设置如下,按C转换可编辑多边形。
2、选择“面模式”,按K 切刀,在平面乱切割。
3、你以为,这些面是分开的吗?选一个面试试,“在一起”。如何能把这些彼此联系的面分割开来。
4、添加--运动图形--多边形FX(这个对象的功能,在前边谈过),把这个对象放到平面下面,点击“多边形FX”,在属性--变换,位置.X=1,让这些面错开一点。
5、点击平面对象--右键--浮动菜单--“当前状态转对象”。选择面模式,点选一个面,移动一点,发现,这些面是分开的。但是他们还是一个物体平面,只不过是由很多破碎的“面”组成的一个平面(虽然这些面是分离的,但总的来说还是一体的,如果是分开的,那么每个小面就会有一物体,一个名称,而现在他们是一个物体一个名字)。
6、选择所有面,按D,八面变成体。(这个物体是由一些独立的小物体组成的一个整体),如何把这些小物体拆分开来呢?
7、点击菜单-运动图形--分裂对象(这个对象能把一个物体的子物体分离控制),选择模式:分裂片段。为分裂物体添加刚体标签。再建立个地面,赋予碰撞体标签。
8、点击分裂的刚体标签,在下面属性--碰撞--设置如下(以前谈过)
9、点击动力学属性。
刚体和碰撞体之间相互碰撞,是否发生动力学动画效果,是由“激发”选项决定的。C4D系统默认为“立即”,那么,当点击播放模拟时,刚体物体会在“场”的作用下立即放生效果。为了解决动力学复杂问题,C4D设立激发选项,包括以下选项:1、立即;2、在峰速;3、开启碰撞;4、XPRESSO控制。这四种动力学启动方式非常方便制作复杂的动画。默认“立即”。
10、点击播放测试,发现这一个物体,在分裂对象的作用下,按照切刀切割生成的子物体,与地面碰撞散开了。这就是手工制作碰撞的方法之一,虽然麻烦,但是你能明白不只是动力学的问题吧?
11、手工制作的物体破碎还是太假。如何把一个物体很自然地破碎开来,再配合动力学制作出漂亮的动画呢?
只能靠第三方插件来完成。
【补充】
其实不用这么麻烦,在上面第5步,我们可以这样:
1、既然这个面是由彼此独立的子物体构成,那么我们用到一个命令,就可以把它们拆分为多个物体。
2、这个命令在--菜单--网格-转换-多边形组到对象。父物体-平面为原来的物体,下面的平面1-平面30为拆开的子物体,把这些都选出来,删掉原来的“平面”父物体。
3、选择所有面,按D,挤压成体。再选择“对象”模式,任选一个物体,延Z拖出看看,不错吧。
(这又是处理多边形的一种方法,都是基本功,多边形建模实际上就是灵活地对点、线、面的“摆弄”。)
二、破碎插件:
目前在C4D上应用的破碎插件按照功能排序有:
Xplode1.3 、Thrausi 1.36 、NtriBlast 1.02 这些破碎插件功能一个比一个强大,我会结合研究刚体动力学的同时,分别介绍这些插件的应用。这次,首先谈谈Xplode 1.3。这个插件可以在网上查到,下载复制到:
MAXOM\CINEMA4D\PLUGINS\下面。在C4D菜单--插件--可以找到 XPLODE。
random seed :随机种子,种子数不同,破碎的形状不一样。
no of parts:破碎数量。
power: 强度 能量 add:添加破碎点, clear :清除破碎点,scatter: 执行破碎
triangulate :三角面 inside Mat: 拖拉一种材质在此,允许指定一种材质应用于所创建破碎面。
四个图标为 空物体、克隆、分裂、矩阵 (破碎父物体是什么,你自己定)
part name: 破碎物体的名字。
下面通过几个练习,熟悉这个破碎插件:
第一练习:
1、在场景中复制出两个一样的立方体,选择:立方体1,设置xpolde 如下图所示,种子数为12347,分裂为10,父物体为:空物体;parts name: A。设置完后,先点击 ADD按钮,在立方体1上出现一些分裂点,点击SCATTER 进行分裂。
2、分裂完成。xplode trash 垃圾下为原来的物体,插件已经把它隐藏了。A目录下的为分裂的子物体碎块。
3、选择:立方体,设置xpolde 如下图所示,种子数为-1101,分裂为20,父物体为:分裂对象;parts name: B。设置完后,先点击 ADD按钮,在立方体上出现一些分裂点,点击SCATTER 进行分裂。
这是B破碎生成的物体。
4、为A\B两个父物体添加刚体标签,动力学--激发--立即。涉及到子物体,必须在:碰撞--设置如下:
5、为地面添加碰撞体。
6、把B物体移到远一点距离,点击播放测试。
7、这个碎片很真实,左侧B物体为20块,右侧A物体为10块。
8、发现物体会散开很远,如何能让物体散开范围小一点呢?增加摩擦力,减小反弹,这是个办法。但效果不明显。
9、点击B物体的刚体标签---力。提高线性阻尼和角度阻尼的数值,这两个选项能使阻碍物体的散开的距离和散开的旋转,好像在粘油里一样。
10、测试看看,B物体果然变成一堆了。
11、再提高一点,效果更明显。
第二练习:
左边的立方体勾选了 Triangulate ,右边的没有勾上。
第三个练习: 二次破碎。
1、建立一个立方体,首先破碎30块。选择工具,可以随机选择任意一块。
2、选择其中一块,xplode设置如下,点击scatter ,进行二次破碎。
3、生成为a的空物体,下面有50个子物体。
4、同理,选择几块物体,进行二次破碎,名称为b,c。
5、把a b c 父物体拖入 pieces物体中。点选 a父物体---右键(浮动菜单)--删除(不包含子集)命令。这个命令就把a 父物体下面的所有子物体释放出来, a被删除。
6、建立刚体标签。注意设置如下:
7、增大-力--阻尼设置,阻止碎块的扩散。
8、点击播放测试,哇!一堆石头啊。
第四个练习:控制破碎范围
1、在场景中建立一个立方体和一个小球。
2、点击小球,点击xplode插件的add, 添加破碎点。xpode是以球体的大小范围进行布点。
3、把小球半径增大,点击add 再增加破碎点。
4、把小球半径再增大,点击add 再增加破碎点。
5、现在删除小球,他的用途就是告诉破碎插件产生破碎点的范围。
6、点击立方体,再点击xplode 的破碎命令。
7、这些破碎点在立方体上生成了中间密集,外边稀疏的碎块。点击插件的clear,清除破碎点。
8、为破碎的物体添加刚体标签,做如下设置:
9、把破碎物体的动力学标签--动力学--激发--“开启碰撞”【新的知识点】,点击播放测试,物体一动不动。这个设置必须有物体碰撞触发它,他才会有作用。
10、添加地面(碰撞体)。
添加一个小球为刚体,用来冲击触发破碎的墙体。设置其初始线速度为2000CM,延Z轴方向,正对破碎物体。
11、点击播放,小球撞击破碎墙体,触发碰撞,墙体开始破碎,由于速度很大,整个墙体四分五裂。
12、如何控制墙体的破碎范围呢?
在激发--激发速度预置--300cm ,发现墙体不在四分五裂,而是撞开一个大洞。
13、在激发--激发速度预置--928cm ,,而是撞开一个小洞。你明白了吗?
继续增大,小球被弹回来,墙体中间碎了一点。
第五个练习:
在场景中制作一个立方体。制作两个材质一个是灰色的赋予给这个立方体,另一个红色材质的拖给xplode的内部材质(inside mat),破碎数目为20,点击ADD添加,再点击破碎。xplode trash父对象下隐藏的原物体,a父对象下是20个破碎的物体。我们移动一个物体,发现红色的材质在里面。
xpolde插件生成的内外不同材质,是通过面选择集实现的。
第六个练习:
XPOLED插件支持C4D的TP粒子,组名为"XplodeGroup“。正在研究中........
【后记】
上边讲解了xpolde插件的应用,同时进一步继续研究了动力学的其他控制参数。如何灵活应用是关键,好比老师教你各种公式,你必须用之去解决不同问题,这必须动脑。
【思考】
通过这个xplode插件,我们可以制作一个玻璃酒杯破碎的动画:一个钢球击碎透明的玻璃酒杯。可是,如果我们先把酒杯破碎,虽然酒杯是完整的,但在渲染时,能看到没有被击破的酒杯裂纹,如何解决?如果我们制作动画的时候,钢球击碎酒杯的瞬间,如何能制作出慢动作效果呢?