说实话,很多玩 Blender 的人一听到"阵列"两个字,第一反应就是把阵列修改器拖出来、把数量调大、完事。但如果只是这样用,阵列修改器连一半的功力都没发挥出来。真正做得好的"空间列阵",应该是能沿着曲线流动、绕着圆环旋转、铺满曲面甚至按密度随机散布的规则排列——从建筑表皮到珠宝建模到轨道装饰,本质都是这一套东西。
这篇文章我会从阵列修改器的三种偏移方式讲起,再一步步走到空物体驱动的放射阵列、曲线阵列,最后过渡到几何节点的曲面分布。整个过程会穿插不少我自己做项目时踩过的坑和验证过的细节,适合从零基础到中等水平的玩家,看完之后你应该可以摆脱"只会一排排复制"的状态,把阵列真正用到你的模型上。
1. 先搞懂阵列修改器的底层逻辑:偏移才是灵魂
阵列修改器本身不难,难的是理解它每个参数在做什么。很多人调了半天,发现物体往乱七八糟的方向堆,问题基本都出在偏移设置上。先把这个底层逻辑吃透,后面所有技巧才有立足点。
修改器面板里有三块偏移参数:相对偏移、常量偏移、物体偏移。它们不是三个能叠加的"增强效果",而是三种互不冲突的位移来源。你可以只开一种,也可以两三种同时用,修改器最终输出的位移就是它们叠加后的总和。很多人误以为这三个是单选,结果物体位置超出预期,就是没搞懂这一层。
1.1 相对偏移:最直观但最容易踩坑的起步方式
相对偏移是默认开启的一项,它按物体自身尺寸的倍数来产生位置增量。比如一个边长 2 米的立方体,X 方向相对偏移设成 1,那每个副本就会在 X 轴方向间距 2 米排列,首尾相连。这个逻辑很像"一个个物体排队,后一个紧贴前一个"。
它最方便的地方在于:你去缩放原物体时,阵列间距也会跟着变,整个排列始终是紧密拼接的。做墙体、格栅、地板格这种人字形或直线排列非常合适,不需要手动算间距。
但这个参数也最容易埋坑。它所谓的"自身尺寸"是物体在世界坐标下的实际尺寸,如果你给物体加了缩放却没有应用(Ctrl+A 应用缩放),相对偏移计算时会把这个缩放算进去,结果间距会突然翻倍或者变得稀碎。我遇到过好几次,模型在 0.5 倍缩放下,阵列却按照原始尺寸去排,中间隔了一大段空当,查了半天才发现是缩放没应用。
1.2 常量偏移:精确建模的度量工具
常量偏移是纯按世界坐标的数值来移动复制体,单位就是 Blender 场景中的米。它完全不管物体尺寸,你填 X 偏移 0.3,每个副本就在 X 方向前进 0.3 米。
这个模式在精确建模的场景里非常吃香。比如你要做一段楼梯踏板,每级高度固定是 0.18 米、前后错位 0.25 米,那直接在 Z 和 X 常量偏移里填 0.18 和 0.25,循环往复,出来的台阶每级误差完全一致。同理做格栅板、通风孔、管道重复段,用常量偏移可以精确卡住设计尺寸。
不过要注意的是,常量偏移只产生沿轴向的平行移动,不能产生旋转或缩放。想要副本之间带角度、带渐变大小,必须靠第三种偏移。
1.3 物体偏移:通向任意排列的钥匙
物体偏移是整个阵列修改器里最值得花时间研究的一项。它的原理是这样的:你指定一个"偏移物体"(通常是一个空物体或者另一个参考物体),阵列在生成每个副本时,会按照"复制体相对于原物体的距离 = 偏移物体的原点位置与偏移物体自身原点的相对位置"这个递增关系去排列。
简单理解:如果你新建一个空物体,把它放在原物体旁边某个位置,然后开启物体偏移并指定这个空物体,那么阵列的第一个复制体会出现在相对于原物体等于空物体相对原物体位置的地方,第二个复制体再继续叠加同样的位移。
旋转和缩放也是同样的逻辑。如果你把空物体旋转 30 度,那么阵列每个复制体相对前一个都会额外旋转 30 度。把空物体缩小到 0.8,每个复制体会越来越小。这个特性一旦用起来,前面说的相对偏移和常量偏移就完全不能比了,它是做放射形、渐变形、螺旋形的核心手段。
下面用表格把三种偏移整理一下,方便你对照选型:
| 偏移类型 | 控制依据 | 是否支持旋转/缩放 | 典型用途 |
|---|---|---|---|
| 相对偏移 | 物体自身尺寸倍数 | 否 | 紧密拼接:墙体、地板、格栅 |
| 常量偏移 | 世界坐标固定数值 | 否 | 精确直线排布:楼梯、管段、孔洞 |
| 物体偏移 | 空物体变换(位置/旋转/缩放) | 是 | 放射阵列、螺旋堆叠、渐变缩放 |
记住一句话:排列规则越复杂,越要靠物体偏移;如果你只是想一排排复制,常量偏移或者相对偏移就够了,混用反而容易乱。
2. 从直线到圆环:亲手做一个放射状阵列
理解了物体偏移以后,第一件值得做的小项目就是放射状阵列。所谓放射阵列,就是一堆副本围绕一个中心点均匀分布,形成一个环形。从齿轮齿、花瓣、灯环到座位布局,靠的都是这个思路。
值得一提的是,这个操作完全不需要任何插件。网上有些教程会让你用 DupliVerts 或者 Particle System,那是旧方案,现在用零物体加阵列修改器就够了,干净又可控。
2.1 用空物体做旋转中心的核心原理
做环形阵列时,你的偏移物体必须是一个空物体,而且这个空物体要放在阵列的中心点位置。具体操作分三步:
- 新建一个空物体(Shift+A,选 Empty,推荐 Plain Axes),把它放到你想要阵列环绕的中心位置。
- 选中你要阵列的原始物体,添加阵列修改器,把数量调成你需要的份数,比如 6 份。
- 开启"物体偏移",在右侧的拾取框里选中刚才那个空物体,然后把空物体的 Z 轴旋转改成 60 度(360 除以 6)。
这时候你应该看到物体围成了一个闭合的圆环,Origin 都在圆心。原理不复杂:阵列修改器每生成一个复制体,都根据偏移物体的相对变换递增一次,空物体旋转 60 度,复制体就绕圆心转 60 度,转满 6 次正好一圈。
这里有个非常关键的细节:你在做这类阵列时,物体的原点(Origin)决定了它和圆心之间的距离。物体离空物体越远,环的半径就越大。但如果你直接移动空物体,环不会变大,只会整体平移。要调整环的半径,需要移动的是原始物体本身,而不是空物体。
2.2 环形阵列的参数换算:多个物体正好首尾相接
做闭合环形阵列,第一要务是让份数和旋转角度匹配。公式就一个:旋转角度 = 360 / 数量。很多新手在这里出错,是把空物体的旋转设成了 360 除以数量再加上一个额外偏移,导致收尾的地方不是错开就是重叠。
当你做 12 份物体环绕时,空物体 Z 旋转必须是 30 度。如果物体本身还有朝向,你还得在编辑模式下把原始物体的朝向对准径向方向,然后空物体只负责旋转位次,这样复制体才能像钟表刻度一样,各个方向整齐指向圆心。
想要阵列带间隙,不要让角度偏移偏离 30 度,而是应该在物体自身比例上做文章。举个例子,做 12 个花瓣绕圈,物体之间留一点空隙,你可以把 360 除以 12 的 30 度作为空物体旋转,再把花瓣模型本身横向缩短一些,这样生成的花环看起来有间隙、但位置仍是均匀的。间隙和均匀分布可以分离处理,改起来也方便。
2.3 螺旋阵列与空间堆叠:阵列+旋转缩放组合
环形阵列只是基础,真正有意思的是螺旋。把空物体的旋转和缩放同时用上,阵列就会变成越转越小的螺旋结构,或者越转越大的渐开线形状。
操作上,把空物体绕 Z 轴旋转一个角度,比如 15 度,同时在 X、Y、Z 任意轴向缩放到 0.98,这样阵列每转一圈就会收缩一点。多循环几次之后,物体会像蜗牛壳一样向内盘旋。反过来缩放大于 1,就变成向外展开的螺旋。
如果还想让副本逐层上升,可以在空物体位置那一栏再填一个 Z 方向增量。空物体每被阵列应用一次,它的位置信息同样会递增,所以给空物体的 Z 坐标填一个固定的 -0.02,整个螺旋就会一边旋转一边上升,像弹簧一样。
需要注意的是空物体的缩放在螺旋里会产生一个副作用——缩放影响的是偏移的递增量,而不是直接等比缩放复制体。所以当你看到复制体间距越来越密时,那正是因为你把空物体缩放了,间距本身就跟着缩减,而不是物体变小了。理解了这一点,你就能精确控制螺旋收拢的快慢:缩放越偏离 1,收拢越快。
3. 沿曲线排布:让阵列跟随路径走
环形阵列解决的是绕中心点分布的问题。但现实里还有大量"沿着某条不规则路径排过去"的需求,比如铁轨枕木、管道法兰、灯带、绳索纹理。这类需求靠手动摆会摆到怀疑人生,正确的做法是"曲线加阵列"组合。
3.1 曲线修改器与阵列的联动
沿曲线排布的核心方案是:给物体叠两个修改器,先加阵列修改器生成一排副本,再加曲线修改器,让整排副本沿着一条曲线路径变形排列。
具体操作顺序是:
- 创建一个平面或立方体作为单元物体,添加阵列修改器,数量设大一点,比如 50 个,相对偏移 X 方向设 1,让它们沿着 X 轴排成一列。
- 新建一条曲线,用贝塞尔或路径都行,调整成你想要的形状。
- 在阵列修改器下面添加曲线修改器,在"曲线物体"里拾取这条曲线。
合并成一条完整的路径阵列。
这里有一个容易踩的大坑:曲线修改器默认会沿曲线的本地坐标系去映射物体,如果你的阵列是沿着世界 X 轴排列的,曲线修改器里必须确保变形轴的坐标系和你的阵列方向一致。实际使用中我发现一个防止混乱的绝招:先把曲线和物体都按 Ctrl+A 应用一下旋转缩放,然后再加载曲线修改器,这样映射结果最可预测。
3.2 处理曲线方向与缩放不一致的问题
如果你把阵列物体沿着曲线放过去,发现复制体没有被压弯或者错位严重,请先检查两件事:一是曲线的起点(第一个控制点)离物体的起始位置近不近,曲线修改器会默认从曲线起点开始映射,如果你的物体阵列从头到尾的长度远大于曲线长度,那超出曲线的部分会全部挤在曲线末尾;二是曲线的分辨率是否足够,如果曲线点数太少,转弯处会显得生硬。
解决方式通常是让阵列长度刚好等于曲线长度,或者把曲线多用细分(右键菜单里选细分,或者把曲线的细分值调大)。更精确的做法是先用一个小脚本或手动测量曲线总长度,再去设置阵列数量,让二者长度匹配。当然,如果你非要让阵列只覆盖曲线的一部分,可以给阵列物体加一个修剪操作,或者把曲线拉长,这取决于你想达到的视觉。
曲线缩放不统一还有另一种表现:曲线的某些控制柄比例非常夸张,会导致阵列物体在某个区段突然密度变化甚至反向翻转。我一般会给曲线先做一个"平滑"处理,或在编辑模式下把控制柄类型改成自动,减少因为控制柄切线过长造成的映射波动。
3.3 树状/不规则排列:用曲线变形实现有机分布
曲线阵列不止能做单调的一整排。你可以在编辑模式下把曲线的一截拉弯,另一截保持直线,让它变成一根弯折的骨架,阵列副本就会跟着骨架在空间里转折。这种手法很适合做管道、轨道类的分段结构,因为每个副本会随着曲线弯折而变形。
更高级一点,你可以叠加两层曲线抽象的"枝干",做出一棵树的主干分叉。方法并不复杂:把曲线复制一份,把其中一截旋转一定角度,再让另一条曲线从分叉点出发,两条路径分别挂上阵列修改器变形,看起来就像枝干向两个方向分叉。
不过树状分叉往往是复制体在转折处变形明显不自然,因为曲线修改器会把附着物拉扯成一个锐角。如果你不需要曲面贴合感,更推荐用空物体驱动的随机分布(第四节内容),而不是曲线变形。它们各有优势,做树状结构的话,随机性更容易控制在单根枝干上,而不会导致整个阵列被曲线强行拉扯。
4. 用空物体实现复杂空间变换:从摆建筑到做轨道
这一节专门聚焦空物体的进阶用法。很多人学会了环形阵列之后,就开始"环化一切",但空物体的真正威力在于它可以把位置、旋转、缩放三种变换同时叠加在每一级副本上,让阵列呈现出非常"智能"的空间排列。
4.1 一个空物体同时控制位置、旋转、缩放
假设你想做一条沿着抛物线渐变的轨道,每节车厢都逐渐抬高、倾斜并缩小。通过一个空物体,你可以设置位置 X = 0.5,Y = 0.2,Z = 0.15,旋转 Z = 5 度,缩放 = 0.97。阵列生成时,每个复制体相对下一步同时应用这些参数,轨道就会沿着一个螺旋上升且逐渐收窄的方向延伸。
比手动一格格调整高效得多,而且因为参数是统一的,后期修改空物体就能让整条轨迹同时变化。比如你把 Z 位置从 0.15 改成 0.3,整个轨道抬升速度立刻变快,所有复制体一起动,不需要逐个操作。
这套方法做建筑外立面、楼梯扶手、螺旋坡道特别顺手。我以前做过一个商业空间的螺旋扶梯,使用了一个"立方体踏板 + 空物体阵列",空物体同时管住高度和旋转,最后用一条路径修边收口,生成速度比手动复制快几十倍。
4.2 阵列叠加阵列:嵌套结构的构建
单项阵列解决单一方向,嵌套阵列解决多维排列。你可以先做一个 1x5 的阵列,再把这个阵列结果整体作为"单元物体",套上第二个阵列修改器。第二个阵列可以朝另一个方向排布,比如把一排灌木复制成一片灌木丛,或者把一条轨道复制成并排双轨。
嵌套阵列的巧妙之处在于:你可以在不同层级使用不同的偏移方式。外层用常量偏移做二维网格,内层用物体偏移让每个单元自身绕中心旋转,这样一次性生成的复合结构,理论上能完成非常复杂的空间骨架。
不过嵌套阵列有个天然陷阱:修改器顺序必须想清楚。第一层修改器先生成你要的单个单元的形状规则,第二层修改器负责分布这些单元。比如你做"花瓣绕圈、每圈外扩"的结构,内层阵列应该是 1 竖排花瓣加上缩放旋转,外层阵列再沿着 Z 轴批量复制这些环。顺序反了,结果会非常混乱。
4.3 常见问题:法线、合并、起点对齐
空物体驱动阵列处理得多了,我遇到最多的三个问题是法线翻转、接缝错位、起点偏移。
首先是法线问题。阵列复制体对物体本身的法线没有影响,但如果你阵列完才添加倒角或实体化修改器,修改器读取的是原物体的法线,如果原物体的法线方向不一致,整个阵列的表面效果就会交错,看起来像滤镜花屏。解决方式是进入编辑模式,全选面并重新计算外侧法线。
其次是接缝错位。做环形阵列时,如果原始物体有明确的正反面或刻线纹理,你会发现最后一个和第一副本之间会有一个明显的断口。通常是因为原始物体被加工时,左右两侧不对称,或者阵列数量不是均匀整数。校正方法是先对物体进行对称性检查,确保单体的首尾边界是兼容的。
最后是起点偏移。空物体放在世界原点附近、物体放在远处时,阵列起点和你想的不一样。为了避免,我在实操中习惯把物体和空物体同时选中,右键菜单里选"对齐到活动元素",手动保证它们在视觉中心的相对关系符合设计。
5. 几何节点阵列:真正意义上的"空间列阵"
传统修改器虽然灵活,但有一个绕不过去的限制:它们只能做规律的、线性的分布,很难做到"根据表面高低随机分布"或者"让物体铺满一张不规则曲面而不互相穿透"。到了这一步,就该上几何节点了。
几何节点不是替代修改器,而是扩展阵列的应用边界。它是程序化的,能实时响应网格曲面和噪声,尤其适合做地形上的树木分布、墙体打孔、线性结构的随机化等。
5.1 为什么传统修饰器在曲面分布上会失效
你用阵列加曲线修改器把物体贴一条弯曲线拉通试试,如果曲面左右起伏,曲线修改器很难让物体连续贴合曲面拐点。因为曲线修改器的本质是沿一根一维骨架变形,而不是沿二维曲面投射。你若要在一个球体表面均匀布满装饰物,阵列无法做到,因为凹凸球面的每个点的位置和朝向都是空间变化的。
这种需求过去有人用粒子系统做,但粒子系统参数多、不稳定、预览慢。几何节点目前是最顺手的解决方案,因为它把"撒点、对齐、实例化"全部可视化了,还保留程序化的参数,方便你反复调整。
5.2 网格散布:随机旋转、缩放与密度控制
先演示一个最小可用的几何节点组:用分布点于面节点(Distribute Points on Faces)在任意网格表面上生成点,再接一个实例化于点节点(Instance on Points),把你准备好的小物体拖进实例化节点,场景里立刻出现铺满曲面的阵列。
在这个基础上,密度控制相当直白:修改分布节点的密度参数,数值越大,点数越多。随机旋转用一个"随机值"节点,接到实例化节点的旋转输入端;随机缩放同理,把随机值接到缩放输入。你可以让大小在 0.8 到 1.2 之间浮动,整个表面看起来自然很多。
这里有个关键点,新手容易直接在一个物体上使用几何节点时发现实例怎么都不显示。多半是因为你没有给物体一个可计算的网格数据,或者节点组的输出没有从实例化节点的"实例"接口连到 Group Output 的"几何体"接口。节点端口接错是这个环节最常见的错误。
5.3 按曲面法线对齐的实例旋转
铺面阵列的第二件事是让物体的朝向贴合曲面。如果只是把实例输出,你会发现所有小物体都保持原方向立在空间中,像漂浮的一样。要让它们竖立在表面,需要一个"对齐欧拉到矢量"节点(Align Rotation to Vector)。
操作思路是:分布点于面节点输出的"旋转"信息先接给对齐节点,对齐节点的"矢量"输入接入法线数据(分布节点自带法线输出),再设置一个目标轴,比如让 Z 轴对齐法线,这样每个小物体都垂直指向曲面表面法线,看起来就像贴在表面上。
这里一个小经验:很多表面的法线不是朝外就是朝内,对齐之后出现内侧反转,你可以在几何超采样里看到,做装饰时通常要把法线统一一下,或者在实例化节点后面加一个"翻转面"节点,让外表面朝外。
5.4 用渐变控制密度和规模
几何节点的另一大优势是可以通过纹理或噪波控制不同位置的密度和缩放,做出来的分布有层次感。你可以把噪声纹理节点的输出接入分布节点的"密度"输入,让噪声值大的区域密度高、平坦区域密度低;再把同一个噪声输出处理一下接到缩放输入,让密集区的小物体更小,稀疏区的大物体更大。
这一套配合"渐变"节点,可以精确控制某个范围之外不生成实例。比如贴草地时,可以只让山谷区域长草,山顶保持裸露。调节噪波频率和细节,就能达到非常自然的分布效果。实际项目里,我建议把噪声频率和模型尺寸比例控制在合理范围内,噪波过高会出现斑点状抖动,过低则会大块聚合,不够自然。
6. 一个完整实战:用几何节点做球形阵列装饰
理论说这么多,不如完整走一遍流程。这个实战案例我选了一个球体表面阵列装饰,它同时覆盖了基础阵列和几何节点两大模块,做出来的效果非常适合直接用在场景摆件、灯具和 Logo 设计里。
6.1 案例目标与思路
我们要做一个镂空的球形灯罩:一个球体表面均匀分布很多小方片,每片都贴住球面法线,并随着纬度的升高逐渐变小。整个模型要能方便调整数量和大小,方便后期改参数。
准备材料:一个球体(UV Sphere,分段数 48 即可)、一个立方体(作为实例预设,尺寸不用太大)、一个噪波纹理节点。球体作为承载网格,立方体作为被阵列的对象,全部用几何节点控制。
6.2 节点搭接的完整步骤
球体添加几何节点修改器,进入节点编辑器后按以下顺序连接:
- 新建"分布点于面"节点,接到球体几何体输出,密度设为 500,勾选"网格"模式,让分布更均匀。
- 把"立方体"用"物体信息"节点读进来,连到"实例化于点"节点。
- 分布节点输出的"旋转"接到"对齐欧拉到矢量",矢量输入接分布节点的"法线",目标轴选 Z 轴,再把输出的旋转给实例化节点。
- 在实例化节点后接入"实例缩放",让实例尺寸整体缩小 0.2。
- 为了让纬度越高越小,可以用噪波纹理节点输出作为缩放倍率影响因子,对实例整体缩放做区间映射。
这时你会在视口看到球体表面附着了一堆小方片,法线朝向正确,所有小方片紧贴球面。修改密度就能调整数量,修改立方体尺寸就能调整单个实例大小,全程无破坏性,后期回到几何节点改参数即可。
6.3 烘焙、导出与维护
设计定稿后,如果要导出给游戏引擎或者打印模型,几何节点里的实例不能直接导出。你需要在修改器面板上点击"应用"(Apply)来把几何节点的结果冻结成静态网格。
应用前务必先备份一份原始文件,因为几何节点应用后无法再回到节点编辑器修改参数。如果你只是要在一个 Blender 文件里做渲染,不导出,那完全没有必要,保留节点实时生成,反而更容易二次调整。
导出时需要注意实例的旋转是否在世界坐标系下出现偏移。如果你在节点里对旋转做过对齐,烘焙后的物体旋转会统一到世界空间,这一点在导入其他软件时需要留意。这个坑我踩过两次,建议导出前先检查一件小实例的朝向,确认无误再整体导出。
7. 常见坑位与效率习惯:我实测后的几点体会
写到这里,阵列的基础和高阶用法都已经覆盖了。最后我想集中讲几个我做了大量阵列模型后沉淀下来的实操习惯和坑位,这些细节教科书上不会写,但非常影响效率和最终效果。
7.1 修改器顺序优先级的理解和实践
阵列和曲线、阵列和实体化的顺序不同,结果差异巨大。如果先加实体化再做阵列,那么每个副本都是一整块厚板;如果先阵列再实体化,那么所有副本会先被铺开,然后再整体抽壳,边缘会连成一个整体,而且抽壳厚度均匀,缝隙更干净。做格栅外壳时,我通常"先阵列后实体化",这样整体结构稳定,边缘封闭性好。
如果你要对阵列的每个副本单独做变形,那就得在阵列前放一个形变修改器,阵列后的副本会逐级应用该形变。如果你希望形变作用于整个阵列整体,则修改器顺序相反。每次排版之前先想清楚这一点,会省下大量返工时间。
7.2 用实例化而不是复制大量网格
当阵列数量大时,直接复制网格会导致文件体积爆炸、视口卡顿。几何节点的实例化和传统阵列修改器都不会在内存里真的生成一万份网格,它们只是一份基础几何体加上一份变换数据,渲染时再展开,效率高得多。
但传统阵列修改器被应用之后,就变成一万份独立的网格了,文件会瞬间变大。所以除非你真需要每个对象独立编辑,否则请尽量保留修改器,不要轻易应用。如果必须应用,建议这之前先把改好的部分单独另存,防止返工时不得不从头再做一遍。
7.3 空物体变换不应用的教训
做空物体驱动阵列时,空物体的旋转和缩放是会被阵列作为递增值读取的,但很多人会习惯性看向视图里的空物体,觉得它似乎没变化。问题出在你没有对空物体按 Ctrl+A 应用变换。未应用的缩放会在计算中出现精度误差,尤其是空物体有翻转时,阵列会突然跳到相反方向。
我的习惯是每次新建空物体后,立刻把它的旋转和缩放清零备好,然后再做阵列关联。一旦开始阵列,就很少再去动空物体的自身变换,因为空物体变换的微小扰动是全局性的,改一点整个阵列都会跳。
7.4 利用合并与分离控制阵列结果
阵列做完后,如果想让副本之间形成连续接触面或者统一接收灯光,你需要把多个副本合并成一个网格。最简单的办法是在阵列修改器后面加一个"合并"修改器,设置合并距离为 0.001,它会把接触面上的顶点吸附在一起,形成一个干净的整体模型。
反过来,如果你想把某个副本从阵列中抽出来单独编辑,可以先应用阵列,然后在编辑模式里按 P 键分离出选中区域。分离后它就不再和其他副本关联了,适合做"阵列后手工微调个别位置"的场景。这个操作能救急,但尽量只在确实要单独处理某些副本时使用,因为分离后你就失去了参数化修改的能力。
做阵列这件事,很多人最后都被"怎么处理一万个副本"困住,其实一个阵列修改器加合理的应用时机就已经能解决大部分问题。我是建议每次在新模型里都先思考阵列能不能帮你完成基础分布,能做的部分用程序化解决,少部分特殊处理的再用手工,这样既快又稳。