Files

Tools

rename_rig_in_glb.py

Renames the rig root node in each character GLB to a consistent name (Character). This makes all characters share the same skeleton path Character/Skeleton3D:bone_name, enabling a shared animation library.

python3 tools/rename_rig_in_glb.py

Modifies: Bob.glb, Oldpop.glb, Masbro.glb, Gatot.glb

  • bob-rig → Character
  • oldpop-rig → Character
  • masbro-tpose → Character
  • gatot-tpose → Character

Creates .glb.bak backups on first run. Re-runnable; restores from backup each time to ensure idempotency.

After running, you must reimport in the Godot editor (or via godot --headless --import).

build_animation_pack.gd

Headless script that extracts all animations from animation-0.glb, applies rest-pose correction against Bob.glb (the reference rig), and saves as assets/characters/animations/animation-pack.res.

godot --headless --path . --script tools/build_animation_pack.gd

Run rename_rig_in_glb.py first so the reference skeleton has the expected path.

The animation-pack contains 15 animations used by the player:

  • idle, walk_forward, backflip_1
  • take_tile_1, take_tile_2, drop_tile_1, drop_tile_2, spawn_tile_1
  • pickup_1, put_1, holding_1
  • hit_1, hitted_1, getting_hit_1, stun_1

All tracks use original Blender bone names with path Character/Skeleton3D:bone_name so they resolve regardless of which character model is active.

generate_version_json.py

Generates version.json for game update checks.