HELLO小伙伴们,又到了每周一次的软件小讲堂。上期文章我们使用循环运算器完成了一个基础植物线稿的制作,但是制作的结果却不尽如人意。一方面树木分支的现象并没有得到体现,另一方面树木的造型又过于的单调和重复。因此在今天这篇教材中,我们就需要解决这两个问题。
STEP 1
我们首先解决重复的问题,通过观测参数可以知道,重复的根本原因在于这三个random运算器生成的结果是一直不变的,这也就导致了水平方向角度的改变和垂直方向角度的改变在不同的循环中不会有没有任何的变化。(水平方向改变2.422463弧度,垂直方向改变2.153709弧度)。而枝桠长度之所以是会递减是因为我们把不变的随机数乘以了一个之前线段的长度,而长度这个参数是会随着每次迭代变化的,这也就导致了枝桠长度的不断变小。不过当前长度这个参数也有问题,就是在于它是原线段长度乘以一个定值,这就导致了长度是均匀变小的(后一个枝桠一定是之前枝桠的0.685547倍),而自然界植物枝桠的长度变化是随机的,因此也需要对它修正。那对于random运算器而言,如果我们想获得不同的随机结果,其实只需要给它们添加不同的种子值。参考对于d值的处理,我们可以把线段长度作为seed的输入端进行迭代,这样每次随着线段长度的减少,这三个随机运算器就会生成不同的随机数,从而让后续极坐标点的方向改变和长度改变各不相同,避免树木造型的重复。那在这为了加强后续的可调整性,我们可以把线段长度分别乘以一个数字用于这三个random运算器,这样实际上就可以通过这三个滑杆来创造不同的随机可能性,生成不同的树木造型。到此为止我们就解决了重复的问题,下面开始解决没有分支的问题,树木分支数量直观上是由每一次循环生成极坐标点的数量控制的。而点的数量是由point polar输入端参数数量控制的,也就是xy,z和d的数量。所以当我把N改为2的话,大家可以发现每一个主干都会生成两个分支但是同样对于树木,分叉数量是随机的,不可能每一个树枝都是规则的分为两枝,所以我们还需要对这个数量使用随机。为了让后续分叉数量这个数字在不同循环过程中也发生变化,把线段长度带入random运算器的seed输入端。点击loop start进行循环。那大家啊可以发现到此为止,我们就完成了对于整个树木生成逻辑的修正,避免了重复和没有分支的问题。
STEP 2
因为生成树木是一个比较普遍的操作,而每次连接这么多运算器又不免过于麻烦,所以在这我们可以尝试制作一个打包运算器,方便后续的调用。因为在树木制作过程中我们使用了一个外部插件Anemone,为了避免后续不同用户插件识别的麻烦,在这我们就把内部循环的这一部分制作一个打包运算器。
首先把所有需要调整的参数先连接到一个对应的params运算器中(曲线连接curve,滑杆连接num),在从这些参数接受运算器连接到各自对应的输入端上。
之后点击这些参数接受运算器,已经各自对应的属性,修改它们的名字
输出端也使用相同的调整方法。
全部设置好了之后,点击中键选择cluster进行打包就完成了打包运算器的制作。
为了进一步方便以后的调用大家还可以将这个打包运算器定义为用户物件,选择运算器,点击文件-创建用户物件
在这各位可以给它起一个合适的名字放在特定的为止并绘制图标。
之后如果需要绘制曲线树,就可以直接选择这个运算器,结合Anemone循环插件用于生成树木。
STEP 3
如果有小伙伴感觉跟着教程自己制作有困难的话也可以直接使用我做好的运算器。大约三年前我就在food4rhino上面上传了这个打包运算器,大家只要去food4rhino输入我的名字Hong Chen就可以找到。
在food4rhino上我上传了两个版本的线稿树,一个是曲线版本的,一个是直线版本的,使用方法都完全相同。只不过一个是曲线造型一个是直线造型,大家可以依据自己的需要选择。
那到此为止,本期GH线稿树木系列教程也就暂时告一段落,各位如果有什么想了解的软件知识的话,欢迎留言互动,下周再见啦。