Files
zombie-fps/docs/DEATH-EFFECTS.md
T
enne2 956a15a525 Add industrial metal soundtrack with seamless loop
- assets/audio/music/zombie_industrial_loop.ogg: 57.60 s Ogg Vorbis loop
  generated locally with YuE2-3B on the Tesla V100 (score written for this
  track; vocals removed with HTDemucs). The loop is spliced at the track's
  structural repeat with a 0.6 s crossfade: measured seam dip <= 1.6 dB.
- scripts/main.gd: "Music" AudioStreamPlayer at -11 dB, started at boot on
  desktop and on the start click on Web (browser autoplay policy). It forces
  stream.loop at runtime because the Web staging step re-imports the OGG with
  loop=false.
- tools/test_music.gd: soundtrack test (loop, length, volume, playback,
  still playing after player death).
- docs/MUSIC.md: source, loop construction, verification, licence.
- docs/WEB-DEPLOY.md: release ab6054111f5919a8 notes.

Initial commit of the project.
2026-10-10 23:11:13 +02:00

22 lines
1.5 KiB
Markdown

# Death and blood effects
- Zombie idle/attack/death use AudioStreamPlayer3D with attenuation (unit_size 4m, max_distance 30m).
- No original `zo_death*.wav` is available. `zombie/zo_pain2.wav` is deliberately used for the death event; living hurt uses `zo_pain1.wav`.
- Player death uses the original Steam `valve/sound/player/pl_pain7.wav`, copied unchanged. This is a pain vocal assigned to death, not a dedicated death sample.
- Corpses remain until scene restart. Collision and AI stop, death animation retains its final pose. Window-entry tweens are cancelled on death.
- Blood: GPUParticles3D burst and original generated RGBA decal mask. Decals project downward onto static world layer 1. Characters/viewmodel are on visual layer 2. At most 160 stains retained; bodies have no automatic deletion.
- Player death is idempotent: gun hidden, shooting/mouse-look blocked, camera falls to 0.22m and rolls; black fade finishes after 2.5s. Restart label is above black overlay. R reloads scene.
## Verification
Use Godot 4.7.1:
```
godot --headless --path . --script res://tools/test_death_effects.gd
godot --path . --script res://tools/test_death_effects.gd
```
Tests assert corpse survival beyond old four-second lifetime, collision off, one decal, death only once, disabled shooting, camera at floor height and fade alpha 1. Graphical test writes `/tmp/zombie-blood.png`, `/tmp/zombie-corpse.png`, `/tmp/zombie-death-fade.png`.
Valve assets are local extracted copyrighted game data, not licensed for redistribution by this project.