3D建模时经常遇到需要围绕中心环绕排列的对象。比如轴承,车轮毂的螺丝等等。


常用的方法是建立单个对象的模型,然后利用Array Modifier建立重复的对象,最后围绕一个空对象进行旋转,本文总结这种用法的具体步骤和注意事项。
先看一个简单的例子,用Blender的猴头建立12个猴头围绕中心面对面,好比猴头们围绕篝火开会一样的场景。
Blender中插入一个猴头模型。

保持猴头面部朝向中心的位置对其平移。

选择猴头的对象时,为其添加Array Modifier。

数量改为12.

取消或关闭(不勾选)默认的Relative选项,Relative是相对某个轴向的间隔偏移量。

Shift+A,插入Empty - Plain Axes,将这个空对象作为旋转控制对象。


选中猴头,在Array Modifier中勾选Object Offset,并选择Empty作为参考对象:

此时会发现猴头是逐个放大的:

选择空对象Empty,选择Object菜单的Apply项,再选择Scale

这样猴头的大小就是一样的。

猴头之所以是沿着Y轴以此排列,是因为Array是从对象的Origin点出发,沿着Object Offset设置的对象排列开来,这里Object Offset设置的对象就是空对象Empty,那么以猴头的Origin为起始点,以猴头Origin和Empty的Origin间距为半径以此展开(或者放射出去),最终形成了目前的排列方式。

所以当移动Empty时,整个猴头队列就好比狗尾巴一样随之摇摆。
(1)将Empty往X轴方向平移,队列就往X轴放行“摇摆”,而且X轴的偏移也会影响后面的猴头.

(2)再将Empty往Z轴方向平移,队列又往Z轴方向“摇摆”

要让猴头面对中心环绕,则需要将猴头的Origin移到坐标轴的原点,也就是Empty的原点,也就是说让猴头的Origin与Empty的Origin重合。注意Empty的Origin要回到原点。选择猴头,选择Object - Set Origin - Origin to 3D cursor (此时3D cursor就在原点)

此时满屏幕飞的猴头就不见了,他们现在全部重合在一起。选择Empty,按R,再按Z,让Empty以Z轴为旋转轴旋转。就可以看到猴头们围绕Z轴旋转出来。

在选择属性栏,输入360/12可以让12个猴子均匀分布在360度的圆形上。

这样就可以实现“猴子开会”的排列方式。

注意,如果想整体平移猴子们,比如往Z轴上方平移,无论平移猴头,还是平移Empty都会出现猴头们变成螺旋上升的情况。
平移Empty往上时,猴头们螺旋上升了。

平移猴头往上时,猴头们螺旋下降了。

如果要平移,则有两个方法:
方法一:选中猴头,进入Edit Mode,平移猴头,但是这样改变了猴头与自身Origin的位置关系。

方法二:添加另外一个空对象,将这个空对象与猴头们和之前的Empty对象设置为父子关系。
在Object Mode,添加一个空对象Single Arrow。

按住Shift键,依次选择,猴头,Empty(轴)和Empty(Single Arrow)【谁当父亲,就最后选谁】,然后按下CMD+P(Windows应该是CTRL+P)在弹出菜单选择Object。

在对象Collection窗口,可以看到Empty.001已经是其他两个对象的上级。

选择Single Arrow空对象,往上平移就会发现猴子们也同时平移,这是想要的结果。

同时还可以通过改变Empty来继续控制猴头的环绕。
比如,将猴头增加到36个,那么Empty的旋转角度为360/36.
哇,看起啦很拥挤,但是很好控制。

引入Single Arrow空对象的另外一个好处就是可以方便的控制旋转角度,旋转Single Arrow,让其围绕Y轴旋转90度,这样整个猴子们就变化了。

如果把猴子换成球,就变成了轴承的钢珠。换成螺丝,就变成轮毂的配件。
感兴趣的话,下图可以自己尝试实现。

网友评论