asset-gen
Generate game assets, locally and free by default with godogen_assets: images and transparent PNGs (Qwen-Image), textured GLB models (TRELLIS.2), rigged humanoids with generated moves and lip-synced speech, sound effects and voice lines. Paid APIs cover what the local tools can't make — Gemini / xAI Grok images, animated sprites from video, Tripo 3D, Gemini TTS voice acting, Lyria music. Use whenever a game needs generated art or audio.
The English summary is being prepared. Showing the original description.
See how to installFiles included (10)
- SKILL.md5.8 KB
- api.md13.3 KB
- motion.md15.9 KB
- rembg.md2.6 KB
- tools/asset_gen.py22.7 KB
- tools/find_loop_frame.py4.3 KB
- tools/grid_slice.py1.9 KB
- tools/loop_audio.py4.0 KB
- tools/rembg_matting.py11.8 KB
- tools/requirements.txt99 B
SKILL.md (original)
Review the instructions the agent will receive before you install.
Asset Generator
Assets come from godogen_assets: local generators on this machine's GPU, one command per task, free. Its checkout here is ${GODOGEN_ASSETS}, and its docs are the reference; this page is the TL;DR plus what the game needs on top. Read ${GODOGEN_ASSETS}/README.md once (conventions, a character start to finish, checking results), and a part's README up to How it works before first using its tool.
| Command | Makes | README in the checkout |
|---|---|---|
qwen-image | PNG from text; rgba: real transparency; edit -i ref.png: image-to-image | image/ |
gen3d | textured GLB from an image | mesh/ |
mia-rig | Mixamo-rigged humanoid from a GLB | rig/ |
add-moves, gen-moves | idle/walk/run/jump onto a rig; custom moves from text prompts | motion/ |
grip-prop | a prop made holdable; add-moves --hold puts it in a character's hand | motion/ |
lipsync | speaking mouth + lip-synced clip from a voice line | lipsync/ |
stable-audio | sound effects, seamless ambience loops | sfx/ |
qwen-tts | voice lines from a description, or cloned from a reference line | voice/ |
A character: qwen-image rgba (T-pose) → gen3d → mia-rig --fingers --anim none → add-moves, with gen-moves for custom moves and lipsync for speech. Props stop after gen3d; one a character holds goes on through grip-prop and add-moves --hold, never by an offset tuned in the engine.
- Always pass
-ointo the project; without it, results land in the godogen_assets checkout. - One GPU job at a time, minutes per call. Run GPU tools as one sequential batch with a long timeout or in the background, never as parallel calls.
- Game budget.
gen3ddefaults to ~500k triangles and 2048² textures; pass--faces/--tex(30000 / 1024 for a character). - Style families. Generate one hero asset, derive the rest with
qwen-image edit -i hero.png, prompting only what changes. - Small sprites. A 1024px image downscaled to 64px looks muddy: design display sizes ≥128px, prompt bold flat forms, or generate a kit (several objects in one image) and slice it with
python3 ${ASSET_GEN_SKILL_DIR}/tools/grid_slice.py kit.png -o out/ --grid 2x2 --names "a,b,c,d". - Direction. Generators get left/right and facing wrong; generate one direction and flip at runtime.
- Audio format. Every tool picks it from the
-oextension. Bevy's default features decode only Ogg Vorbis, so write.oggfor Bevy. - Review before building on it. Look at every PNG. You can't look at a GLB or hear a WAV: render GLBs (
${GODOGEN_ASSETS}/README.md, Checking results) and read audio as a spectrogram (${GODOGEN_ASSETS}/sfx/README.md).
Moves that drive gameplay — root-motion locomotion, attacks, state machines, anything held, ridden or aimed, characters that touch each other: read ${ASSET_GEN_SKILL_DIR}/motion.md.
Blender
Some 3D is better built than generated. A bpy script run headless (blender -b -P make_turret.py, exporting with bpy.ops.export_scene.gltf) is often the better path when:
- the shape must be exact or articulated: a vehicle whose wheels turn, a door on its hinge, a turret that aims, kit pieces that snap together;
- a generated GLB needs work: split into parts, new pivots, decimation, several merged into one;
- the animation is outside the humanoid tools: mechanical parts, a creature of a few bones, keyframed or procedural clips.
Check what it writes like any GLB. Without blender on PATH, asset-blender script.py -- args runs the script in godogen_assets' Blender (its print goes to stderr).
Paid APIs
${ASSET_GEN_SKILL_DIR}/api.md covers Gemini / xAI Grok images, animated sprites from Grok video, Tripo 3D, Gemini TTS and Lyria music. Read it only when an asset needs one:
- godogen_assets isn't on this machine (its checkout above reads
none), or a command answersnot installed— that part isn't set up; - the local tools don't make it: frame-by-frame animated 2D sprites, music, one character voice acting many emotions, vocal barks, two-speaker dialogue, a language
qwen-ttslacks, a rig for a non-humanoid; - a local result stays wrong after rewording and a few seeds.
Paid calls cost real money: confirm with the user before the first one.
Asset manifest (in README.md)
Track every generated asset in README.md with an in-game Size column — without it, coders consistently scale assets wrong. gen3d models come out 1.0 tall with no real scale, so this column is where their size is decided:
- 3D models: meters, e.g.
4m long,1.8m tall,0.3m - Textures: tile size, e.g.
2m tile - Backgrounds: pixel size + behavior, e.g.
1920x1080, fullscreen - Sprites: display pixels, e.g.
128x128 px - Audio: length + use, e.g.
1.2 s one-shot,8 bars / 22.6 s loop
| Name | Description | Size | Path | Cost |
|---|---|---|---|---|
| crate | wooden supply crate | 0.8m | ${RUNTIME_ASSET_DIR}/glb/crate.glb | local |
| theme | village shop music | 8 bars / 22.6 s loop | ${RUNTIME_ASSET_DIR}/audio/shop_loop.ogg | 4¢ |
Reviews
No reviews yet. Tell others what you thought.
Comments
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.