1. 为什么我最终把材质绘制流程从Blender搬到了ArmorPaint
如果你在游戏行业待过几年,尤其是做过独立游戏或者小团队项目,你一定经历过这样的场景:模型在Blender里建好了,UV也展好了,接下来要画贴图。你打开Blender的纹理绘制模式,试着用笔刷在模型上涂几笔,然后发现——笔刷延迟、图层管理几乎不存在、想要做个法线细节得来回切换节点编辑器。折腾了一下午,贴图没画多少,脾气倒是涨了不少。
这不是Blender的问题。Blender的纹理绘制功能这些年一直在进步,但它的核心定位始终是一个全能型的三维创作工具,而不是一个专门用来画贴图的软件。就像你不会拿瑞士军刀去砍树一样,工具本身没问题,只是场景不匹配。
ArmorPaint就是在这个缝隙里长出来的。它脱胎于Blender的游戏引擎生态,准确地说,它的前身是Blender的一个插件形态,后来独立成了一个专门做材质绘制的开源软件。你可以把它理解成“开源版的Substance Painter”——当然功能深度上还有差距,但对于预算有限、又不想在贴图环节妥协质量的团队和个人来说,它解决了一个非常实际的问题:用零成本获得一套完整的PBR材质绘制流程。
我第一次接触ArmorPaint是在一个独立游戏项目里。当时团队只有三个人,美术资源全靠一个人扛。我们试过Substance Painter的订阅制,算下来一年不少钱;也试过在Blender里硬画,效率实在上不去。后来发现了ArmorPaint,抱着试试看的心态用了一个月,最终把整个项目的贴图流程都迁了过去。这篇文章就是那次迁移过程中积累下来的经验,包括它到底能做什么、怎么用、哪些坑我替你踩过了。
这篇文章适合谁看?如果你满足以下任意一条,接下来的内容应该对你有用:正在用Blender做游戏资产、需要一套不花钱的PBR贴图方案、对材质绘制流程感兴趣想了解底层逻辑、或者单纯想找一个Substance Painter的替代品。我会从核心思路、实操步骤、参数配置到常见问题,把ArmorPaint这套东西拆开讲清楚。
2. ArmorPaint的核心设计思路与方案选型
2.1 它到底解决了什么问题
要理解ArmorPaint的价值,得先理解游戏贴图制作这件事的痛点在哪里。传统流程里,一个角色模型的贴图可能包含基础色、法线、粗糙度、金属度、环境光遮蔽等多张图。这些图之间不是孤立的,它们共同描述了一个表面的物理属性。你在画基础色的时候,需要同时考虑这个区域的粗糙度是多少、法线细节够不够、金属度对不对。
在Blender里做这件事,你面对的是一个节点树。每个通道是一组节点,通道之间的关联靠节点连线来维护。这种方式灵活度极高,但操作成本也高——你想在模型上直接画一笔,然后让这一笔同时影响基础色和粗糙度,需要提前搭好复杂的节点结构。
ArmorPaint的思路完全不同。它把每个通道当成一个独立的图层堆栈来管理,就像Photoshop里的图层一样。你在基础色通道里加一个图层画颜色,在粗糙度通道里加一个图层调粗糙度,在法线通道里加一个图层画凹凸。每个图层可以独立控制透明度、混合模式、遮罩。这种“通道+图层”的模型,对于习惯2D绘画的人来说几乎零学习成本,对于习惯节点的人来说则需要转换一下思维。
注意:ArmorPaint的图层是跨通道同步的。也就是说,你在基础色通道新建一个图层,其他通道也会同步出现这个图层。这个设计的好处是你可以用同一个遮罩控制多个通道的显示范围,坏处是你不能单独删除某个通道的图层——删就是全删。
2.2 为什么选择开源路线
ArmorPaint采用开源模式,代码托管在公开仓库上,采用MIT许可证。这意味着你可以免费使用、修改、甚至用于商业项目。对于独立开发者和小团队来说,这一点非常关键。Substance Painter的订阅费用对于个人开发者来说是一笔不小的开支,而ArmorPaint把这块成本直接降到了零。
但开源也意味着另一面:没有官方技术支持、更新节奏依赖社区、某些高级功能可能永远不会有。我在实际使用中的感受是,它的核心功能已经足够稳定,日常绘制、遮罩、材质混合这些操作都很流畅。但如果你需要一些非常特定的功能,比如复杂的粒子笔刷或者高级的材质节点系统,它可能满足不了你。
另一个选择开源方案的理由是可控性。ArmorPaint的工程文件格式是开放的,你可以直接查看和修改里面的数据。这对于需要做自动化流程的团队来说很有价值——你可以写脚本批量生成材质、批量导出贴图、甚至把ArmorPaint集成到自己的构建管线里。
2.3 与Blender的协作关系
ArmorPaint和Blender的关系不是替代,而是互补。Blender负责建模、展UV、骨骼绑定、动画,ArmorPaint负责贴图绘制。两者之间的桥梁是模型文件和贴图文件。
具体来说,你在Blender里完成模型和UV之后,把模型导出为OBJ或FBX格式,导入ArmorPaint进行贴图绘制。画完之后,ArmorPaint导出贴图文件,你再把贴图导回Blender或者导入游戏引擎。这个流程听起来多了一步,但实际上它把“建模”和“贴图”这两个差异很大的工作流解耦了,各自用最合适的工具完成。
我个人的习惯是:在Blender里把UV展好,确保没有重叠、没有拉伸,然后导出模型。在ArmorPaint里画完贴图后,导出为PNG或TGA格式,再在Blender里连接节点查看效果。如果发现UV有问题,回到Blender调整,重新导出模型,ArmorPaint会自动重新加载模型并保留已有的绘制内容——这一点非常方便,省去了重新绘制的麻烦。
2.4 核心功能模块拆解
ArmorPaint的功能可以分成几个核心模块来理解。第一个是笔刷系统,包括基础笔刷、橡皮擦、模糊、克隆等。笔刷支持压感,支持自定义笔尖形状,支持导入Photoshop的ABR笔刷文件。第二个是图层系统,每个通道有独立的图层堆栈,支持混合模式、透明度、遮罩。第三个是材质系统,内置了一批PBR材质预设,可以直接拖到模型上使用,也支持自定义材质。第四个是烘焙系统,可以把高模的细节烘焙到低模的法线贴图、环境光遮蔽贴图等。第五个是导出系统,支持导出各种通道的贴图,支持自定义导出模板。
这几个模块之间的协作逻辑是:你先导入模型,然后烘焙需要的贴图(如果有高模的话),接着用笔刷和材质在图层上绘制,最后导出贴图。整个流程是线性的,没有太多分支,上手很快。
3. 从零开始搭建ArmorPaint工作流的实操要点
3.1 安装与初始配置
ArmorPaint的安装方式取决于你的操作系统。官方提供了Windows、Linux和macOS的预编译版本,下载后解压即可运行。Linux用户需要注意,它依赖一些图形库,如果启动时报错,通常是缺少OpenGL相关的依赖。我在Ubuntu 22.04上安装时,需要额外安装libgl1-mesa-glx和libglu1-mesa这两个包。
首次启动后,建议先做几项配置调整。第一项是笔刷平滑度,默认值可能偏高,导致笔触有延迟感。我一般把它调到0.3左右,既保留一定的平滑效果,又不会觉得笔刷跟不上手。第二项是撤销步数,默认是20步,对于复杂的绘制来说不够用,建议调到50步以上。第三项是纹理分辨率,如果你画的贴图是2K或4K,需要确保显存足够。ArmorPaint在绘制时会实时渲染,显存不足会导致卡顿甚至崩溃。
提示:ArmorPaint的配置文件位于用户目录下的
.config/ArmorPaint文件夹中(Linux)或%APPDATA%/ArmorPaint(Windows)。如果软件出现异常,可以尝试删除这个文件夹恢复默认设置。
3.2 模型导入与UV检查
模型导入支持OBJ和FBX两种格式。我推荐用OBJ,因为它的兼容性更好,不容易出现材质丢失的问题。导入时需要注意几个参数:缩放比例、坐标轴朝向、是否导入法线。ArmorPaint默认使用Y轴向上,而Blender默认是Z轴向上,所以从Blender导出时需要把坐标轴转换一下,或者在导入时手动调整。
导入模型后,第一件事是检查UV。ArmorPaint的视口里可以切换到UV视图,查看UV的分布情况。重点检查三个问题:UV有没有重叠、UV有没有超出0-1范围、UV的密度是否均匀。如果UV有问题,贴图绘制会直接受影响——重叠的UV会导致两个区域画到同一个位置,超出范围的UV会导致贴图边缘出现接缝。
我在实际项目中遇到过一个问题:Blender里展UV时用了“智能UV投影”,结果有些面的UV被压缩得很小,导致贴图分辨率不够。后来改成手动标记缝合线、手动展开,虽然费时间,但UV质量明显提升。ArmorPaint里有一个“UV检查”模式,可以用棋盘格纹理覆盖模型,直观地看到UV的拉伸情况。如果棋盘格在某些区域明显变形,说明那里的UV需要调整。
3.3 烘焙流程与参数设置
烘焙是ArmorPaint里比较容易被忽视但非常重要的环节。如果你有高模和低模两套模型,烘焙可以把高模的细节(比如雕刻的纹理、倒角、凹凸)转移到低模的法线贴图上。这样低模在游戏里运行时,看起来就像高模一样精细。
烘焙需要先导入高模,然后在烘焙面板里设置参数。关键参数包括:烘焙分辨率、射线距离、抗锯齿级别、是否烘焙环境光遮蔽。分辨率一般设成和最终贴图一样,比如2048x2048或4096x4096。射线距离决定了从低模表面向外搜索高模表面的范围,设得太小会漏掉细节,设得太大可能会捕捉到不该捕捉的面。我一般从0.1开始试,根据结果调整。
环境光遮蔽(AO)的烘焙也很有用。AO贴图可以模拟模型表面的阴影,增加立体感。ArmorPaint烘焙AO时会发射大量射线,计算每个点被遮挡的程度。这个过程比较耗时,但结果可以直接用在材质里,作为遮罩或者叠加层。
注意:烘焙前一定要确保高模和低模的位置是对齐的。如果高模和低模错位,烘焙出来的法线贴图会完全错误。我习惯在Blender里把高模和低模放在同一个位置,导出时一起导出,这样导入ArmorPaint后位置就是对的。
3.4 笔刷与材质的基础操作
ArmorPaint的笔刷操作和大多数绘画软件类似:左键绘制,右键旋转视角,中键平移,滚轮缩放。笔刷面板里可以调整大小、硬度、流量、间距等参数。压感支持需要数位板,Wacom和大多数国产数位板都能识别。
材质的使用方式有两种。一种是从材质库直接拖拽到模型上,ArmorPaint会自动创建一个填充图层,把材质应用到整个模型或者当前遮罩区域。另一种是手动创建图层,然后在图层上绘制。前者适合快速铺底色,后者适合精细调整。
我常用的一个技巧是:先用材质库里的预设材质铺一层基础,然后用笔刷在图层上做局部调整。比如一个金属材质的武器,先用金属预设铺底,然后在边缘画磨损、在凹陷处画污渍、在握把处画手汗痕迹。这些细节不需要复杂的节点,只需要在对应通道的图层上用笔刷画就行。
3.5 遮罩与智能材质的配合使用
遮罩是ArmorPaint里最强大的功能之一。它允许你根据模型的几何属性(比如曲率、环境光遮蔽、位置)自动生成遮罩,然后在遮罩范围内绘制。举个例子:你想在模型的边缘画磨损效果,可以生成一个基于曲率的遮罩,边缘区域会自动被选中,然后你在基础色通道画亮色、在粗糙度通道画低粗糙度,磨损效果就出来了。
智能材质是遮罩和材质的组合。ArmorPaint内置了一些智能材质预设,比如“生锈金属”、“磨损塑料”、“脏旧木材”等。每个智能材质包含多个图层,每个图层有自己的遮罩和材质参数。你可以直接拖到模型上使用,也可以拆开来看它是怎么实现的,学习它的图层结构。
我个人的经验是:不要完全依赖预设的智能材质,而是把它们当成学习工具。拆开一个智能材质,看看它用了哪些遮罩、哪些混合模式、哪些通道,然后根据自己的需求调整。这样积累下来,你就能搭建自己的智能材质库。
4. 完整实操流程:从一个Blender模型到最终贴图
4.1 在Blender中准备模型和UV
假设我们有一个简单的游戏道具模型——一个木箱。在Blender里,首先确保模型是低模,面数控制在合理范围内。然后展UV:进入编辑模式,选择所有面,按U键选择“展开”。如果自动展开的效果不理想,可以手动标记缝合线。木箱这种硬表面模型,缝合线一般放在边缘和背面。
UV展好后,检查一下UV布局。在UV编辑器里,确保所有UV都在0-1范围内,没有重叠。可以用“UV打包”功能自动排列,但自动排列有时候会把UV排得太密,导致贴图分辨率不够。我一般手动调整一下,让重要的面(比如木箱的正面)占据更大的UV面积。
导出模型时选择OBJ格式,勾选“导出UV”和“导出法线”。如果模型有多个材质槽,确保每个材质槽对应的面都正确分配了UV。
4.2 导入ArmorPaint并设置项目
打开ArmorPaint,新建一个项目。在项目设置里,选择贴图分辨率(我一般用2048x2048),选择颜色空间(sRGB用于基础色,线性用于其他通道)。然后导入刚才导出的OBJ文件。
导入后,模型会出现在视口中央。如果模型太大或太小,可以用视口导航工具调整。接下来检查UV:切换到UV视图,确认UV没有重叠、没有超出范围。如果发现问题,回到Blender调整后重新导入。
然后设置通道。ArmorPaint默认包含基础色、粗糙度、金属度、法线四个通道。如果你需要额外的通道(比如高度、自发光),可以在项目设置里添加。每个通道可以单独设置分辨率和颜色空间。
4.3 烘焙法线和AO贴图
如果你有高模,现在导入高模。在烘焙面板里,选择“法线”和“环境光遮蔽”两个选项。设置分辨率与项目一致,射线距离从0.1开始。点击烘焙,等待完成。
烘焙完成后,可以在视口里预览法线贴图的效果。如果发现某些区域的法线不对(比如出现黑块或者奇怪的凹凸),可能是射线距离不合适,调整后重新烘焙。AO贴图烘焙时间较长,但结果可以直接用在材质里。
如果没有高模,可以跳过烘焙步骤,直接在低模上绘制。但法线贴图仍然可以手动绘制——用笔刷在法线通道上画凹凸细节。
4.4 分层绘制木箱材质
现在开始绘制。首先在基础色通道创建一个填充图层,用木头的基色填充整个模型。然后在粗糙度通道调整粗糙度,木头一般是中等粗糙度,设成0.6左右。金属度通道保持0,因为木头不是金属。
接下来做木纹。我一般用两种方法:一种是导入一张木纹纹理,作为图层贴上去,然后用遮罩控制显示范围;另一种是用笔刷手动画。前者适合快速出效果,后者适合精细控制。我通常先用纹理铺底,然后在边缘和角落手动画一些磨损和变色。
木箱的边角容易磨损,露出里面的浅色木质。在基础色通道新建一个图层,用浅色画笔在边角处绘制,然后用曲率遮罩限制在边缘区域。在粗糙度通道同步调整,磨损区域的粗糙度降低,看起来更光滑。
最后加一些污渍和灰尘。在基础色通道用深色画笔在底部和缝隙处画一些污渍,在粗糙度通道提高这些区域的粗糙度。AO贴图可以作为遮罩使用,让污渍自然地聚集在凹陷处。
4.5 导出贴图并回导Blender验证
绘制完成后,导出贴图。ArmorPaint支持导出所有通道为单独的PNG文件,也支持打包导出。我一般选择单独导出,因为后续在Blender里连接节点更灵活。
导出时注意颜色空间:基础色导出为sRGB,其他通道导出为线性。如果导出设置错了,贴图在引擎里会显示不正常。
回到Blender,给模型新建材质,用图像纹理节点加载导出的贴图。基础色连接到Principled BSDF的Base Color,粗糙度连接到Roughness,金属度连接到Metallic,法线贴图需要经过Normal Map节点再连接到Normal。连接好后,在视口里切换到材质预览模式,检查效果。
如果发现贴图接缝或者颜色不对,回到ArmorPaint调整后重新导出。这个迭代过程可能会重复几次,直到满意为止。
5. 常见问题与排查技巧实录
5.1 笔刷延迟和卡顿怎么解决
笔刷延迟是ArmorPaint里最常见的问题。原因通常有三个:显存不足、笔刷分辨率太高、撤销步数太多。显存不足的话,降低贴图分辨率或者关闭一些通道的实时预览。笔刷分辨率太高的话,在笔刷设置里降低“笔刷纹理分辨率”。撤销步数太多的话,适当减少,比如从100降到50。
还有一个容易被忽视的原因:显卡驱动。ArmorPaint依赖OpenGL,如果驱动版本太旧,性能会受影响。我在一台老笔记本上遇到过这个问题,更新驱动后流畅度明显提升。
5.2 烘焙出来的法线贴图有黑块或接缝
法线贴图出现黑块,通常是射线距离设置不当。射线距离太小,低模表面某些区域找不到对应的高模面,就会产生黑块。射线距离太大,可能会捕捉到背面或者不该捕捉的面,产生错误的凹凸。解决办法是调整射线距离,从0.05到0.5之间逐步尝试。
接缝问题通常和UV有关。如果UV接缝处的法线不连续,烘焙出来的法线贴图在接缝处会有明显的痕迹。解决办法是在Blender里把UV接缝放在不太显眼的位置,或者在ArmorPaint里用“接缝修复”功能处理。
5.3 导出的贴图在引擎里显示不正常
这个问题我遇到过好几次,原因基本都在颜色空间上。基础色贴图必须是sRGB,如果导出成了线性,颜色会偏暗。粗糙度、金属度、法线贴图必须是线性,如果导出成了sRGB,数值会偏移。检查ArmorPaint的导出设置,确保每个通道的颜色空间正确。
另一个可能的原因是法线贴图的绿通道方向。不同引擎对法线贴图的绿通道方向要求不同,有的要求Y+,有的要求Y-。ArmorPaint默认是Y+,如果引擎要求Y-,需要在导出时翻转绿通道,或者在引擎里设置。
5.4 图层太多导致软件变慢
图层是ArmorPaint的核心,但图层太多确实会影响性能。每个图层都需要实时渲染,图层越多,GPU负担越重。我的经验是:尽量合并那些不再修改的图层。比如基础色铺完之后,如果确定不会再调整,可以合并到下面的图层里。遮罩和智能材质也会增加图层数量,用完之后可以删掉或者合并。
还有一个技巧是:把不工作的通道暂时关闭。比如你在画基础色的时候,粗糙度和金属度通道可以暂时隐藏,减少实时渲染的负担。
5.5 常见问题速查表
| 问题现象 | 可能原因 | 排查方法 | 解决方案 |
|---|---|---|---|
| 笔刷延迟 | 显存不足/笔刷分辨率高/撤销步数多 | 查看显存占用,检查笔刷设置 | 降低分辨率,减少撤销步数,更新驱动 |
| 法线贴图黑块 | 射线距离不当 | 调整射线距离重新烘焙 | 从0.05到0.5逐步尝试 |
| 贴图颜色偏暗 | 颜色空间错误 | 检查导出设置 | 基础色用sRGB,其他用线性 |
| 软件卡顿 | 图层过多 | 查看图层数量 | 合并图层,关闭不用的通道 |
| UV接缝明显 | UV布局问题 | 检查UV接缝位置 | 调整UV或使用接缝修复 |
| 材质显示异常 | 通道连接错误 | 检查Blender节点连接 | 确保每个通道连接到正确输入 |
提示:ArmorPaint的日志文件位于用户目录下的
.config/ArmorPaint/log.txt,遇到崩溃或者异常时可以查看日志,里面通常有详细的错误信息。
5.6 一些我踩过的坑和对应的技巧
第一个坑:在ArmorPaint里画了很久,结果发现UV有问题,需要回Blender调整。重新导入模型后,之前的绘制内容全没了。后来我学乖了:在开始绘制之前,一定反复检查UV。如果确实需要调整UV,尽量在绘制早期调整,减少损失。
第二个坑:导出贴图时忘了改颜色空间,导致在引擎里颜色完全不对。后来我养成了一个习惯:导出前先检查一遍每个通道的颜色空间设置,确认无误再导出。
第三个坑:用了太多智能材质,图层数量爆炸,软件卡到没法操作。后来我学会了“用完即合并”的原则,智能材质调整好之后,确认不再修改就合并图层。
第四个坑:烘焙法线时射线距离设得太大,结果把木箱内部的细节也烘焙到了外表面,出现了奇怪的凹凸。后来我学会了先用小距离试烘焙,看效果再调整。
6. 进阶技巧:让ArmorPaint融入你的游戏资产管线
6.1 自定义导出模板
ArmorPaint支持自定义导出模板,你可以定义每个通道导出为什么格式、什么颜色空间、什么命名规则。这对于需要批量导出贴图的团队来说非常有用。比如你可以设置一个模板,基础色导出为{模型名}_BaseColor.png,法线导出为{模型名}_Normal.png,粗糙度导出为{模型名}_Roughness.png。这样导出后直接就能被引擎识别。
设置方法是在导出面板里选择“自定义模板”,然后编辑模板文件。模板文件是一个文本文件,里面定义了每个通道的导出参数。你可以参考默认模板的格式来修改。
6.2 用脚本批量处理材质
ArmorPaint支持通过命令行参数启动,也支持一些脚本化的操作。虽然它的脚本能力不如Blender那么强大,但对于批量处理来说已经够用。比如你可以写一个脚本,遍历一个文件夹里的所有OBJ模型,自动导入、烘焙、导出贴图。这对于需要处理大量相似资产的场景很有帮助。
我试过用Python写一个简单的批处理脚本,调用ArmorPaint的命令行接口,批量烘焙法线贴图。虽然功能有限,但确实省去了大量重复劳动。
6.3 与Blender的节点系统配合
ArmorPaint导出的贴图在Blender里使用时,可以配合节点系统做进一步的调整。比如你可以用ColorRamp节点调整粗糙度的对比度,用Mix节点混合两张基础色贴图,用Bump节点在法线贴图的基础上增加额外的凹凸细节。
我常用的一个技巧是:在Blender里用ArmorPaint导出的AO贴图作为遮罩,混合两种不同的材质。比如木箱的凹陷处用深色材质,凸起处用浅色材质,AO贴图自动控制混合范围。这样可以在不重新绘制的情况下,快速调整材质的整体效果。
6.4 性能优化的一些经验
ArmorPaint对显存的要求比较高,尤其是在处理4K贴图和多通道的时候。如果你的显卡显存不足8GB,建议把贴图分辨率控制在2K以内。如果确实需要4K,可以考虑分通道绘制——先画基础色,导出后再画粗糙度,以此类推。虽然麻烦一点,但能避免显存溢出。
另一个优化技巧是:关闭不需要的通道的实时预览。比如你在画基础色的时候,法线通道和粗糙度通道可以暂时隐藏,减少GPU的实时渲染负担。等基础色画完了,再打开其他通道继续画。
6.5 社区资源和学习路径
ArmorPaint的社区虽然不如Substance Painter那么庞大,但也有一些有价值的资源。官方论坛里有用户分享的笔刷、材质、智能材质预设。GitHub仓库的issue区里有很多技术讨论,遇到问题可以去搜一下,大概率有人遇到过类似的情况。
学习路径方面,我建议先从基础笔刷和图层操作开始,熟悉了之后再尝试遮罩和智能材质。不要一上来就追求复杂的材质效果,先把基础流程跑通,再逐步增加细节。我见过很多人一开始就想做电影级的材质,结果卡在某个环节就放弃了。循序渐进才是正道。
7. 我对ArmorPaint在实际项目中的一些个人体会
用了两年多ArmorPaint,最大的感受是它把“够用”这件事做到了极致。它没有Substance Painter那么强大的材质节点系统,没有Marvelous Designer那样的布料模拟,也没有Marmoset Toolbag那样的实时渲染质量。但它有的东西——图层绘制、遮罩、烘焙、导出——都是游戏贴图流程里最核心、最高频使用的功能。这些功能它做得足够稳定、足够流畅,而且完全免费。
对于独立开发者和小团队来说,这意味着你可以把有限的预算花在更重要的地方,比如音效、音乐、市场推广。对于学习者来说,这意味着你可以零成本地学习一套完整的PBR贴图流程,学到的知识在Substance Painter里同样适用。
当然它也有明显的短板。比如它的笔刷系统不如Photoshop丰富,它的材质节点系统不如Substance Designer灵活,它的实时渲染质量不如Marmoset。但这些短板对于大多数游戏项目来说,并不是致命的。你完全可以在ArmorPaint里完成90%的贴图工作,然后在Blender或者引擎里做最后的调整。
最后分享一个小技巧:ArmorPaint的工程文件可以保存为.arm格式,这个格式包含了所有的图层、遮罩、材质信息。我习惯在项目的不同阶段保存多个版本,比如“基础色完成”、“细节完成”、“最终版”。这样如果后面发现某个阶段出了问题,可以回退到之前的版本重新调整,不用从头再来。这个习惯帮我省了很多时间,希望你也能用上。