GLB to Godot Acceptance (is this model really done?)
/glb-godot-acceptance
A GameSkill original that decides whether a 3D model is ready for a game: Godot 4 imports the GLB like any file in the project, then checks import errors, triangle budget, size in metres with Y up, origin at the base, materials, colliders, the clips the code plays, a drop test on a floor and runtime errors, with a fix for every failure. Works on any GLB from Blender or an image-to-3D model.
- 许可证
- MIT
- 出品
- GameSkill 出品
我们测过
在 Godot 4.7.2 (glTF import, physics) + Blender 5.2.3 LTS (background) 上通过 36/36 项检查(2026-11-03):能触发、有可运行示例、有截图和自检清单、单一职责、中英文文档齐全。触发检查是把提示词和 skill 描述做匹配,不是真实 agent 运行。
测试报告GameSkill 测过的版本
GameSkill 为 gameskill.dev 原创编写并测过。ZIP 里是完整的 skill:SKILL.md 及中文版、脚本、可运行示例、测试、自检清单和我们的测试报告。
GameSkill 原创,协议 MIT。ZIP 保留 LICENSE 和 CREDITS.md,里面列出了流程灵感来源、CC0 测试素材和第三方库及其协议。

自检清单
- 导出前问清尺寸(米)、面数预算、动画名和是不是物理物体 / Before export, ask for the size in metres, the triangle budget, the clip names and whether it is a physics object
- accept.py 打印 ACCEPTED,退出码 0 / accept.py prints ACCEPTED and exits 0
- 尺寸差不超过 5%,最低点在 y = 0 / Size within 5% and the lowest point at y = 0
- 碰撞体来自文件本身,不是 --collider auto / Colliders come from the file, not from --collider auto
- 代码要播的每个动画名都在 / Every clip name the code plays is there
- 看过 --shot 渲染图 / The --shot render was looked at
中文指南
这个 skill 做什么
GameSkill 原创(MIT)。判断一个 3D 模型是不是真的能用在游戏里:用 Godot 4 像游戏里的普通文件一样导入 GLB,然后逐项检查导入报错、三角面预算、尺寸(米,Y 朝上)、原点是否在底部、材质、碰撞体、代码要播的动画、放到地面上的掉落测试和运行报错,每个失败都给出修法。不管 GLB 来自 Blender、图生 3D 模型还是素材商店都能用。
什么时候用
- 从 Blender 或 AI 3D 工具导出了 GLB,放进 Godot 关卡之前
- 模型进 Godot 后大了 100 倍、浮在空中、陷进地里、没有碰撞或者动画不见了
- 想给 agent 一个「3D 资产做完」的明确标准
怎么装
下载本页的 ZIP,把 glb-godot-acceptance/ 文件夹放进 .claude/skills/(Claude Code)或 .agents/skills/(Codex、Cursor),重启 agent。需要 Godot 4.2 以上和 Python 3;只有重新生成示例时才需要 Blender。
最小示例
python3 tools/accept.py example/moss-mailbox.glb --size 0.46,1.4,0.33 --tris 3000 --clips open,打印ACCEPTED。blender -b --factory-startup -P blender/make_mailbox.py -- --out out/broken.glb --broken生成一份故意出错的副本。- 对它再跑一次 accept.py:面数、尺寸(大约 100 倍,提示是按厘米建的模)、原点、碰撞体、动画名和掉落测试 6 项失败,每项都附修法。
我们怎么测的
示例是我们自己设计的「青苔信箱」:立柱、长青苔的箱顶、能打开的前盖和侧边小旗,164 个三角面,高 1.395 米,带 open 动画和两个凸包碰撞代理。test/run_tests.py 共 24 项检查,用 Godot 4.7.2 和 Blender 5.2.3 跑:
- 随包的信箱 11 项全部通过;
- 用 Blender 脚本重新生成后再次通过,高度 1.395 米;
- 故意出错的副本退出码为 1,正好在面数、尺寸、原点、碰撞体、动画名和掉落测试 6 项失败,每项都有修法,100 倍尺寸被识别为厘米单位,运行时没有 Godot 报错;
--collider auto自动生成凸包、只给警告;文件不存在时退出码为 2。
截图是 Godot 里的渲染:左边是导入后的样子,右边是 open 动画播完(前盖放下、小旗翻起),半透明绿色是碰撞体。结果在 gameskill/test-report.json。
致谢
「AI 做的 3D 模型能在游戏里跑才算完成」的思路来自 X 上 @bykushnir 和 @Marlenuii 的帖子(只放链接,没有使用任何代码或文字)。代码、示例和文字都是我们自己的。
搭配
construct:用数据描述道具,导出带部件和关节的 GLBblender-export-pipelines:从 Blender 导出到各引擎的设置godot-3d-essentials:在 Godot 里搭 3D 场景
安装
告诉你的 AI
Install the skill from https://gameskill.dev/skills/glb-godot-acceptance/install.md
GameSkill 测过的版本
mkdir -p .claude/skills
curl -fsSL https://gameskill.dev/dl/skills/glb-godot-acceptance.zip -o /tmp/gameskill-glb-godot-acceptance.zip
unzip -oq /tmp/gameskill-glb-godot-acceptance.zip -d .claude/skills
rm /tmp/gameskill-glb-godot-acceptance.zip包含内容
- tools/accept.py: one command that imports a GLB into a throwaway Godot project and prints PASS / FAIL with a fix for each failure (exit 0, 1 or 2; --json, --report)
- tools/accept.gd: the 10 Godot checks, from triangle budget and size to a 120-frame drop test
- tools/shot.gd: a render of the model as imported and at the end of a clip, colliders tinted
- Moss mailbox example (164 triangles, open clip, convex collider proxies) and a broken copy with the usual mistakes
- 24 checks in test/run_tests.py, run against Godot 4.7.2 and Blender 5.2.3
适合
- Checking a model from Blender, an AI 3D generator or an asset store before it goes into a Godot level
- Models that arrive 100 times too big, floating, sinking, without collisions or without their animation
- Giving an agent a clear definition of done for 3D assets
不适合
- Judging how good a model looks: look at the render as well
- Making, decimating or rigging the model: use the Blender and art skills
- Unity or Unreal imports: the checks are Godot's
试试这条提示词
I exported a mailbox prop from Blender as GLB. Check it is ready for my Godot game: about 1.4 m tall, under 3,000 triangles, with colliders and an open animation.关于这个 Skill
A GameSkill original. A model is not done when its render looks good; it is done when the game can use it. tools/accept.py builds a throwaway Godot 4 project, imports the GLB the way a game would, and checks it: import errors, triangle budget, size in metres with Y up, origin at the base, materials, colliders from the file, the clips the code plays, a 120-frame drop test on a floor and runtime errors. Every failure comes with a fix. Exit codes (0 accepted, 1 failed, 2 could not run) and --json make it a gate an agent can run after each export.
Agent steps
- Ask what the game expects: size in metres, triangle budget, clip names, static or physics object.
- Export from Blender as glTF 2.0 Binary with scale applied, the origin at the base, collider proxies named
-convcolonlyor-colonly, and clips named as the code calls them. - Run
accept.py, read each FAIL and its fix, change the source file, and run it again until it printsACCEPTED. - Report the size, triangle count and clips from the report, and look at the
--shotrender.
Common errors it catches
- A model 100 times too big because it was made in centimetres, or one that floats or sinks because its origin is in the middle.
- No colliders, or a clip still called
Action.001orNlaTrackwhen the code playsopen. - An AI-generated mesh far over budget, a texture that was not packed into the GLB, and props that tip over on a floor.
Credits
The idea that a 3D asset is only done when Godot can play it comes from posts by @bykushnir and @Marlenuii (links only; no code or text was used). The code, the moss mailbox example and the text are ours.
环境要求
- Godot 4.2+ (tested on 4.7.2), run headless; set GODOT if it is not on PATH
- Python 3 standard library; no add-ons or packages
- Blender 4.2+ only to rebuild the example (tested on 5.2.3)
相关主题
常见问题
基于 Blender -> GLB -> Godot acceptance (post, idea only) (作者 @bykushnir,no licence, idea only, no code or text used)的思路。代码和文字由 GameSkill 编写,ZIP 里的 CREDITS.md 列出所有来源。 · 基于 Your AI 3D demo isn't done until Godot can play it (post, idea only) (作者 @Marlenuii,no licence, idea only, no code or text used)的思路。代码和文字由 GameSkill 编写,ZIP 里的 CREDITS.md 列出所有来源。
搭配使用
作者标注的相关 Skills,或更适合相邻任务的 Skills。
Construct
Describe a prop as data (parts in metres, joints, assembly order) and a deterministic engine builds it: an animated hologram page, and a glTF model with named parts, working joints and optional colliders for Godot, Unity, Unreal or Blender. Python standard library only.
Blender Export Pipelines
Export from Blender 5.2 with verified presets - Roblox (FBX/glTF, cages, R15, SurfaceAppearance), Unity (FBX, Humanoid), Unreal (FBX skeletal, Nanite, UCX), Godot/web (GLB, meshopt/Draco, WebP), USD.
Godot 3D Essentials
Set up 3D scenes in Godot 4.7: transforms, cameras, lights, WorldEnvironment, materials and GridMap levels.
相似 skills
ForgeSkills
28 gated game-development agent skills (concept, orchestration, verification, Blender headless, reference reconstruction, textures, animation, VFX, lighting, foliage, Godot pipeline) plus Python tools that measure the result. GameSkill hosts the 27 we ran, with the tools. Apache-2.0.
Style Cards (one art style as hard limits, switch looks by switching cards)
A GameSkill original that writes a game's art style down as a card of measurable limits (canvas, colours and palette, alpha, triangles, shading, materials, textures, voxel grid), pastes it into every asset request and checks every asset against it. Ships 12 cards from pixel and one-bit to low-poly, voxel and toon, a no-dependency PNG checker, a Blender GLB checker and a palette locker; switch the whole look by switching the card.
3AGameFactory (GameFactory-3A)
An Apache-2.0 framework of agent skills and pipelines that turns a game requirement into assets (image, 3D, motion, audio, CG video) and engine-ready code for UE5, Blender, Unity, Godot 4 and three.js.
Image to 3D Hero (one picture to a playable rigged GLB, free open-source route, three.js WASD)
A GameSkill original that takes one character image to a third-person hero you can walk with WASD, using free tools only: TripoSR or TRELLIS.2 for the mesh, UniRig or Blender for the rig, Quaternius CC0 clips, then a headless Blender fix step and a GLB check for scale, feet, facing and clip names. Meshy, Tripo and Mixamo are listed as alternatives only. Tested on Bram, a made-up stand-in hero.