首批渲染的排错记录

最早的待机渲染验证了模型导入、骨架和透明输出,也暴露出自动优化与材质处理的问题。这里的旧骷髅造型后来被修整,待机试稿也扩展成完整动画。

后续采用的模型与动画见完整动画

**截至 2026-09-09:**兵种 mod 为 0.12.1 0.12.2,已安装十四种墓园兵种。本文数字保留各次交付版本的含义;最新进展见黑暗骑士与骨龙动画

工具在 h3-art-pipeline 维护;模型和完整 mod 留在本地。工具迁移与复现

历史记录

历史原文与修订记录(展开阅读)

以下完整保留本次整理前的原文、图片和删除线。这里的“当前”“尚未完成”和“下一步”均指各段写作或标注时的状态;旧版本号、旧工具路径与试稿不能作为现行操作说明。

0.12.0 时的状态说明,现用补丁版本见正文:

**截至 2026-09-09:**兵种 mod 为 0.12.0,已安装十四种墓园兵种。本文数字保留各次交付版本的含义;最新进展见黑暗骑士与骨龙动画

**截至 2026-09-09:**兵种 mod 为 0.11.1,已安装十种墓园兵种。本文涉及的安装数字按各次交付版本注明;最近一次扩展见吸血鬼与蝙蝠形态

2026-09-09 工具迁移: 后续代码在 h3-art-pipeline 维护,原 tools/creature-art/tools/town-art/ 对应新仓库的 creature-art/town-art/。本文的旧路径和 PR 链接保留作历史记录。迁移与复现说明

2026-09-09 更新: 本文的图片、姿势和测量保留为当时试稿,不能视为当前游戏版本。后续替换见完整动画,当前八兵种安装状态见尸巫交付

管线打通了:

概念图    FLUX.2 [pro]        正面图定风格,A-pose 供建模
建模      Meshy image-to-3D   quad 拓扑,两万面
绑骨      Meshy rigging       24 根人形骨架
动画      Blender 写关键帧     十三个动画组
渲染      Blender 正交相机     450x400 画布,脚落在 y=267

骷髅的待机动作已经能渲出八帧,79 像素高,脚踩在 y=267 上,整个循环地面线一动不动 ——这正是原版的做法,也是验证器要查的。

过程中撞了三堵墙,都不在预料里。

绑骨被我自己的优化搞砸了

第一次提交绑骨,Meshy 直接拒了:

Pose estimation failed, please provide a valid model

先排除了朝向问题(Y 是最长轴,正常)。真正的原因是姿势——而那个姿势是我自己造成的。

为了让概念图通过比例检查,我把 prompt 收紧成"手臂贴着肋骨、剑横在身前、短步"。 这恰好是击溃姿态估计的形状:自动绑骨要看到四肢离开躯干。

两件事被我混成了一件。比例检查管的是最终渲染帧在六边形格子里的样子,而建模用的图 需要的是能绑骨的中性姿势。游戏里那个紧凑的姿态应该来自动画,不是来自概念图。

改法是把 roster 里的描述拆成两半:design 说这生物长什么样,所有视图共用;pose 只管 正面图的姿态。再加一个 apose 视图自带 T 字站姿,并且跳过比例提示——那个提示会和 A-pose 直接打架。重新生成后一次通过,绑骨 5 credits,出来 24 根标准人形骨骼。

相机不能算,得量

引擎不给你事后微调的机会:帧自己的画布和生物在画布里的位置,就是唯一的锚点。所以相机 必须解出来,不能靠眼睛对。

我先写了解析解——把所有顶点投影到相机空间,从想要的高度反推 ortho_scale,从脚该落在 哪反推 shift。数学是自洽的,span_y / units_per_px 精确等于 79。

渲出来 51 像素。

投影和渲染在某个地方不一致,我没查出来是哪。与其继续追,不如换个办法:先渲一张探针帧, 量它的 alpha 包围盒,再修正。测量是 ground truth,一采样渲一帧几乎不花时间,而且以后 换任何模型都能自适应。

还有个坑:缩放和位移不能一起修。改缩放会移动脚的位置,于是按旧缩放算出来的位移修正会 过冲——第一版就是这样越修越偏,脚从 208 修到 199 再修到 130。拆成两阶段,先把高度调对, 再调位置,三轮收敛。

标定还必须在摆好姿势之后做。骨架是 A-pose 进来的,而战斗姿态是驼背的,先标定再摆姿势 会差 2 像素。

动画是写出来的,不是套的

Meshy 的绑骨附赠走路和跑步。英雄无敌 3 要十三组:三个方向的攻击、受击、防御、死亡、 转身、待机、悬停高亮……

我没去找动作库重定向,直接写关键帧。原版的动作短、风格化、很具体——攻击八帧、转身两帧—— 动作库里没有能对上的东西,重定向到比例不标准的骨架还容易出事。

结构是一个共享的 BASE 姿态承载战斗站姿,每组只写区别于它的那部分动作。骨骼名是 Mixamo 那一套(Hips / Spine02 / RightArm / LeftUpLeg…),按名字直接写旋转角。

现在长这样

渲染的待机帧与原版对比
上排是渲染的八帧,下排是原版。尺寸和锚点对上了,姿势还差得远。

尺寸、锚点、地面线稳定性都对了。剩下两个问题很明显:手臂读起来像在往前伸, 而不是低位持剑;明暗对比比原版弱一截。

追加:剑根本没做进模型

我先怀疑是姿势不对,渲了四个候选战斗站姿——手臂高低、驼背程度各不相同。

四个的剪影重叠度是 35%、33%、35%、33%。

这个结果本身才是答案:79 像素下,手臂角度根本影响不了剪影。 姿势从来不是瓶颈。

真正缺的是剑。回头看 A-pose 的 prompt,我写的是"武器垂直向下贴着腿"——这对姿态估计 友好,对后面每一步都是灾难。贴着腿的剑重建出来是一片薄皮,侧视图里几乎看不见; 而原版里,剑是让这个骷髅可辨认的主要元素

改成"剑横向伸出、完全离开躯干、在背景上清晰可见"之后,剑进模型了。

剑贴腿与剑离体的重建结果对比
左:剑贴着腿,重建后消失。中:剑离开身体,刀身进了模型。右:原版。

有意思的是重叠度反而从 36% 掉到 21%——因为剑现在指向前下方,而原版是横过身前指向后下方, 把包围盒撑宽了(宽高比 0.67 对 0.52)。但剑是绑在手上的,这是姿势问题,不是"东西不存在" 的问题。前者能改,后者不能。

代码在 PR #10