这个标题看上去或许有一点矛盾,因为粒子系统在Blender里是一个独立功能,我们为任何一个物体添加粒子系统时,它都会以物体为原点作为发射端或皮肤端,而几何节点的功能基础也同样建立在物体本身,但它能实现很多粒子系统无法实现的功能,比如我们本期教程将制作的效果目前就只能通过几何节点来实现。
首先,打开2.93Beta或3.OAlpha版本,将默认的方块缩小,应用缩放,然后新建一个平面,而这个平面就是我们应用几何节点的“主角”,如图1所示为平面添加几何节点,你会在修改器里发现自动添加了一个几何节点修改器,当你需要对这块平面做多种功能复合时,记得一定要准确设置修改器的顺序,这一点跟粒子系统等功能模块是相同的。
接下來我们让平面作为源,方块作为实例来做粒子效果,在组输入和组输出之间加入一个“点实例”,将物体设置为方块,你会看到平面消失了,取而代之的是4个方块,而这4个方块所处的位置其实恰好就是平面的4个顶点,如果对平面做细分,你会发现每一个新增的顶点都会覆盖一个方块,相对于无法调整,只能随机分布的粒子系统来说,几何节点可控性要强很多。
而且即便是随机分布,几何节点同样更容易调控参数,在点实例之前加入“点分布”,你会发现方块的布局被打乱了,你可以通过调整密度最大值来增加方块,但如果你不想让方块之间互相重叠,可以将分布方式从随机改为泊松盘,然后调整最小间距值,这样它就能在方块之间不重叠的情况下实现粒子效果,如图2所示。
想要控制缩放,首先是可以通过属性随机化来打乱方块的缩放,当然这个方法也可以控制位置、旋转等,属性是几何节点里比较重要的功能模块,很多时候我们都需要确定调整的究竟是哪个属性,而且我们还可以添加新的属性。接下来我们就需要新建一个球形空物体,逻辑上来看就是将空物体与方块之间的距离作为系数,来乘以缩放值,这样就实现了距离越远,缩放越大或越小的目的。具体操作上,首先需要在几何节点编辑器里新增一个物体信息,并将其与几何数据通过属性矢量计算来进行“距离”比较,这时候就可以定义一个新的属性“distance”,也即距离,然后我们使用缩放来乘以这个距离,并将结果反馈同缩放,这时候你会发现所有方块都消失了,这时候只需要在点分布后面跟一个填充属性,将缩放值设定为1.即可看到如图3的效果了。
如果你想要中心大而边缘小,可以在属性矢量运算和数学属性之间新建一个属性颜色渐变,属性和结果都设置为distance,翻转颜色渐变就能实现了,而如果想要进一步控制缩放的范同,可以在属性颜色渐变前再加入一个数学属性,用distance去除以一个浮点数,就能实现范同的缩放了,再加上旋转和位置的属性随机变化后,就能实现与空对象原点越近的方块缩放越大,反之越小的效果了,具体可参考图4。
在视频教程的片头,我们就利用了本期学习的内容设计了一个跟随飞行器移动而迅速缩放的花丛效果,如图5所示,有兴趣的朋友可以扫码观看。