1. ArtCraft是什么,为什么值得折腾
做创作工具这些年,我越来越觉得“数字手作”是个被低估的方向。就像很多人喜欢捏软陶、搭积木、做模型,但一提到用电脑搞三维模型,第一反应就是“那个太专业了,学不会”。而ArtCraft这名字本身就特别直白——Art加Craft,美术加工艺,摆明了要做的是把传统手作的直觉感和数字创作的精度绑到一起。它不是又一个三维建模软件,更像一个“数字泥块雕刻台”:你在一个由小正方体组成的空间里,像捏橡皮泥一样加减体积,慢慢堆出一个立体作品,最后可以导出成模型文件,去3D打印、做游戏素材、甚至是出动画。
这个项目的价值,藏在一个很细节的痛点上:传统雕刻软件为了追求光滑曲面,把控制点、拓扑、布线这些概念砸到新手脸上,很多人点开界面五分钟就关掉了。手工玩家手里的陶土,是不需要“拓扑”的,你想捏哪里就捏哪里。ArtCraft用体素(Voxel)来模拟这种手感,每个格子就是一团可以塑形的“泥”,怎么捏都不会有非流形错误,结构永远干净。这样一来,一个没有三维基础的人,也能在两小时内做出一只有棱有角的小狐狸或者一盏机械感十足的台灯。
适合玩ArtCraft的人,我总结了三类:第一类是模型手作爱好者,他们本来就在做拼装、超轻粘土、3D打印素模,缺一个快速出草稿的工具;第二类是独立游戏开发者和场景美术,需要快速堆出体素风格的原型,做一个探索关卡或者低模场景;第三类纯粹是学生和好奇的年轻人,他们在像素风、我的世界式世界里长大,对“方块”有天然的亲近感,愿意用这种语言做一点属于自己的立体涂鸦。
我最初接触ArtCraft,是因为想给一个“模拟手作工坊”的教学项目准备演示素材。网上那些三维艺术工具要么太重,要么太贵,要么雕刻手感完全不像手工。后来我把ArtCraft当成一个“可以倒腾的玩具”来研究,结果发现它的设计逻辑其实很适合做教学和快速原型——界面不吓人,操作不靠背快捷键,所有反馈都是即时的。这篇文章就把我实际折腾下来的一些思路、步骤和跳坑记录写出来,给想玩或者想自己扩展它的人当个参考。
2. 整体设计与核心功能拆解
2.1 为什么选体素而不是传统曲面建模
许多刚接触ArtCraft的人都会问:既然有ZBrush、Blender这些成熟工具,干嘛还要用一堆方块堆模型?关键在于操作心智模型完全不同。传统曲面建模的核心是“控制点”和“面片”,你需要理解拓扑流动、环选边、权重缝制这种纯几何概念;而体素建模的核心是“占位”和“距离场”,一个位置要么有泥,要么没泥,你的操作就是均匀地增减泥块。类比来说,曲面建模像是用缝纫机做西装,体素建模像在玩超轻黏土,前者需要理解版型,后者捏错了一按就平,非常宽容。
ArtCraft这个项目在体素引擎上用了稀疏八叉树来存储模型数据。这句话听着复杂,拆开看其实不吓人:八叉树是一种“如果这个立方体区域完全空或者完全满,就不再细分”的树结构,能大幅节省内存。比如你要在一个边长256的立体空间里雕一只巴掌大的兔子,兔子以外的地方全空,最朴素的存储方式就是存256x256x256个格子,约1677万个数字;而用稀疏八叉树,空区域只用一个节点标记,实际只存储兔子表面的那些分支,内存占用下降了90%以上。这也是ArtCraft能让你在小内存电脑上也能雕刻较大场景的关键。
体素模型的另一个天然好处是不会出现破面。当你用传统多边形建模,卷绕方向、重面、倒扣面都是老手也容易翻车的坑,但体素模型在导出前通过表面提取算法生成网格,算法保证了每个面都朝向外面,起码不会出现“面是黑的脸”这种情况。对我这种偶尔要出打印件的人来说,省掉了大量修模时间。
2.2 几个核心工具模块的取舍
ArtCraft的界面被我拆成三个核心区:场景编辑区、材质地盘、参数面板。功能模块上,它并不追求多,而是把几个关键动作做深:
- 雕刻笔刷:加泥、减泥、捏合(clay elongate)、平滑(smooth)。这几个动作覆盖了大部分手工场景。加泥和减泥不用解释,捏合笔刷会把点击位置的泥向笔刷中心聚拢,适合拉出耳朵、尾巴这种突出结构;平滑笔刷则会用邻域平均法把毛糙的小台阶抹平,处理体素特有的“锯齿感”很有用。
- 对称雕刻:这是我最喜欢的模块。做小动物、人物的时候,只需要把对称轴定位到模型中心,然后只看半边,另一边自动镜像。手残如我,右边耳朵捏歪了,直接关掉对称修左边,但保留对称做整体调整,效率翻倍。
- 材质层:体素本身不记录颜色,所以材料系统就是给每个体素位置绑一个材质ID。ArtCraft内置了几种典型材料,比如陶土、木纹、大理石、粗糙石料。你可以把它们理解为替不同“泥块”刷上不同质感。内置材料都是程序化生成的,不依赖外部贴图,避免了新手倒贴图弄不清UV的迷思。
- 切片与导出:这一步在不少同类工具里被当成后处理,但ArtCraft特意做了内置检查器。它能告诉你当前模型有没有“悬空岛”、最小壁厚够不够、是不是封闭流形。导出格式支持OBJ、STL、GLTF,分别对应打印、引擎、Web展示。
我不觉得这些功能有多炫酷,但它们的组合解决了一个非常现实的问题:让一个完全没接触过三维的人,可以沿着“捏泥巴 → 上质感 → 导出成品”的路径走完,而不是在工具栏里迷路。
3. 实操过程:从零到输出一只体素猫头鹰
3.1 安装、启动与工作区准备
先说明一下,ArtCraft目前是绿色软件形态,不需要安装,解压之后直接双击可执行文件就能跑。我第一次启动时稍微惊讶了一下,因为启动界面没有一长串许可证和注册,直接进了默认场景。默认场景是一个10x10x10的灰色脐带方块,背景是淡蓝渐变色,很像一个干净的工作台。
建议进入工作区后先干两件事:
- 调体素精度(Resolution)。在参数面板里把“Voxel Size”从默认的1改成2或者0.5,小数值适合做精细脸部,大数值适合快速打轮廓。我通常从2开始打轮廓,等结构定了再降到0.5细化,最后用0.25修细节。注意精度越高,内存消耗越大,0.25的模型在64格空间里有约6400万体素节点,普通电脑会有点喘。
- 内存预算和自动保存。如果你的电脑内存小于8GB,建议在“Preferences → Simulation”里开启“Auto-Snapshot Frequency”,每隔15分钟自动存一个快照。这个软件虽然内存管理做得好,但你要雕一个256格尺寸的大树,还是有概率卡一下,自动保存能救命。
工作区默认是QWE三键平移视角,鼠标拖拽旋转视角,跟大多数三维软件差不多。但有一个设置我强烈建议新手改掉:在输入设置里把“Orbit Sensitivity”从默认的5调到2,不然视角旋转会像溜冰一样飞出去,雕细节时容易晕。
3.2 雕刻一只猫头鹰的完整流程
接下来我以一个具体的实例来演示——雕刻一只体素猫头鹰,目标尺寸大约是40个体素高,放在一个64x64x64的工作空间里。
第一步:搭轮廓
先把“Voxel Size”设为2。加泥笔刷半径调到10,强度设为0.6(太强容易堆过头,太弱半天堆不出来)。在场景中拉出一个12x16x10的椭圆作为身体。怎么拉椭圆?先用加泥笔刷在一个平面上点一个大饼,然后切换到减泥笔刷,把四角啃掉,反复“添减添减”逐渐修出椭球感。由于体素颗粒较大,这时外形很粗糙没关系。
第二步:分大块
轮廓出来后,立刻开对称雕刻,把对称轴X设为0(模型正中)。此时你只需要关注左半边或右半边。用捏合笔刷,半径8,强度0.45,在身体上部两侧轻轻拉出两块突起,这就是耳朵的位置。注意拉的时候要一点一点拖,不是点一下就好,而是按住拖出弧度,然后换减泥笔刷修薄边缘。很多新手第一次用捏合笔刷会觉得“怎么一拉就歪”?那是因为强度调太高了,捏合笔刷本身会向笔刷中心收敛泥量,强度0.45以下比较可控。
第三步:定脸部
用减泥笔刷、半径4、强度0.7,在身体正前方削出两块浅坑,作为眼窝。猫头鹰眼窝通常是一大两小三块,先削两大块,再在两块之间留出一条菱形鼻梁。这里我的经验是体素颗粒越小越容易做表情,但步骤越慢:眼窝削完,把Voxel Size从2切到0.5,再用加泥笔刷在眼窝底部点出两个球形眼球,每个眼球大概4x4x3格。眼球做好后,用平滑笔刷在眼窝边缘轻轻扫一遍,把之前削出来的片状棱角抹成缓坡。
第四步:尾巴和翅膀
关掉对称,用捏合笔刷在背部侧面拉出翅膀尖角。体素雕塑里做羽毛不需要一根根雕,那样太费神,我一般做法是:用减泥笔刷把翅膀轮廓切出来,然后用0.5精度的加泥笔刷在翅膀表面按羽毛走向点出凹痕。这个过程很训练手感,但一定要记得隔几分钟用“Perspective → Orthographic”切到正视图检查形状,否则很容易在透视视角下把翅膀做歪。
第五步:打磨和切空操作
全部结构完成后,使用“Missing Wall Thickness”检查功能。这能告诉你在当前壁厚下,模型哪些地方过薄,比如翅膀尖可能只有1个墙体,很容易断。这时用加泥笔刷在翅膀内里补一两层泥,把壁厚至少补到3格以上。最后整体用平滑笔刷,强度0.3扫一遍,就会得到一只有明显体素像素感但轮廓圆润的猫头鹰。
3.3 材质、光照与导出设置
模型雕刻完成后,ArtCraft的材质层就上场了。它的操作逻辑是“先选中模型区域,再刷材质”。比如选中眼睛区域,刷一个高反光的黑曜石或琉璃材质,身体刷陶土材质,翅膀尖刷带一点木纹的材质。这里有个细节:材质ID是“粘”在体素上的,如果你之后又切回0.5精度重新雕刻,已经刷过的区域会保留材质,但新添加的体素默认是未定义材质,需要重新补刷。所以在“最后完成”前刷材质是比较聪明的策略。
导出前,我要重点提醒两个检查项:
- 封闭性(Watertight):ArtCraft内置的检查器会列出所有未封闭的边界体素。如果模型不是完全封闭,STL切片软件会拒绝切片。通常原因是某个内部空腔和外部连通,或者存在孤立的单颗体素“浮岛”。单颗体素用减泥笔刷点掉,连通问题可以用“Close Voids”自动补救。
- 体素删除密度:导出大模型时,可以选择“表面重采样”,即在表面生成更密集的三角面片,让模型更光滑,代价是文件变大。如果只是做游戏素材,我建议保持原生密度;如果是3D打印,建议打开“Relax Surface”轻度松弛一次,打印出来的质感会更接近手工陶土,不那么“像素”。
导出参数方面,我一般这样设:OBJ格式时预缩放单位设为10(因为有的切片软件默认1单位=1毫米,ArtCraft一个体素长度为1,如果你雕的猫头鹰是40体素高,导出后就是40毫米高,跟预期偏小,所以把缩放系数调到10,变成400毫米才是一个手掌大小的摆件)。GLTF格式导出时尽量把材质点光源烘焙进去,这样在Web展示时,下载模型的人不用自己调灯光。
整个流程看起来很长,但实际熟练之后,做一只这样的小动物大概三个多小时。我第一次做花了一晚上,主要时间都花在反复缩减眼窝和翅膀尖上。体素模型的修改成本极低,做错了不用Ctrl+Z回退到底,直接加泥糊掉重来,这种试错方式对新手太友好了。
4. 核心算法与实现细节
4.1 从体素到网格:说人话的网格生成
很多用ArtCraft的人不会意识到,其实雕刻时看到的“实心方块”并不是最终网格。你在编辑时用的是体素占数组,ArtCraft需要把稀疏八叉树转成一个三角面片集合,才能渲染出来,也才能导出。这一步采用的主流算法是Marching Cubes(移动立方体)。它的思路很巧妙:逐一检查每个立方体格子,根据八个顶点是否位于模型内部/外部,组合出16种基础三角面片构型,拼起来就成了完整的等值面。
对比一下,另一种叫“直接网格化”(比如贪婪体素网格)的做法是把每个体素的六个面直接生成面片,结果就是像素方块感,简单但没有任何平滑。Marching Cubes的优势在于能把体素边缘塑造成斜向的面,从像素感里提取出平滑轮廓。ArtCraft默认用Marching Cubes,但在UI里留了“Sharp Voxels”开关,关掉它,边缘就会变成锐利的方块,打开则是比较自然的平滑效果。
Marching Cubes跑完以后,网格可能有大量重复顶点,直接导出会导致文件膨胀。ArtCraft内部还做了一次顶点焊接和法线平滑。顶点焊接就是找出一模一样坐标的顶点,合并成同一个,再统一编号,这样网格数据量更小;法线平滑则是通过平均相邻面的法线方向,让光照在表面过渡更自然。这步在导出OBJ前会自动做,但GLTF导出时因为要保留材质信息,法线计算方式会有细微差异,你如果发现导出到Web端后模型有额外棱线,多半是法线没有重新计算。遇到这种情况,在引擎里导入后手动执行一次“Recalculate Normals”八成能解决。
4.2 体素精度和表面松弛的参数策略
体素雕刻的最大软肋是表面锯齿,再平滑的算法也避免不了小台阶。ArtCraft的“Surface Relax”功能本质是对等值面做一次拉普拉斯平滑:把每个顶点的位置朝着周围顶点的平均位置移动一点点,反复迭代,让大的突起和凹陷被抹平。但太多次迭代会让细节完全被糊掉,所以关键参数是迭代次数和松弛系数。
我的实操建议:做精细脸部、羽毛纹理时,松弛系数设0.3,迭代次数不超过2;做整体轮廓打磨,松弛系数可到0.6,迭代5次。千万别对全模型跑10次以上,你会发现眼睛的立体感完全消失。有一次我给猫头鹰全身跑了8次,结果它的嘴尖直接融成了圆球,只能撤销重来。
4.3 场景与材质的轻量化处理
ArtCraft不止能雕单个物体,也可以在同一个场景里放多个模型。多物体场景在导出时会合并成一个GLTF,每个独立模型相当于一个Mesh节点。这里容易忽略的是同一材质复用:如果你有几十个陶土颜色的小零件,但每个零件的花纹都用了材质0、材质1、材质2这样重复新建的材质,导出的GLTF文件会包含几十份几乎一样的材质,白白浪费资源。实际上,ArtCraft的材质面板支持“从选中的模型采样材质”,如果发现材质列表里有很多名字相同但ID不同的材质,选中模型后点击“Replace with Existing”,可以批量合并。
关于灯光,ArtCraft内置了一个简易的三点光源系统,素质谈不上高级,但出预览图足够。渲染导出时可以在“Export — Image”下输出PNG快照,分辨率最高到4K。我常用它出作品集配图,不过要注意:PNG快照用的是当前视口角度,所以先构图,再输出,不然得反复试。
5. 常见问题与排查技巧实录
5.1 表面出现“马赛克小尖尖”,要怎么清理
这是体素雕刻的经典问题。你雕刻完用平滑笔刷扫过,模型表面还是有颗粒感,甚至个别的体素尖角凸出来,其实就是某些位置存了厚度只有一层的小片状结构。最直接的排查方式是用“球状填充”在尖角内部补一点泥。具体操作:把减泥笔刷切到加泥模式,强度调到0.2,半径调到3,点在尖角根部,轻轻滚一圈,把薄片变成厚块,再平滑一次。如果是大面积马赛克,建议把体素精度从2以上降到0.5,重新雕刻而不是在粗颗粒下硬修。
5.2 笔刷响应卡顿,该怎么办
卡顿的根源90%都是精度太高。我用电脑配置还可以,但当我把Voxel Size压到0.25并在64格空间雕了一整棵树,笔刷也会出现肉眼可见的延迟。这时候可以分两步优化:第一步,在“Vueport”里开启“LOD on Edit”,编辑时自动降低显示到两倍体素大小,等松开鼠标再回全精度;第二步,确认模型存在大量完全被包在内部的体素,这些外部看不到,但计算时依然参与。我们可以用“Hollow Out”功能,把内部体素挖掉,只保留外表壳。这样操作量立刻减半,笔刷响应会顺畅很多,而且只要壁厚足够,外部外观完全不受影响。
这里有个明显的取舍:挖空内部会让模型“空心化”,虽然显示没问题,但渲染性能提高。但如果你的目标是3D打印,习惯上也会默认设置为百分之多少的填充率,而ArtCraft的“Hollow Out”就相当于填充率0%。所以打印时如果希望模型结实一点,别用这个功能,或者导出后在切片软件里再设置填充。
5.3 导出的STL在切片软件里报“非流形边”,怎么修复
ArtCraft自带检查器通常能拦截绝大多数问题,但如果你把模型导出到外部引擎又导回来,或者自己用脚本编辑过网格,就可能遇到非流形错误。表现在切片软件里就是红色错误提示、切片后在薄弱层出现十字交叉的杂线。我踩过最典型的一次坑:我用ArtCraft导出的OBJ在Blender里加了个镜像修改器,然后忘了应用变换,导出的STL就有了重叠面。
修复思路很简单:第一优先检查法线方向。在切片软件里把“显示法线”打开,如果发现有些面是黑蓝色朝内,那就全选后翻转法线。第二检查有没有交叉面:在Blender里使用“Mesh Analysis”插件,打开自交检测,把交叉的面删掉。第三就是检查空腔:如果内部有非封闭小空腔,切片软件会把空腔当成实体,但腔内压强不对。你可以在导出前在ArtCraft里用“Close Voids”统一封上,也可以在切片软件里开启“修复模型”功能,让它自动重建内部结构。
5.4 常见问题速查表
我整理了平时自己用ArtCraft最常遇到的5个问题,给各位当个对照表:
| 问题现象 | 可能原因 | 快速处理办法 |
|---|---|---|
| 导出OBJ加载到引擎后表面发黑 | 法线方向不正确 | 选中模型,在引擎内重新计算法线,或返回ArtCraft导出时勾选“Turn Doubles”合并顶点 |
| 笔刷边缘出现“拖泥”拉丝 | 笔刷强度过高,体素精度太低 | 降低强度到0.3以下,上调精度到0.5,用平滑笔刷收尾 |
| 雕刻到一半模型突然变得很卡 | 内部体素积累过多,LOD未开 | 开启“LOD on Edit”,使用“Hollow Out”挖空内部 |
| 对称雕刻不管用,左右不一致 | 对称轴没有跟随模型位置 | 在参数面板里把对称轴位置设为目标模型中心,而不是世界原点 |
| 导出STL后切片有洞 | 壁厚不足或表面有悬空岛 | 用“Thickness Check”检测薄壁,补厚;再用“Remove Floating Voxels”删除孤立体素 |
5.5 我自己的几个独家避坑心得
- “快照”别关。ArtCraft的自动快照功能对于我这种“做三小时忘记保存”的毛病太重要了。有一次停电,重启后从快照恢复,几乎不丢进度。
- 分镜保存多个文件。做完大型场景,我会复制出好几个版本文件。比如v1是纯素模,v2加了陶土材质,v3做了表面松弛。不同版本之间互相参考,可以随时回退,也不用玩命Ctrl+Z。
- 材质别铺太满。我刚开始喜欢满铺陶土材质,结果模型导出后,因为材质的高光模型自带粗糙度,在光线弱的场景里看着一团黑。后来只给表面关键区域做材质,其余用默认泥灰材质,然后通过贴图通道在引擎里设置反光,效果反而更自然。
6. 最后几点个人体会
我在实际使用ArtCraft时,最大的感悟是它给了我一种“数字手工”的复健感——平时面对一行行代码或者精细的装配体,脑子里全是精度、公差、应力,整个人容易僵住。但在ArtCraft里捏猫头鹰、修耳朵、刷陶土材质,又让我回到了小时候玩面团的专注状态。技术工具不一定要成为高效生产力的引擎,做创作工具本身,也是一种疗愈。
另外,如果你玩这个项目,请一定试试把雕刻和“手工图纸”结合。ArtCraft有镂空拓片功能,可以把模型按Z轴切片导出每层的轮廓PNG,就像医疗上的CT切片一样。你可以拿着这些切片图去激光切割机上切出纸板,再一层层叠出一个实体玩偶。这个玩法把数字和实体手作彻底串联了起来,做出来之后摆在桌面上成就感极高。
最后再分享一个小技巧:雕刻完导出前,把模型旋转到一个小角度,在渲染模式里点开“环境光遮蔽”看一下阴影过渡。这个开关能模拟物体表面遮挡产生的小灰度变化,帮助判断哪些位置做得太平,手工味不够。我的习惯是看到某片区域“阴影糊成一片”,就用平滑笔刷在边缘带点拖拽,让阴影有渐变,这种细节能让最终作品一眼就“有雕塑感”,而不是一个圆滚滚的塑料块。
ArtCraft这个项目学起来不难,真正花时间的是学会用“方块”的感受去思考体积。如果你也想做些立体小东西又不想背沉重的软件,就从捏一只最简单的方块鸭子开始吧。我在捏第二只的时候就明显感觉到,手指已经下意识知道怎么用不同强度的笔刷控制泥量了。这种直接的身体记忆,大概是手工类工具最让人着迷的地方。