Commit Graph
228 Commits
Author SHA1 Message Date
Hermes c033247f75 fix: rename param to 'on' to avoid shadowing Node3D.show()/is_visible() 2026-06-22 21:56:21 -04:00
Hermes 00141f80cb fix: set position before adding grenade to tree, remove duplicate add_child 2026-06-22 21:52:48 -04:00
Hermes 3e849551bd fix: rename 'name' param to 'anim_name' to avoid shadowing Node.name 2026-06-22 21:42:38 -04:00
Hermes 1372db9d0e fix: prefix unused 'impulse' param with underscore in walking_dummy 2026-06-22 21:40:56 -04:00
Hermes cd1722ce74 fix: rename 'is_visible' param to 'show' to avoid shadowing Node3D.is_visible() 2026-06-22 21:06:35 -04:00
Hermes c8fcefe7ab fix: can't use look_at() before node is in tree, use rotation_degrees instead 2026-06-22 20:36:13 -04:00
Hermes ade3d54d20 fix: rename shadowed 'visible' param, prefix unused 'impulse' with underscore 2026-06-22 20:34:02 -04:00
Hermes a1f48d9ef0 fix: string repeat() instead of * operator in GDScript 2026-06-22 20:27:26 -04:00
Hermes b1aec93fd5 fix: animation debug + F1 third-person camera
SkinnedPlayerModel:
- Added _print_tree debug to see GLB scene structure at runtime
- Auto-play Idle animation on load
- Added periodic debug output for animation state
- Only change animation when target differs from current

Third-person camera:
- F1 toggles between FPS and third-person view
- Third-person camera positioned behind/above player
- Smooth follow with lerp
- Camera tracks player position each frame
2026-06-22 19:55:54 -04:00
Hermes e84a9d641a fix: textured Miku model + ragdoll color
- Re-exported Miku with properly mapped textures (9.8MB GLB)
- Texture files saved alongside GLB for Godot import
- Fixed Blender 5.0 API: 'Base Color' (not 'BaseColor'), major_segments (not segments)
- Ragdoll now uses Miku teal color (0.0, 0.75, 0.75)
- Player 1 uses SkinnedPlayerModel (no procedural generation)
- Other players still use procedural HumanoidModel
2026-06-22 19:46:22 -04:00
Hermes e1d2d140cb fix: calculate speed from player velocity instead of non-existent property 2026-06-22 19:10:53 -04:00
Hermes 92713a681a fix(miku): correct scale + animation playback
- Fixed Blender export: remove FBX armature modifier before scaling,
  then transform_apply(scale=True) before creating new armature
- Model now exports at correct 1.8 unit height (verified in Blender)
- SkinnedPlayerModel now polls MovementStateMachine in _process
  to drive animations based on movement state
- Player 1 gets Miku at origin, others get procedural humanoid at y=-0.9
2026-06-22 18:15:03 -04:00
Hermes ae8231d31d feat(miku): proper rigged model from Sketchfab + Blender
Pipeline:
1. Downloaded TDA-style Miku model from Sketchfab (19MB FBX, 38K verts)
2. Imported to Blender, scaled to Godot humanoid proportions (1.8u tall)
3. Created clean 17-bone humanoid armature (Hips/Spine/Chest/Head/Arms/Legs)
4. Auto-weight-painted mesh to armature
5. Added Idle (breath bounce) and Run (cycle) animations
6. Exported as GLB with embedded animations (3MB)

New:
- SkinnedPlayerModel class: loads GLB with own armature+animations
- Player 1 spawns with Miku model, others get procedural humanoid
- Completely separate from procedural model system

Files:
- assets/characters/skins/miku_rigged_final.glb (3MB, 48K verts, 17 bones, 2 anims)
- characters/skinned_player_model.gd
- Removed old procedural GLB attempts
2026-06-22 17:12:24 -04:00
Hermes b0fdc508f1 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
2026-06-22 16:51:22 -04:00
Hermes a55eaff279 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
2026-06-22 13:53:17 -04:00
Hermes 671b36c20c fix(map): complete rewrite of arena layout
Problems fixed:
- Player spawn moved from inside central platform to open area (z=20)
- Removed broken internal stairs inside tower (disconnected ramps)
- Removed corner towers, walkways, stepping stones, wall-run corridor,
  wall-climb surfaces, grapple anchors — all were overlapping or unreachable
- Reduced arena from 96x96 to 80x80 for tighter gameplay
- Crates properly spaced (1.5u apart), no overlaps or intersections
- Reduced from 6 spawns to 4 (corners only), each with 2 L-shaped cover
  walls and clear exit routes — no more 3-wall traps
