Move Blender sources under art/blender and snake_case them
Relocate the Blender working files into art/blender/ (Godot-ignored via the .gdignore that travels with them) and lowercase the ANIM_* files to snake_case: anim_bull, anim_bull2, anim_matador, anim_publik_mees. Drop the stray matador2.gd.uid (no matador2.gd exists). Repoint .gitignore (preview + blend-backup patterns), render_anim_preview.py and CLAUDE.md at art/blender/, and update the anim-doc references from the deleted matador_v02 to matador_v03. No game impact: art/blender/ sits outside Godot's import graph (confirmed: no .blend imported, preview stays gitignored, menu boots clean). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FBbGXbzg3SD6ZBSadPPF5H
This commit is contained in:
+2
-2
@@ -9,10 +9,10 @@
|
|||||||
.idea/
|
.idea/
|
||||||
|
|
||||||
# Blender render previews (generated by render_anim_preview.py)
|
# Blender render previews (generated by render_anim_preview.py)
|
||||||
Blender/preview/
|
art/blender/preview/
|
||||||
|
|
||||||
# Blender auto-save backups (.blend1, .blend2, … — Blender rewrites these on every save)
|
# Blender auto-save backups (.blend1, .blend2, … — Blender rewrites these on every save)
|
||||||
Blender/*.blend[0-9]
|
art/blender/*.blend[0-9]
|
||||||
|
|
||||||
# Test output (generated screenshots, frame strips)
|
# Test output (generated screenshots, frame strips)
|
||||||
tests/output/
|
tests/output/
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
uid://ymaeifakqovf
|
|
||||||
@@ -31,7 +31,8 @@ art/ all raw art, grouped by role (snake_case):
|
|||||||
characters/ levels/ weapons/ bull/matador/bear, arena/lobby geometry, spear/sword
|
characters/ levels/ weapons/ bull/matador/bear, arena/lobby geometry, spear/sword
|
||||||
fx/ anim/ textures/ bear_fx, crowd_clap, baked sheets
|
fx/ anim/ textures/ bear_fx, crowd_clap, baked sheets
|
||||||
ui/ icons/ fonts/ menu art, ability icons, Cinzel fonts
|
ui/ icons/ fonts/ menu art, ability icons, Cinzel fonts
|
||||||
Blender/ Siim's .blend working files (Godot-ignored)
|
hdri/ materials/ sky HDRIs, shared StandardMaterial3D resources
|
||||||
|
blender/ Siim's .blend working files (Godot-ignored)
|
||||||
```
|
```
|
||||||
|
|
||||||
| Path | Purpose |
|
| Path | Purpose |
|
||||||
@@ -63,10 +64,10 @@ Blender/ Siim's .blend working files (Godot-ignored)
|
|||||||
| `ui/mobile_hud.gd` | Mobile-only health readouts (`CanvasLayer`, instanced by `ui/hud.gd` only on touch): big bull pip row top-left + a Souls-style bear boss bar top-centre (discovered via group `&"bear"`, tracks `health_changed`). The desktop bottom pip cluster is hidden on touch |
|
| `ui/mobile_hud.gd` | Mobile-only health readouts (`CanvasLayer`, instanced by `ui/hud.gd` only on touch): big bull pip row top-left + a Souls-style bear boss bar top-centre (discovered via group `&"bear"`, tracks `health_changed`). The desktop bottom pip cluster is hidden on touch |
|
||||||
| `ui/orientation_guard.gd` | Autoload `OrientationGuard` — full-screen "rotate your device" prompt shown on touch devices while portrait |
|
| `ui/orientation_guard.gd` | Autoload `OrientationGuard` — full-screen "rotate your device" prompt shown on touch devices while portrait |
|
||||||
| `art/` | All raw art, grouped by role (`characters/ levels/ weapons/ fx/ anim/ textures/ ui/ icons/ fonts/`). GLBs use **Extract Textures** import, so their embedded textures land beside them (e.g. `art/levels/arena_*.png`) named from the GLB — expected, keep them tracked |
|
| `art/` | All raw art, grouped by role (`characters/ levels/ weapons/ fx/ anim/ textures/ ui/ icons/ fonts/`). GLBs use **Extract Textures** import, so their embedded textures land beside them (e.g. `art/levels/arena_*.png`) named from the GLB — expected, keep them tracked |
|
||||||
| `Blender/` | Blender source files, animation scripts, FBX exports |
|
| `art/blender/` | Blender source files, animation scripts, FBX exports (Godot-ignored via `.gdignore`) |
|
||||||
| `Blender/create_matador_anims.py` | Creates walk + idle animations and exports FBX |
|
| `art/blender/create_matador_anims.py` | Creates walk + idle animations and exports FBX |
|
||||||
| `Blender/render_anim_preview.py` | Renders animation preview PNGs for visual verification |
|
| `art/blender/render_anim_preview.py` | Renders animation preview PNGs for visual verification |
|
||||||
| `Blender/preview/` | Output directory for animation preview images |
|
| `art/blender/preview/` | Output directory for animation preview images |
|
||||||
| `tests/` | Headless test scripts (screenshot capture, logic validation) |
|
| `tests/` | Headless test scripts (screenshot capture, logic validation) |
|
||||||
| `addons/rider-plugin/` | JetBrains Rider IDE integration |
|
| `addons/rider-plugin/` | JetBrains Rider IDE integration |
|
||||||
|
|
||||||
@@ -100,7 +101,7 @@ Blender/ Siim's .blend working files (Godot-ignored)
|
|||||||
|
|
||||||
## Animation & bone conventions
|
## Animation & bone conventions
|
||||||
|
|
||||||
### Blender rig (matador_v02)
|
### Blender rig (matador_v03)
|
||||||
- **Armature bones:** `matador` (root) → `COG` → `chest` → `head`, `collarbone_L/R` → `arm_L/R` → `forearm_L/R` → `hand_L/R`, `leg_L/R` → `shin_L/R` → `foot_L/R`
|
- **Armature bones:** `matador` (root) → `COG` → `chest` → `head`, `collarbone_L/R` → `arm_L/R` → `forearm_L/R` → `hand_L/R`, `leg_L/R` → `shin_L/R` → `foot_L/R`
|
||||||
- **Rotation mode:** All animated bones use **XYZ Euler** (set in `create_matador_anims.py`)
|
- **Rotation mode:** All animated bones use **XYZ Euler** (set in `create_matador_anims.py`)
|
||||||
- **Bone-local axes:** Swing (forward/back) is on **local X**. Arm lowering from T-pose is on **local Y** (positive = left arm down, negative = right arm down). Knee bend is **positive X** (shins only bend backward).
|
- **Bone-local axes:** Swing (forward/back) is on **local X**. Arm lowering from T-pose is on **local Y** (positive = left arm down, negative = right arm down). Knee bend is **positive X** (shins only bend backward).
|
||||||
@@ -118,8 +119,8 @@ After FBX import, animations appear as `Armature|walk` and `Armature|idle` in An
|
|||||||
|
|
||||||
### Verification workflow
|
### Verification workflow
|
||||||
1. Edit bones/animations in Blender (`create_matador_anims.py`)
|
1. Edit bones/animations in Blender (`create_matador_anims.py`)
|
||||||
2. Run render preview: `blender --background Blender/matador_v02.blend --python Blender/render_anim_preview.py`
|
2. Run render preview: `blender --background art/blender/matador_v03.blend --python art/blender/render_anim_preview.py`
|
||||||
3. Inspect PNGs in `Blender/preview/` — check bone orientations **before** exporting to Godot
|
3. Inspect PNGs in `art/blender/preview/` — check bone orientations **before** exporting to Godot
|
||||||
4. Export FBX (done automatically by `create_matador_anims.py`)
|
4. Export FBX (done automatically by `create_matador_anims.py`)
|
||||||
5. Re-import in Godot and test in-game
|
5. Re-import in Godot and test in-game
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
"""
|
"""
|
||||||
Blender 5.1 script: render preview frames of matador animations to PNG.
|
Blender 5.1 script: render preview frames of matador animations to PNG.
|
||||||
Run: blender --background matador_v02.blend --python render_anim_preview.py
|
Run: blender --background matador_v03.blend --python render_anim_preview.py
|
||||||
|
|
||||||
Outputs to Blender/preview/ directory:
|
Outputs to art/blender/preview/ directory:
|
||||||
walk_frame_00.png .. walk_frame_09.png
|
walk_frame_00.png .. walk_frame_09.png
|
||||||
idle_frame_00.png
|
idle_frame_00.png
|
||||||
|
|
||||||
Reference in New Issue
Block a user