51 lines
1.5 KiB
Markdown
51 lines
1.5 KiB
Markdown
# 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.
|
|
|
|
```bash
|
|
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`.
|
|
|
|
```bash
|
|
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.
|