feat(skin): add skin system + Miku character skin
Skin System: - PlayerSkin resource class (model_path, color_tint, etc.) - SkinManager with default skins: Default, Red Team, Forest, Miku - HumanoidModel.apply_skin() supports both GLB model replacement and procedural color tinting - Procedural meshes auto-hide when GLB model is loaded Miku Skin: - 43-part procedural model generated in Blender (headless) - Twin tails, headphones, thigh-high socks, idol outfit - Teal/cyan color scheme with red accents - Exported to assets/characters/skins/miku.glb - Applied to player 1 in test level builder Pipeline: - Blender 5.0.1 + MCP addon installed - Bridge script for socket-based Blender control - docs/3D_ASSET_PIPELINE.md documents full workflow
This commit is contained in:
@@ -377,6 +377,14 @@ func _spawn_player(pid: int) -> CharacterBody3D:
|
||||
humanoid.position = Vector3(0, -0.9, 0)
|
||||
player.add_child(humanoid)
|
||||
|
||||
# Apply skin (Miku for player 1, default for others)
|
||||
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.color_tint = Color(0.0, 0.75, 0.75)
|
||||
humanoid.apply_skin(miku_skin)
|
||||
|
||||
# Movement State Machine
|
||||
var sm := Node.new()
|
||||
sm.name = "MovementStateMachine"
|
||||
|
||||
Reference in New Issue
Block a user