我正在开发 Grauwacht,一款暗幻休闲游戏,玩家可以与其他人一起玩(公会、团队首领、公会城堡围攻、PvP 竞技场)。它可以在浏览器和 Android 上运行,并且我独自开发。

为我们的第一次服务器范围事件,我需要一个世界首领——一条东方风格的长龙,肚子上挂着发光的灯笼。我在 ChatGPT 中制作了一张概念图,并将同一张图片输入两个 3D 图像工具。

Meshy 给了我一个干净、轻量的网格,颜色在我的光照下立即就能使用。鬃毛做得不错,但肚子上的发光灯笼缺失,脸部显得较为柔和。它可以通过 API 完全使用,适合自动化流水线。

Tripo(Max 计划,HD 模型)更接近原图。鬃毛、角、鳞片和灯笼尾巴应有尽有。网格非常庞大,约 190 万个面,自动装配器无法处理蛇形身体。最终,Tripo 模型进入了游戏,主要是因为正面观看时头部和脸部更逼真。

下面是我对模型的处理过程,全部在 Blender 中脚本化完成。

首先我进行了焊接,然后进行降级。网格在纹理缝 seam 处会分解,所以我的第一次尝试只得到几厘米长的身体。通过按距离合并顶点修复了问题,然后将其降级到 15 万个面。

随后脚本会寻找脊椎。它沿着身体的长度将其切成 20 截,取每截的中心。这为从头到尾的中心线提供了依据,即使姿势是卷曲的。

沿着这条线,它为每一截创建一根骨骼,权重基于距离。腿部单独检测(位于身体线下方的几何体),并为其分配独立骨骼,这样在飞行时可以保持收起。

Tripos 的颜色纹理很亮,在我的夜光环境下龙看起来像银色。我暗了它的颜色,关闭金属感,只让金色部分发光。

闲置、击打和死亡是沿着骨骼链的渐进波形。我使用租用的 GPU 在 Cycles 中以 24 帧渲染,裁剪到所有帧的并集,并将其打包为动画 WebP,每循环约 400 KB。

作为加分项,我尝试了 Tripo 的 Generate in Parts 功能来制作礼物宝箱。盖子和身体分别生成,但没有纹理,所以我分两步加入纹理。在 Blender 中我把盖子在铰链处分割,设置该位置为 pivot,渲染了 24 帧的打开动画,这已成为游戏中的宝箱动画。通过文本提示,纹理首先会交换颜色(红色的丝带变成了青色),直到我明确指定每种颜色。

如何处理非常稠密的 AI 网格在装配之前?降级、retopo 工具,还是其他方法?

AI 披露:概念图由 ChatGPT 生成,3D 模型由 Meshy 和 Tripo 制作,代码由 Claude 编写。动画设置和游戏设计皆为我所完成。

如果你想自己与他作战,Nocthyr 是我们第一次服务器范围事件“灯笼之夜”的首领,时间为 11 月 6 日至 11 日。服务器上所有城堡都与同一条龙作战,所有加入的玩家共享奖励,所以每多一个玩家都有帮助。活动免费,可在浏览器中直接玩,无需安装,并且在 Android 上也能运行。加入公会在活动开始前是个好主意。 https://grauwacht.com/start?von=reddit-aig4

https://preview.redd.it/au0tm2c2t8yh1.png?width=1536&format=png&au&s=ce1a16fff325cf90b1a555451d51bd971a2efb11

左 Meshy,右 Tripo。同一张图,同一光照,同一脚本。

https://i.redd.it/eoft3206t8yh1.gif

加分:一个由 Tripo 的 Generate in Parts 制作的宝箱,盖子在 Blender 中拆分。