
砖墙的几何结构看起来简单:长方体阵列。但真实砖墙有几个特性让简单阵列做不出来。
错缝(strides):相邻两层砖不是对齐的,而是错开半块。这是砌筑的结构要求,也是视觉上「像砖墙」的关键——如果每层对齐,看起来像贴图瓷砖,不像砌出来的墙。
末端件:墙的两头需要收口,可能是半块砖、可能是垂直的砖柱。一个长方体阵列的末端是硬切的,看起来不真实。
转角与曲线:现实里的墙不都是直的。有弧形的花园墙、有折角的围墙。沿曲线铺砖时,每块砖的朝向要跟着曲线转。
随机性:真实的砖墙不会每块砖完全一样,会有微小的位置偏移、旋转偏移、不同的材质。
二、MCG 是什么,为什么是它
MCG(Max Creation Graph)是 3ds Max 2016 Extension 1 引入的程序化几何系统。它用节点图的方式描述几何生成逻辑,编译成一个 Max 对象,用法上和普通修改器类似。
选 MCG 做这个工具的好处是:它生成的是真正的几何体(不是修改器动画),可以继续加修改器、可以做 UV、可以导出;参数在修改器面板里,可调可动画;不需要编译 C++(虽然性能不如原生插件,但对砖墙这种规模的几何完全够)。
代价是:MCG 的节点图能力有边界。比如官方页明确写的限制——「只支持一条 welded 线(MCG 限制)」。这是 MCG 本身的约束,不是作者的取舍。
对于用户来说,理解这一点很重要:这是一个基于 3ds Max 内置程序化系统的工具,不是独立的插件。所以它的行为方式和 3ds Max 的其他 MCG 对象一致,安装方式也一样(走 Scripting 菜单的 Install Max Creation Graph)。
三、三处拾取:形状、砖块、末端件
工具的输入分三块,都在参数面板的 pick 区。
第一是基础形状。这是墙体走的路径——一条线或一个形状。砖会沿线铺开。官方提到可以把它当成曲线或网格来拾取,但注意下面会说的限制。
第二是砖块。这是单块砖用的几何体,可以自己指定。默认大概是标准砖。把自己做的砖块(比如带倒角、带缺口的)拾取进来,铺出来的墙就有细节。
第三是末端件。末端件用在墙的开始和结束位置,用来收口。可以开关——不需要的话关掉。
官方提到砖块与末端件都可以「显示为 proxy mesh」。这是性能优化:几百上千块砖的时候,代理显示能大幅降低视口负担,渲染时才显示真实几何。
这三个输入的设计逻辑是:路径与单元分离。这样同一个砖块可以铺成直的墙、弯的墙、圆的墙——只要换基础形状。这比「专门的砖墙对象」灵活。
四、General parameters 里的几个关键参数
Strides(错缝):让相邻列上移一个砖高。这是让墙看起来像砌出来的关键参数,默认应该是开的。
Z+(朝向):调整墙体的朝向。这个参数存在是因为砖块本身有朝向,铺在路径上时需要明确砖的哪一面对外。如果墙铺出来是横躺的,就是这个参数不对。
Random Mat IDs(随机材质 ID):覆盖 mesh 设置,给砖块 1 到 Max Mat ID 范围内的随机材质 ID。这个参数的价值在于:配合多维子材质,可以让每块砖有不同的颜色、粗糙度、污渍,一下子就有真实感,而不需要做真实的材质变化。
Max Mat ID 是配合参数,指定随机的上限。
官方描述里还有「位置 / 旋转 / 缩放可统一或随机」——也就是除了材质随机,几何上也能加随机。真实的墙会有砖块轻微歪斜,这个随机正是做这个的。
另外官方提到「改形状长度时保持砖块数量与分布」——这是程序化的一个细节:调整墙体长度时,砖的密度保持不变而不是被拉伸。这个行为对做方案改动时很重要,否则每次改墙长都要重新调参数。
五、已知限制(官方明写)
官方页有两处明确的限制说明,用之前必须知道。
第一,拾取没有类型过滤。也就是说,你拾取基础形状时,脚本不会自动筛选「这是曲线,可以用」「这是网格,不能用」——它会接受你点的任何东西。点错了就在后面出问题(比如砖块朝向乱掉)。官方建议是:要自己选对曲线或网格。
第二,只支持一条 welded 线。这是 MCG 的限制。也就是说,如果你画的是一个有多段断开的形状(比如一个由几条独立线组成的围墙轮廓),它不能处理,必须先把它们 weld 成一条连续的线。
这两条限制在日常使用里都是要注意的:第一条影响操作习惯(要小心选),第二条影响建模流程(要记得先 weld)。
另外 1.2 的更新记录里有一条「修在 Z 轴上调整路径顶点导致砖块朝向错乱」,说明路径的 Z 轴变化曾经是问题的来源。1.3 修了「砖块生成时 Z 轴偏移一个单位」,1.4 修了「Can’t find operator VuTransFormsOnCurve 报错」——都是曲线相关的坑。这侧面说明:这个工具对输入形状的质量比较敏感。
六、安装与版本历史
安装(官方原文):Scripting 菜单 → Install Max Creation Graph。装完之后,在创建面板(command panel)的 VFXarabia 分类下能找到它。
它不是一个「插件」(没有 dll、没有注册),而是一个 MCG 图对象。所以装它不需要管理员权限,也不需要重启 3ds Max。
版本历史(官方页记录):
1.1 —— 修直线形状的问题、参数改用系统单位、提高 spinner 上限、修 min/max。
1.2 —— 随机缩放正确映射到 0–100、修在 Z 轴上调整路径顶点导致砖块朝向错乱。
1.3 —— 修砖块生成时 Z 轴偏移一个单位、保留砖块原 Material ID、移除 proxy 功能改为建议用 BBox 修改器、修 Side Shift 方向。
1.4 —— 修 `Can’t find operator VuTransFormsOnCurve` 报错。
注意 1.3 的那条「移除 proxy 功能」——虽然前面参数说明里提到 proxy mesh 显示,但 1.3 的更新记录说这个功能被移除了,改成建议用 BBox 修改器做代理。这两处信息略有矛盾,实际以包内 1.4 的行为为准:包里同时包含 1.0 到 1.4 五个版本的 zip,如果你需要 proxy 功能,可以装 1.2 或更早的版本。
包里五个版本的 zip 都在,这是很方便的一点——可以对比不同版本的行为,或者退回旧版本。
七、包内实际内容
本包 5 个文件,合计 156,717 字节:
brick_wall_builder_1.0.zip
brick_wall_builder_1.1.zip
brick_wall_builder_1.2.zip
brick_wall_builder_1.3.zip
brick_wall_builder_1.4.zip
五个版本的 MCG 打包并列存放,每个 zip 里是 MCG 安装所需的内容。
这个打包方式不太常见——通常是只发最新版。把历史版本都发出来,好处是明确的:MCG 的行为在不同版本之间变化较大(看更新记录就知道,1.2 到 1.4 都在修曲线相关的问题),如果某个版本在你的场景里表现更好,可以退回去用。
也能看出这个工具的实际状态:它还在迭代、还有边界问题。1.4 修的 `Can’t find operator VuTransFormsOnCurve` 就是一个典型的 MCG 报错。用了之后如果遇到类似报错,先看是不是版本问题,这是最快的排查路径。
作者 VFXarabia 是独立作者 Alaa Alnahlawi 的站点,站上有 Houdini 与 3ds Max 的内容,这个工具在 ScriptSpot 上也有发布页。
原产品页:https://www.vfxarabia.co/brick-wall-builder
封面图片来自作者官方产品页。本文为中文整理,功能与兼容性信息以作者官方页面与包内说明为准。资源仅供学习交流,商业使用请购买正版授权。















暂无评论内容