X
返回顶部
当前位置: 首页> BIM资讯> BIM技术

C4D中的这个功能,90%的人都不会用

发布:中文网小编4号 浏览:2700人 分享
发布于:2021-09-29 15:56

来源:3D科研绘图


大家好,我是独孤嘌呤。

今天我们来研究一下C4D中的运动样条,更准确地说,是Turtle模式的运动样条。很多人只知道有这么个东西,却不知道怎么用,希望今天这篇教程能对你有所帮助。

6005bde5a0fc9c2cef8b681d7bea62cc.png

图片源自百度图片

Turtle意思是海龟,那啥叫“海龟”模式的运动样条呢?简单理解就是,让一只海龟按照给定的指令爬行,最终得到的爬行路径就是Turtle模式运动样条。

所以,我们要先搞清楚,C4D中可以输入哪些指令?

当我们打开C4D,创建运动样条对象,并将其「模式」改为Turtle之后,看到的样条是这样的——

de819216097106f36ca9c0adb1949a26.png

切换到Turtle属性,映入眼帘的是一串莫名其妙的字母和符号(先不要管是什么意思),这就是指令。

de85f5739751c3fc3576e4c42cc9a861.png

这套指令是由生物学家Lindenmayer于1968年提出的一个数学模型,被广泛应用于植物生长过程的研究。简称L-systems。

在L-systems中,有两个关键性的概念:axiom(公理)和rules(规则)。也就是Turtle属性中的「前提」和「规则」。

「前提」定义了整个样条的形状,「规则」相当于样条绘制过程中的约束条件。我们想象,有一只海龟正趴在沙滩上晒太阳。这时候有个人发出指令:往前爬1米。最终得到的就是一根1米长的直线段。对应的指令为F,意为forward。

所以,我们只需要在「前提」栏输入F,就可以得到一段直线。为了显示更清楚,这里我将数值中的「默认缩放」改为了0.1cm(也可以直接改为0)。

5801ce55ed885dfeca42ad8d2335b4d7.png

除了往前爬之外,还要告诉海龟怎么拐弯。这也很简单,-代表往左,+代表往右。

例如:F+F+F,表示往前爬一格(F),向右拐(+),再往前爬一格(F),再向右拐(+),再往前爬一格(F)。一格的长度由「默认移动」值决定,每次拐的角度则由「默认角度」决定。

ef5368b6d81059f250a2384dd0a771d5.png

如果将「默认角度」改为90°,在「前提」栏输入F-F-F-F,将会得到什么形状呢?

答案是一个正方形。

1057e8d5acd4a8f14b42dd4ccfefa167.png

好像并没有很难是不是?我们接着往下看。

刚才只是设定了「前提」,接下来我们设置「规则」。「前提」仍为F-F-F-F,「规则」栏输入F=F-(45)F+(45)F。

-和+还是表示向左和向右,(45)规定了左拐或右拐的角度。上述规则意为:将每个F替换成了前进一格,左拐45°再前进一格,右拐45°再前进一格这样三步。最终得到的图形如下(注意这里的「生长」数值设为2)。

a0d40cd8f079bb196d85d96544f3fd3c.png

当我们将「生长」数值设为3时,就会发现整个路径的走势虽然没有变,但每一步又被分成了三小步。

f2426ff70af997e366db1fbe506f767c.png

这不就是分形迭代吗!「生长」数值就是迭代次数(n)。

再举个例子,「前提」为F--F--F,「默认角度」改为60°,得到的是一个正三角形。

da2e8d05b81d1dff435b5939c61abbad.png

然后将「规则」设为F=F+F--F+F,「生长」值(即迭代次数)为2时得到的是一个六角星形。

39336e4d733040bb44d9f19536c781dd.png

继续增加「生长」值,得到的曲线形状如下。如果你对分形略有了解,应该可以看出这就是科赫曲线,也叫科赫雪花。

f5f166054885d94175fc883050a80b7d.png

类似的我们可以画出各种分形曲线,仅以「前提」F-F-F-F为例,在不同的「规则」下,可以得到以下形状(「默认角度」均为90°):

3f1d8beb7a4e16c8b9d931c0d02e8c1d.png

9951eca33d85b6ca73eeec282bf65d09.png

a6ad72b2a14b17052b4bde6c6b2d55d9.png

b08cb12075206f8057d194d8504dd606.png

在有些情况下,规则可能不止一条,如:

0ca63f4a9b7c9fd14057d08ae20c3f26.png

图片源自The Algorithmic Beauty of Plants, pp 11.

这里的Fl和Fr其实就是F的意思,只不过为了区分,分别用l和r进行标记。比如上面的a图中,「前提」就是F,「规则」有两条,分别为:

Fl=Fl+Fr+

Fr=-Fl-Fr

每次迭代只需将Fl和Fr按照上述规则进行替换即可。

迭代次数为0时,图形为Fl,即F;

迭代次数为1时,图形为Fl+Fr+,即F+F+;

迭代次数为2时,图形为Fl+Fr++-Fl-Fr+,即F+F+F-F+;

……

在C4D中,这里的写法稍微要注意一下。「前提」可写为FA,「规则」分别为A=A+BF+和B=-FA-B(Lindenmayer在他的书中有推导,感兴趣的同学可以自行查看,书名见上图底部标注)。这里的A和B没有具体含义,只作为替换变量使用。

1ffe5a842550740571ed6e31f5d34719.png

类似地,上面b图中的Sierpinski gasket可以表述为「前提」:BF,「规则」:A=BF+AF+B和B=AF-BF-A。(「默认角度」为60°)

6cfaa28752a42175ce98ef3e4b2d561d.png

再比如,「前提」为A,「规则」为A=-BF+AFA+FB-和B=+AF-BFB-FA+,迭代后就可以得到Hilbert曲线。(「默认角度」为90°)

9313398a76dcaebae1f396d1e2bb28e9.png

为了留时间给你们消化,本期教程就讲到这里。相信大家对L-systems已经有了初步的了解,如果有兴趣的话后面我还会介绍怎么用运动样条做各种分叉效果,来模拟不同的植物。


BIM技术是未来的趋势,学习、了解掌握更多BIM前言技术是大势所趋,欢迎更多BIMer加入BIM中文网大家庭(http://www.wanbim.com),一起共同探讨学习BIM技术,了解BIM应用!