Skip to content
cccskills
FreePublished on GitHub

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.

Works withBlenderGemini
See how to install

Files 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.

CommandMakesREADME in the checkout
qwen-imagePNG from text; rgba: real transparency; edit -i ref.png: image-to-imageimage/
gen3dtextured GLB from an imagemesh/
mia-rigMixamo-rigged humanoid from a GLBrig/
add-moves, gen-movesidle/walk/run/jump onto a rig; custom moves from text promptsmotion/
grip-propa prop made holdable; add-moves --hold puts it in a character's handmotion/
lipsyncspeaking mouth + lip-synced clip from a voice linelipsync/
stable-audiosound effects, seamless ambience loopssfx/
qwen-ttsvoice lines from a description, or cloned from a reference linevoice/

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 -o into 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. gen3d defaults 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 -o extension. Bevy's default features decode only Ogg Vorbis, so write .ogg for 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 answers not 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-tts lacks, 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
NameDescriptionSizePathCost
cratewooden supply crate0.8m${RUNTIME_ASSET_DIR}/glb/crate.glblocal
themevillage shop music8 bars / 22.6 s loop${RUNTIME_ASSET_DIR}/audio/shop_loop.ogg4¢

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.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Report a problem with this skill