- Spawn alcoves use 2 walls max with open diagonal exits
- Dummies placed in open areas away from geometry:
  TargetDummy at (0,-25), KillableDummy at (25,0),
  WalkingDummy patrols z=-30 from x=-20 to 20
- Central platform simplified: 16x16 base (2u) + 8x8 upper (4u)
- 4 cardinal ramps properly connect ground to platform edge
- Cover walls placed in open lanes, not blocking movement
- Barrels placed along outer walls, not in pathways
2026-06-21 22:41:40 -04:00
Hermes 3584a7e6c5 feat(props): integrate Blender GLB props into movement map
- Replace primitive _crate(), _barrel(), _pillar() with GLB scene instances
- Add 7 prop preloads: crate, barrel, pillar, ramp, weapon_pickup, health_pack, ammo_pack
- Add _load_props() and _place_prop() helpers with null guards
- Add pickup placements: weapon (center), health (east/west), ammo (center/NW/SE)
- Props load at runtime via load() - appear once Godot editor imports the GLB files
- Null guard prevents crashes in headless mode before import
2026-06-21 22:28:41 -04:00
Hermes 718a1477bf feat(assets): add 3D prop meshes generated via Blender headless
Props generated with Blender 5.0.1 headless + glTF export:
- crate.glb (wooden crate)
- barrel.glb (metal barrel)
- weapon_pickup.glb (glowing platform)
- health_pack.glb (cross-shaped pickup)
- ammo_pack.glb (ammo box)
- pillar.glb (structural pillar)
- ramp.glb (ramp mesh)

Also includes Blender MCP bridge setup in blender-mcp/ for
future AI-assisted 3D modeling.
2026-06-21 01:55:39 -04:00
Hermes 462d12bee5 fix: Godot 4.2.1 compat and map builder fixes
- Fix tab character in _build_elevated_walkways() call (line 63)
- Fix untyped 'pos' variable in grapple pillar loop (line 376)
- Remove fog_sky_affinity (Godot 4.3+ only property)
- Replace preload() with load() for runtime script loading
- Replace 'is DoubleBarrelShotgun' type check with duck-typing
- Fix 'is not OfflineMultiplayerPeer' syntax in grenade spawn
- Replace absf() with abs() in state_machine, state_air, state_ground
- Update test_level.tscn to remove stale UID reference

All fixes verified: PARSE OK and scene runs without script errors
on Godot 4.2.1 headless.
2026-06-21 01:24:42 -04:00
Hermes f164afecd8 feat(map): high-quality multiplayer movement map
96x96 arena with multi-level layout, grapple points, wall-run/climb
surfaces, 6 team spawns with anti-camping cover, and varied movement
challenges.

Map Features:
- Central multi-level structure: 20x20 platform (3u), 10x10 tower (6u),
  14x14 top platform (9u) with crown cover walls and internal stairs
- 4 corner towers (5u high) with railings and top platforms
- 4 elevated mid-side walkways (3u) with railings connecting center to edges
- 8 ramps: cardinal to central, diagonal to corners, to walkways
- Quarter-pipe curve (8 segments) near NE corner
- 4 parkour stepping stone chains (NW, NE, SW, SE quadrants)
- Wall-run corridor (N side) with parallel walls, obstacles, and floor gap
- Wall-run surfaces on all 4 outer wall sections
- Wall-climb surfaces around central tower and mid-map (warm color)
- 4 grapple anchor pillars (15u tall) with visible tops at cardinal points
- Cover system: low walls, crate clusters, corridor walls, structural pillars
- Speed corridor with side rails, speed bumps, and floor markings
- 6 spawn alcoves (3 red: NW/SW/West, 3 blue: NE/SE/East) with cover walls
- Anti-spawn-camping: each alcove has 2+ exits and blocking walls
- Floor accent tiles in central area
- Atmospheric sky with procedural sky material and fog
- Directional sun + fill light + center omni + 6 spawn accent lights
- Decorative: barrels, hazard stripes, accent beams, spawn area lights
- Full multiplayer spawning, weapon system, HUD, entities preserved
- All movement states: ground, air, wall_run, wall_climb, wall_cling,
  slide, dash, grapple

