
说实话我最早听说 ArmorPaint 的时候并没有太当回事。当时手头做风格化场景贴图流程一直用的是 Substance Painter虽然功能全可每次启动、加载、烘焙总觉得在那台不算老的笔记本上有点“拖油瓶”的意思。后来朋友甩了个链接过来说“试试这个”我点开一看免费、开源、还能跑在平板上第一反应是这玩意儿不会是玩具吧试用了一周之后我得收回这个偏见。ArmorPaint 不但不是玩具它身上某些设计思路甚至比传统三维绘制软件更符合“实时创作”的天性。这篇就聊聊我这一周里实际摸出来的门道、踩过的坑以及它到底适合什么样的人。1. 为什么一个绘制贴图的软件要先聊它是从哪来的1.1 它跟游戏引擎的血缘关系ArmorPaint 最早可以追溯到 Armory3D 引擎项目。当时开发者在做游戏资产的时候发现传统流程里“在建模软件里导 UV、到绘制软件里刷贴图、再回到引擎里看效果”这件事来回切换的效率实在太低了。于是他们把引擎里那套实时渲染能力抽出来单独打磨成一个纹理绘制工具。所以 ArmorPaint 骨子里不是一个“看静态贴图结果”的软件而是一个“贴图刷下去立刻看到光照反馈”的软件。这一点非常重要因为它解释了 ArmorPaint 为什么用起来感觉那么“轻”。它不是建模工具不做雕刻不搞动画所有核心功能都集中在“给模型上纹理”这一件事上。启动的时候不会加载一堆你用不上的模块项目文件也是围绕贴图、材质、图层来组织的。1.2 技术底座Haxe、Krom 与跨平台渲染还有一个让我挺意外的点这软件的运行运行时不是传统的 C 桌面应用框架而是基于 Haxe 语言编译配合一个叫 Krom 的运行时环境。可能听到这里你已经有点晕了我换个说法。这就好比做菜大部分同类软件用的是“全套专业厨房设备”ArmorPaint 用的是一套“便携高效厨具”灶台火力甚至更集中。它底层可以跑在 Vulkan、OpenGL、DirectX 这些图形 API 上所以才能在 Windows、macOS、Linux甚至部分移动设备上保持比较统一的体验。普通用户不用关心 Haxe 还是 C但你能直接感知到两个结果启动速度非常快从我双击图标到进入项目窗口基本就是眨几下眼的时间内存占用也相当矜持我在 8GB 内存的旧笔记本上同时开着浏览器和 ArmorPaint没有出现过那种系统卡到鼠标都挪不动的情况。对于贴图绘制这种需要不停旋转视角、切换画笔、调节图层的交互场景这种流畅度带来的体验提升是实打实的。1.3 它不是给谁都能用的万能药说了这么多优点也得给它的适用人群画画像。如果你属于下面这一类人ArmorPaint 很可能会让你顺心顺手独立游戏开发者需要快速给低模或风格化资产上贴图又不想被大软件的成本和复杂流程绊住资产外包或个人创作者主要做 PBR 写实/半写实道具习惯用贴图集导出到引擎或渲染器用 Blender、Godot、Unity 这类生态且不想在多个付费软件之间反复横跳的玩家。但反过来如果你在一家成熟的厂商美术管线里需要多人协作、超大型工程、严格的材质 LOD 规则或者必须依赖某套工业级插件生态那 ArmorPaint 现阶段可能还不够格Substance Painter 那套庞大体系依然是更稳妥的选择。认清这一点再去看它心态就会平和很多。2. 核心工作流从空白文件到输出一套 PBR 贴图2.1 创建项目先建“画布”再丢模型ArmorPaint 的操作逻辑跟传统 DCC 软件不太一样。它不是“打开软件→随便建个场景→导入模型”这种松散结构而是以项目为单位的。打开软件后第一件事是新建项目系统会让你选择要把项目文件保存成 .arm 格式并设定贴图尺寸比如 1024、2048、4096、图层数量预期等等。把这个项目入口理解成一个“画布箱”会更直观所有后续的贴图、图层、材质节点都会被塞进这个箱子里不会散落到外部路径。如果你要同时维护多个资产就建多个项目文件。我个人习惯是每个道具或角色单独一个 .arm 文件避免图层混合时互相干扰。导入模型的格式方面OBJ、FBX、glTF 这些常见格式都能用。导入时软件会自动把模型拆成适合绘制的最小单元如果模型本身没有 UVArmorPaint 里面也内置了便捷的 UV 重组工具会基于模型的面角度切分展开虽然不一定能跟建模软件里手调的专业拆 UV 完全媲美但对大多数硬表面物件来说已经够用了。导入之后你可以在项目面板里看到纹理集列表每个纹理集对应一套可绘制的贴图。2.2 图层三板斧填充层、画笔层、蒙版层如果拿 Photoshop 来类比ArmorPaint 的图层系统几乎是一脉相承的但它做的又是三维贴图版本的“图层”——你每画一笔实际上是画在模型表面的贴图坐标上。填充层相当于给整个模型铺一层底色常用于快速定义基础色或粗糙度、金属度的初始值。比如做一个锈蚀铁桶先填充一层深灰后面再往上叠橙锈和磨损就比在一张完全空白纹理上盲画要舒服得多。画笔层这是真正逐笔绘制的地方。你可以在这层选择不同的笔刷类型比如标准、克隆、模糊、加深减淡等配合笔刷大小、流量、硬度、颗粒纹理直接在模型表面画出锈迹、划痕、污渍或者手绘细节。蒙版层这是 ArmorPaint 里最灵活的概念之一。每个蒙版层可以控制后续操作影响的范围例如通过模型的角度、高度、曲率或者物体 ID 生成蒙版只有蒙版覆盖到的区域才允许绘制。你可以把它想成给画笔装了一扇“有形状的门”这扇门是自动生成的不是手动抠出来的。这三层结构叠加在一起的顺序和 Photoshop 一样可以从上到下控制覆盖关系。比如最下面是填充层中间是画笔层画出的破损金属最上面加一个带蒙版的混合层统一调整高光强度整个材质的层次感就出来了。2.3 投影方式从视口刷到贴图的过程ArmorPaint 最常用的一套绘制操作逻辑是直接对着视口里的模型刷。软件会根据你当前相机视角把笔刷投射到最靠近相机的模型表面。默认情况下是按视角投影这意味着你刷侧面的时候正面同一位置不会被动到这一点对立体感的塑造非常重要。另外它还提供了正投影、平面映射等不同投影模式适合用在一些特殊场景比如想在立方体的某个面上贴一张横幅文字或者给圆柱体包裹一圈循环花纹。我在做一组低多边形建筑时就靠着平面映射给立面刷了整面窗户贴图效率比在平面软件里手绘再贴回模型高得多。2.4 烘焙与导出把图层成果整理成贴图集绘制完成后下一步就是导出。ArmorPaint 会把当前图层的最终效果按照你所在纹理集的目标格式basecolor/albedo、roughness、metallic、normal、height、AO 等输出成贴图文件。导出之前它会对整个节点材质树做一次“扁平化”处理把所有程序化节点和图层计算合并成最终像素。这个环节里烘焙功能也很关键。如果你需要环境光遮蔽、曲率、厚度这些贴图可以直接用它内置的烘焙工具基于当前模型几何体计算出来不需要再导回外部软件去跑烘焙。烘焙前最好检查一下 UV 有没有重叠否则某些通道会出现明显的接缝瑕疵。导出路径方面可以自由选择输出到当前 .arm 项目同目录或者一个自定义文件夹最终交付时候只要拿着这套贴图集去连进其他渲染软件即可。3. 节点材质系统它不是一个“抽屉式”材质编辑器3.1 从贴图到语义的桥很多绘制软件在材质层面是“固定模板”式的给你几个滑块调颜色、调粗糙度、调金属度看起来很方便但一旦要表达稍微复杂一点的关系就捉襟见肘。ArmorPaint 沿用了节点图的方式把材质看成一个可编程的语义网络。你可以在节点图里把程序化噪声连接到粗糙度通道给金属表面加入微弱的粗糙度变化把物体的高度贴图连接到凹凸节点形成视觉上的立体感再通过一个颜色渐变节点控制不同区域的金属色。整个过程不需要回到外部节点编辑器里反复预览因为视口会实时反馈每一次连线结果。一开始我不太适应这种“既要画贴图又要连线”的模式后来想明白一个道理节点的本质是“规则”图层的本质是“结果”。规则可以随时改改了所有用到它的地方一起变结果一旦画上去就固定成像素了。所以我在项目里会把大面积材质规律用节点定义把细节瑕疵用画笔层手工画出来这样既有程序化效率又保留了手绘的随机感。3.2 程序化纹理不用每处都靠手刷写过材质节点的人都知道程序化纹理最大的优势是“可无限平铺不露馅”。ArmorPaint 内置了不少程序化纹理节点比如噪波、波浪、棋盘格、Gabor 噪声等也可以把外部的图像作为资源拖进节点图里使用。举一个我实测过的例子做一把旧铁锤锤头金属部分我先给了一个基础金属色然后用噪波纹理作为粗糙度输入的遮罩再叠加一层极淡的“涂抹污渍”图像纹理作为颜色混合。因为噪波每一个像素都不重复最终锤头看起来就很有自然磨损的感觉完全不需要手动一笔一笔去点。如果你手头有自己扫描采集的磨损贴图、锈迹照片拖进去当 stamp印章用在绘制层那细节丰富度更上一层楼。3.3 蒙版与资源把“范围”变成可编程变量在 ArmorPaint 里蒙版不只是一张灰度图它本身也可以是节点树输出。比如你可以用物体的坐标范围来限定锈迹从哪里开始出现用高度信息让顶部和底部的污渍浓度不同用曲率信息让棱角处优先出现磨损。这套逻辑一旦理解就能做出很多看似复杂其实简单粗暴的材质规则。实际应用里我给一个旧卡车模型做旧化车身用填充层刷了原本的军绿色然后在蒙版里拐进一个“曲率”节点让所有边缘和折角处自动获得高光磨损范围。最后只需要在画笔层里沿着蒙版边缘补几笔深色泥迹整个车的旧化感立刻立体起来工作量比纯手绘少了至少一半。4. 视口与光照为什么我在绘制时很少“翻车”4.1 实时渲染带来的安全感传统三维绘制软件里经常会出现一种尴尬在软件里看着贴图效果挺好导进游戏引擎或者渲染器里颜色、高光、反射完全变了味。原因往往在于绘制视口的光照模型太简陋没有给你一个接近“成品环境”的光照参考。ArmorPaint 因为内核是基于实时渲染的视口里默认就带有物理基础的光照模型。这意味着你刷金属的时候能直接看到环境反射在表面的明暗变化刷粗糙度的时候能看到高光清晰度和反射模糊度的差别刷颜色的时候也不用担心在过暗或偏色的显示环境下做出错误判断。对我来说这种“所见即所得”的视角反馈大大降低了导出贴图后才发现材质不对的概率。4.2 环境贴图和灯光预设换个环境验证材质除了默认的半球光ArmorPaint 还提供了多种环境光照预设可以在视图里切换。你可以分别用棚拍灯、户外日光、黄昏暖光来反复检查同一套材质。不同光照环境下粗糙度和金属度的视觉敏感度是完全不同的多切几个环境看看能帮你发现很多隐藏问题。我自己的一个习惯是每次做完一个材质至少切换到两个差异明显的环境贴图里各旋转一圈如果高光、漫反射和反射关系都还能维持合理那导出到其他渲染器里基本不会出大问题。这个小习惯帮我省了不少返工时间。4.3 别把所有希望寄托在“最终渲染”上这一步已经不怎么需要来回切换渲染器了但我想提醒一句ArmorPaint 的实时视口毕竟不是离线渲染器像全局光照多次反弹、焦散这类高级光照效果它不会模拟得那么完整。如果你的项目对写实度有极端苛刻的要求还是要以最终渲染器的材质解读为准。好在它导出的贴图是这个行业通用的 PBR 贴图集拿到 Blender Cycles、Unreal 或其它渲染器里再接一遍材质节点并不费劲。5. 性能、平板与避坑记录我的跨平台实测报告5.1 在旧电脑上的表现我手头测试环境的配置不算新一块 7 代标压 i5 处理器、16GB 内存、一张中低端 GTX 显卡系统是 Windows。ArmorPaint 在默认的 2K 贴图尺寸下旋转视角、切换笔刷、图层实时混合这些操作都非常跟手。开启高分辨率视口渲染后帧率会降低一些但依然可以接受。总体来说它对硬件配置的门槛比 Substance Painter 低出一截这给了许多老机器第二次生命。如果你想获得更流畅的体验可以试着在设置里降低阴影采样或者关掉抗锯齿绘制过程其实并不需要那么细腻的抗锯齿只有最终导出看贴图细节时才需要全分辨率。这个优化思路听着简单实际能省下不少帧数。5.2 在浏览器和平板上的体验ArmorPaint 还有个更极致的形态它支持导出成一个 HTML5 版本在浏览器里运行也支持在部分安卓平板触摸环境下使用。我在平板上试了一把配合触控笔压力感应能正确映射到笔刷透明度虽然没有桌面端那种鼠标键盘配合时的精准感但做概念阶段的大色块铺色、粗糙度分区完全够用。你甚至可以在地铁上用平板给资产的 AO 层补几笔回到电脑上打开同一个 .arm 文件继续。这个工作流对经常外出的美术来说非常实用。需要注意一点浏览器版本受限于内存和 WebGL 性能贴图尺寸别贸然开到 4K否则保存和刷新都可能变慢。平板端同样建议以 1K 到 2K 为主否则触控笔延迟会明显加大。5.3 我踩过的几个坑版本间项目文件兼容性。ArmorPaint 更新频率高旧版本的 .arm 项目在新版本里打开偶尔会出现材质节点丢失或者图层面板异常。解决办法没那么玄幻——重要项目多存一个备份而且不要在一个项目还在产线的过程中频繁跨大版本更新软件。非中文路径问题。项目文件和外部导入资源尽量放到不包含中文、特殊符号的路径下。字体、空格这类字符在一些底层解析模块里可能引发奇怪的报错虽然现在改善了不少但避开它们成本为零。导出前检查 UV 接缝。我在做一台机甲手臂的时候因为模型是从别的软件里现拆 UV 的有一些隐藏的三角形重叠结果烘焙出来的 AO 贴图在手臂内侧出现了一条明显的暗线。排查了半天才发现是 UV 重叠导致采样冲突。幸好 ArmorPaint 操作比较轻重新拆一遍 UV 再导入问题就消失了。最终经验就是烘焙之前花十秒检查一下模型有没有重叠 UV比事后修图省力得多。6. 项目落地我是怎么把它塞进现有流程的6.1 与 Blender、引擎的协作模式对大多数团队和个人来说ArmorPaint 不是替代你的建模软件而是当一个高效的贴图中转站。我现在最常用的流程是Blender 里完成建模、拆 UV导出 FBX 或 OBJ丢进 ArmorPaint 做贴图和烘焙最后再导出整套 PBR 贴图回到 Blender 或引擎调整最终材质。这个流程里最舒服的一点是ArmorPaint 的图层和节点信息都保留在 .arm 项目里。如果后面发现贴图某块需要改我不需要重新进一遍绘制软件从零开始而是直接打开原项目换几笔再导出。对比以前在 Substance Painter 里也要保存源项目的流程ArmorPaint 的项目文件更小打开更快修改成本低很多。6.2 一套贴图多套方案的实验优势做风格化资产的时候我特别享受 ArmorPaint 的图层灵活性。你想试“红蓝配色”还是“战损铜绿”直接在填充层上面加一层改色填充层调个色相就能切换不用再另存一份几 G 的完整项目。我在给一组卡通集装箱做备选涂装时就是靠这一个项目文件做了五六套颜色方案最后导出各自需要的贴图集交付出去速度非常夸张。6.3 要不要花钱ArmorPaint 是开源软件核心功能完全免费同时也有付费订阅选项主要是给作者提供资金支持额外会有一些优先体验、商业使用授权上的便利。如果你只是自己学习、做个人资产免费版就已经能覆盖绝大多数功能。坦白讲我自己在试用一周后选择了付费支持因为这种开发模式让我看到了独立工具能持续打磨的可能而且它确实帮我的流程省了时间这笔钱花得值。7. 一些真实想吐槽的地方聊了这么多好话也该说点不满足的地方。ArmorPaint 在个别细节上还带着明显的“小而美”气质比如部分笔刷算法、笔刷动态预设数量和 Substance Painter 丰富的材质库生态相比还是有点薄。如果你习惯了那种“下载几千个现成智能材质一键往上刷”的体验ArmorPaint 会让你不太适应——它更鼓励你自己动手连节点、建材质而不是给你一堆成品。另外软件在非常复杂的模型上做粒子绘制时CPU 占用会明显飙升如果你用的是老平台建议把粒子数量调低或者改用普通笔刷分多次绘制。粒子系统作为它特色功能之一实用的前提是模型面数和刷子半径都要克制一点否则会出现明显掉帧。中文教程和社区资料相对少也是个现实问题。好在它的官方文档写得很干练操作界面本身也不是很复杂很多概念看图就能理解。我基本是靠着“一遍看文档、一遍上手试”的方式摸熟了大部分功能的。8. 如果你正要开始用 ArmorPaint这几条经验直接拿去8.1 初始设置建议新建项目的时候先别急着把分辨率推到 4096。除非你已经确认资产要用超清特写否则 2048 的性价比是最高的刷起来流畅、导出来通用、后续想升分辨率再用烘焙放大。图层数量方面可以稍微多留一点比如预设 4 到 6 层后面加层容易但图层关系复杂之后再重构反而是麻烦事。8.2 材质起步顺序给一个材质做初始贴图时我建议的顺序是先填充一层基础颜色再填基础粗糙度和金属度接着连一个基础法线贴图如果没有现成的可以用高度图转法线最后才添加画笔层和蒙版层叠加细节。这个顺序能让你的每一步改变都具有“可塑基础”不会画到一半发现底层颜色不对结果已经在上面叠了十几笔改又不好改删又心疼。8.3 一个省时间的快捷键清单别看它界面简约快捷键效率其实做得不错。常用的几个快速切换画笔、橡皮擦、吸管以及按比例调整笔刷大小这些都能全程不碰鼠标选项面板。熟练了之后左手快捷键、右手画笔整个绘制节奏会快非常多。习惯之后回传统软件反而不适应这大概就是 ArmorPaint 的“毒”性所在。8.4 配合外部图像资源自己在网络上收集的贴图素材拖进 ArmorPaint 就能作为笔刷印章或者纹理资源使用。建议图片尽量挑分辨率大、光影中性、无明显透视变形的素材这样在模型表面映射时才不会出现突兀的阴影继承。给材质增加破损、水渍、锈斑的时候这类素材比纯程序化纹理更“真实”因为是真实物理世界采集来的信息。我这边实际做过一个小白鼠项目把一个生锈铁板的照片拖进印章沿着一把复古道具枪的枪管刷了一片铁锈区域再配合颜色图层和蒙版把多余部位擦掉最终效果像是在枪管上长了几年锈一样自然完全没有手工涂抹那种“塑料贴图感”。写到这里ArmorPaint 在我工作流里的位置已经很清晰了它不是什么“寒酸版 Substance Painter”而是一把专门为实时绘制打磨出来的锋利小刀。对于大部分个人创作者、独立游戏团队、风格化资产需求来说它足够好用也足够便宜甚至可以免费。如果你正好被传统绘制软件的启动时间、内存占用或者收费模式劝退过不妨给它一个周末的机会亲自上手玩一玩我猜你会跟一周前的我一样多少带着点惊喜收回偏见。