用途
blender-image-to-3d 用于把一张或多张参考图像(概念图、照片、转视图、草图、截图)转化为可交付的游戏就绪 3D 资产。它通过一系列带门禁的阶段推进,每个阶段结束时都要用渲染证据与同相机、同游戏像素尺寸下的参考图对比,而不是仅凭视口观察判断是否合格。流程强调:在轮廓通过门禁之前不添加细节,以避免在错误比例上浪费工作。
主要能力
技能提供一组脚本,全部通过 -- --help 查看参数:
scripts/init_master.py:创建主 .blend 文件,包含单位、集合、校准代理、真实比例的参考平面与游戏相机。scripts/review_render.py:从固定视角渲染 clay、silhouette、wire、checker、material 等模式,支持参考匹配相机、游戏像素尺寸、转台与姿态帧。scripts/compose_review.py:合成对比图(参考、渲染、叠加、游戏像素条带),并计算轮廓 IoU 与宽度剖面数值,基于 Pillow 的纯 Python 实现。scripts/world_gate.py:针对正交参考视图计算世界注册的轮廓 IoU,使相机覆盖参考遮罩的精确世界窗口,从而让比例与位置错误被计入。scripts/validate.py:校验拓扑、变换、UV、权重、骨架、插槽、碰撞体、命名与三角面预算,FAIL 时退出码为 1。scripts/bake_maps.py:从 HIGH 向 LOW 烘焙法线与 AO,以及基础色、粗糙度、金属度,并重建交付材质。scripts/export_delivery.py:导出 GLB/FBX,并生成 asset-manifest.json 与 animation-contract.json。scripts/roundtrip.py:把导出结果导入空白 Blender,报告到达内容并渲染检查。
使用方式
运行时需 Blender 4.2 或更新版本(资料称使用至 5.2),以无头模式执行:blender --background --python <script> -- <args>。二进制解析顺序为 $BLENDER_BIN、PATH 中的 blender,再到 /Applications/Blender.app/Contents/MacOS/Blender。macOS 或 Windows 上 Workbench 渲染无需 GPU;无 GPU 的无头 Linux 机器需为 review_render.py 传入 --engine cycles。
所有建模以 bpy 代码写在 <asset>/build/NN_<phase>.py 中,从 assets/build_template.py 复制而来。每个脚本打开主文件、删除自己负责的部分、重建并保存,因此任何阶段都可安全重跑。常量以米为单位,并注明来自哪个参考视图,或标记 # inferred。
可通过 MCP 服务器的 execute-Python 工具进行实时检查,但仍建议通过编号脚本构建并保存同一主文件,以保持可复现性。
阶段与门禁
阶段 0 读取参考并撰写资产简报 <asset>/asset-brief.md,结构包括 ASSET、CATEGORY、VIEWS、SCALE、PROPORTIONS、PARTS、SILHOUETTE、MATERIALS、ARTICULATION、INFERRED、TARGET。只向用户询问图像无法回答的信息:目标引擎与格式、无比例线索时的真实尺寸、预算档位、是否需要绑定与动画、游戏相机。默认值为 1 单位=1 米、Blender 中 Z 轴向上且主体面向 -Y、GLB 导出、标准档位、50 mm 三分之四俯视相机、主体高度 128 px、仅当类别会变形时才绑定、未要求则不做动画。
阶段 1 校准与主文件:确定规范单位并保持一致,原点位于地面接触点。
阶段 2 块面与轮廓门禁:仅构建主要体块,同时放置关节中心与枢轴点。在 clay 与 silhouette 模式下门禁,类别必须在不依赖贴图、粒子或标签的情况下从游戏相机可读。
阶段 3 形态:顺序为初级解剖或体块、次级形态、末级细节。有机体使用体素 Remesh,硬表面使用 loft、extrude、spin 与 cut 并保留真实板缝、板厚与倒角。
阶段 4 拓扑:构建 LOW 交付网格,四边面源、三角化交付,在烘焙前锁定三角化。同时构建 LOD1 与 LOD2。
阶段 5 UV、烘焙与材质:接缝位置依据构造与可见性,面部、主视觉服装与核心表面使用独立空间,重复边缘与大表面使用 trim 与 tile,小道具使用图集,每个资产族保持统一纹素密度。
门禁协议要求在每个阶段结束时用 review_render.py 以 --ref-cam AZ EL LENS 加 front、side、threequarter 渲染,并用 --gameplay-px 指定主体在游戏中的屏幕高度(默认 128)。随后用 compose_review.py --measure 与匹配的参考视图比较,读取对比图与数值。偏差必须写成测量值而非形容词,例如“头部高了 12%”“轴距短了 0.3 m”“band 4 宽度 +0.06”。修复构建脚本中的常量,重跑阶段并重新渲染,直到所有偏差进入阶段容差。容差为:块面 IoU 0.85 且每个 band 宽度与参考差距在 0.05 以内(形态为 0.90 与 0.03);简报所列测量值的比例偏差在 5% 以内(块面)与 2% 以内(形态);材质需在材质转台的移动光下与游戏尺寸灰度下每个角色读起来正确。
适用场景
适用于需要从参考图像制作游戏就绪资产的场景,覆盖角色、生物、建筑、载具、道具、武器与环境等类别。也适用于多资产项目:先每类跑通一个资产并获批,再把验证过的比例、绑定、材质与导出规则应用到其余资产。
限制
资料未提供完整的价格、收费、平台支持范围与效果保证信息。部分脚本细节、绑定与动画参考文档、类别参考文档的内容在本资料中仅被提及,未展开。references/categories.md、references/rigging-animation.md、references/delivery-and-acceptance.md、references/blender-5-notes.md 的具体内容暂未提供。