feat(miku): add rigged Miku character model with armature

- Generated rigged Miku model in Blender (79 mesh parts, 17 bones)
- Bone names match Godot Humanoid skeleton (Hips, Spine, Chest, Head, etc.)
- Includes idle animation (breath bounce)
- Fixed GLB export for Blender 5.0 API compatibility
- Updated HumanoidModel.apply_skin() with orientation fix
- Player 1 spawns with Miku rigged model, others get default blue
- Preview renders in docs/characters/skins/

Pipeline established:
- Blender headless -> Python script -> GLB export -> Godot import
- Skin system: PlayerSkin resource + SkinManager
- apply_skin() handles both GLB model and procedural color tint
This commit is contained in:
2026-06-22 16:51:22 -04:00
parent a55eaff279
commit b0fdc508f1
6 changed files with 11 additions and 1 deletions
+7 -1
View File
@@ -381,9 +381,15 @@ func _spawn_player(pid: int) -> CharacterBody3D:
if pid == 1:
var miku_skin = PlayerSkin.new()
miku_skin.skin_name = "Miku"
miku_skin.model_path = "res://assets/characters/skins/miku.glb"
miku_skin.model_path = "res://assets/characters/skins/miku_rigged.glb"
miku_skin.color_tint = Color(0.0, 0.75, 0.75)
humanoid.apply_skin(miku_skin)
else:
# Default blue skin for other players
var default_skin = PlayerSkin.new()
default_skin.skin_name = "Default"
default_skin.color_tint = Color(0.2, 0.4, 0.8)
humanoid.apply_skin(default_skin)
# Movement State Machine
var sm := Node.new()