Parse verified clean with Godot 4.2.1 headless.
2026-06-21 01:03:34 -04:00
Dotts 3bdf8f413b Merge pull request 'Feat/12 add effects and better animations to fpv' (#17) from feat/12-add-effects-and-better-animations-to-fpv into main
Reviewed-on: #17
2026-06-11 19:35:33 -07:00
DottsGit 3c512870f2 feat: implement movement state machine ground/air states and initialize weapon manager system 2026-06-10 22:37:17 -04:00
DottsGit 3dc7fda622 feat: implement modular movement state machine and ground, air, and wall climb states 2026-06-10 22:27:10 -04:00
DottsGit 18ab9da4a3 feat: implement MovementStateMachine to manage modular player movement states and mechanics 2026-06-10 22:21:41 -04:00
DottsGit da4a6442c7 feat: implement player movement controller with grounded state, stair stepping, and wall interaction mechanics 2026-06-10 22:11:00 -04:00
DottsGit def2925a43 feat: implement pause menu with loadout, settings, and input rebinding support 2026-06-10 21:58:44 -04:00
DottsGit 4cb27f991e feat: add PlayerMovementController for character locomotion, state machine integration, and multiplayer synchronization 2026-06-10 21:12:44 -04:00
DottsGit 5e4507ab24 feat: implement pause menu system with loadout and settings configuration management 2026-06-10 21:08:01 -04:00
DottsGit 887d9c1523 feat: implement PlayerMovementController and grenade projectile system 2026-06-09 23:04:32 -04:00
DottsGit e8e5391d9f feat: implement MovementStateMachine for handling player movement states and mechanics 2026-06-09 22:53:24 -04:00
DottsGit 86abae27dd feat: implement weapon manager with viewmodel viewport, procedural arms, and loadout synchronization 2026-06-09 22:47:27 -04:00
DottsGit cff83b6356 feat: implement WeaponManager with viewport-based viewmodel rendering and procedural animation support 2026-06-09 22:44:56 -04:00
DottsGit 3e6eb40add feat: implement base weapon system classes for hitscan and projectile mechanics 2026-06-09 22:40:52 -04:00
DottsGit f63187e493 feat: implement foundational weapon systems, including hitscan and projectile base classes, reload mechanics, and player movement/camera integration. 2026-06-09 22:33:40 -04:00
DottsGit 5102b770c8 chore: reorder and consolidate window display settings in project configuration 2026-06-09 22:15:46 -04:00
Dotts 93eb98cd13 Merge pull request 'Feat/11 adding better fundamental weapon models and some textures' (#16) from feat/11-adding-better-fundamental-weapon-models-and-some-textures into main
Reviewed-on: #16
2026-06-09 19:14:24 -07:00
DottsGit ed973c3b3b feat: implement persistent settings manager, add character movement controller, and create FPS map blockout scene 2026-06-09 20:10:12 -04:00
DottsGit 0fcb5b43a4 feat: add fps_blockout test map with environmental lighting and collision geometry 2026-06-09 19:54:50 -04:00
DottsGit 9c653cac48 feat: implement procedural arena generation system and support infrastructure 2026-06-09 19:45:35 -04:00
DottsGit 8c61318a16 chore: remove orphaned UID file for inspect_models.gd 2026-06-07 21:12:40 -04:00
DottsGit 4bb867a6f2 feat: implement plasma gun and rocket swarm mechanics along with various 3D asset imports 2026-06-07 18:23:47 -04:00
Dotts c9f082ebba Merge pull request 'feat: implement movement state machine architecture and add various sound assets' (#15) from feat/11-adding-wall-climbing-and-valuting-fundamentals into main
Reviewed-on: #15
2026-06-07 13:13:37 -07:00
DottsGit 22ea918e6d feat: implement movement state machine architecture and add various sound assets 2026-06-07 16:13:01 -04:00
Dotts 064bc90f53 Merge pull request 'Feat/10 adding multiplayer fundamentals' (#14) from feat/10-adding-multiplayer-fundamentals into main
Reviewed-on: #14
2026-06-06 19:31:25 -07:00
DottsGit 1a989f3586 feat: implement player movement controller and movement state machine system 2026-06-06 21:16:48 -04:00
DottsGit 30dbf7a4cd feat: implement player movement controller and initial weapon framework including double barrel shotgun and explosive projectiles 2026-06-06 21:09:40 -04:00
DottsGit 54dfd342c2 feat: implement walking and killable enemy dummy entities and player movement controller base 2026-06-06 21:00:45 -04:00
DottsGit eb9344c0bb feat: implement PlayerMovementController with support for movement states, multiplayer synchronization, and audio/UI systems 2026-06-06 20:51:34 -04:00
DottsGit 07a15fe998 fix: a lot of network sync fixes 2026-06-06 20:45:10 -04:00
DottsGit dbbfbef4a4 fix: a lot of networking bugs 2026-06-06 19:26:22 -04:00