Files
novafarma/docs/technical/QUEST_VOICE_INTEGRATION.md
David Kotnik d5c7c3ee67 CHAR ANIMATIONS COMPLETE - 52 frames generated
Session: 11hr marathon (Jan 8, 2026)
Assets: 52 animation frames total
Progress: 36% to 54%

Kai: 20 frames (idle 4, walk 6, dig 5, swing 5)
Ana: 10 frames (idle 4, walk 6)
Gronk: 10 frames (idle 4, walk 6)
Susi: 12 frames (idle 4, run 6, bark 2)

Demo Status: 157/292 assets (54%)
Remaining: 135 assets

Files updated:
- TASK_TRACKER.md
- PRODUCTION_CHECKLIST.md
- 64 new PNG assets
- Susi reference updated
2026-01-08 04:03:10 +01:00

4.7 KiB
Raw Blame History

🔊 Quest Voice Integration Guide

Last Updated: Jan 8, 2026 02:30 CET
Status: FULLY INTEGRATED


🎯 FEATURES

Quest System now automatically plays voiceovers for:

  • Quest start dialogue
  • Quest progress updates
  • Quest completion dialogue
  • NPC-specific voices (future)
  • Emotional reactions (future)

🔊 HOW IT WORKS

Automatic Integration:

When a quest is started, updated, or completed, QuestSystem automatically:

  1. Shows text dialogue (on screen)
  2. Plays voiceover (TTS audio)
  3. Syncs subtitles (with audio)

No extra code needed! Just define dialogue in quest data!


📜 QUEST DIALOGUE FORMAT

{
    id: 'q001_kje_sem',
    dialogue: {
        start: ["...au glava... kje sm?"],      // Plays on quest start
        progress: ["Še {remaining} da konč!"],  // Plays on progress update
        complete: ["Včeri sm bla tam!"],        // Plays on completion
        onVoice: ["Ana's voice..."]             // Special events (optional)
    }
}

🎙️ VOICE GENERATION

Generate All Quest Voiceovers:

python scripts/generate_quest_voiceovers.py

Output:

  • assets/audio/quests/q001_kje_sem_start.mp3
  • assets/audio/quests/q001_kje_sem_complete.mp3
  • assets/audio/quests/q002_prvi_koraki_start.mp3
  • etc...

Voice Settings:

  • Language: Slovenian (sl-SI)
  • Voice: Petra (Female, Natural)
  • Format: MP3
  • Quality: High

🔧 TECHNICAL INTEGRATION

QuestSystem Integration:

// Quest start
if (quest.dialogue && quest.dialogue.start) {
    this.showDialogue(quest.dialogue.start, quest.npc);
    
    // 🔊 VOICEOVER: Play quest start dialogue
    if (this.scene.voiceoverSystem) {
        const voiceKey = `quest_${questId}_start`;
        this.scene.voiceoverSystem.playVoiceover(voiceKey, quest.dialogue.start[0]);
    }
}

VoiceoverSystem Methods:

  • playVoiceover(key, text) - Play TTS audio
  • stopVoiceover() - Stop current playback
  • isVoiceoverPlaying() - Check if audio is playing

📊 QUEST VOICEOVERS

Main Story (3 quests):

  • Q001: Kje Sem? (2 voiceovers)
  • Q002: Prvi Koraki (3 voiceovers)
  • Q003: Glas v Glavi (3 voiceovers + Ana's voice)

Collection (3 quests):

  • Q010: 80 Crops Challenge (3 voiceovers)
  • Q011: Tree Planter (2 voiceovers)
  • Q020: Creature Catalog (3 voiceovers)

Social (1 quest):

  • Q080: 166 Friends (3 voiceovers)

Building (1 quest):

  • Q040: Gothic Empire (2 voiceovers)

Biome/Boss (3 quests):

  • Q050: Underwater Secrets (2 voiceovers)
  • Q060: Baba Yaga (3 voiceovers)
  • Q070: Jurassic Farm (2 voiceovers)

Total: ~25-30 voiceover files


🎮 IN-GAME EXPERIENCE

Player starts Q001:

  1. Text appears: "...au glava... kje sm?"
  2. Kai's voice plays: "...au glava... kje sm?"
  3. Subtitle syncs with audio
  4. Player hears + reads simultaneously

Quest complete:

  1. Text: "Včeri sm bla tam, zdej pa tuki!"
  2. Voice: excited tone "MORŠ NEC NAJT!"
  3. VFX: Clarity effect
  4. Feels EPIC! 🎉

💡 ADHD-FRIENDLY DESIGN

Why voiceovers matter:

  • Audio + Visual = Better retention
  • Emotional delivery = Stronger connection
  • Accessibility = Dyslexia support
  • Immersion = Kai feels ALIVE!

Slovenian dialogue:

  • Feels personal/authentic
  • ADHD-friendly (short, punchy)
  • Emotional reactions (DAAAAJ! OH SHIT!)
  • Player connects with Kai

🔮 FUTURE ENHANCEMENTS

Planned:

  • NPC-specific voices (166 NPCs × 3 lines each)
  • Multiple voice actors (Kai, Ana, Gronk, NPCs)
  • Emotional variations (happy, sad, angry, scared)
  • Dynamic pitch/speed based on context
  • Voice modulation in water (underwater effect)
  • Echo/reverb in caves
  • Walkie-talkie effect for radio dialogue

📁 FILE STRUCTURE

assets/audio/quests/
├── q001_kje_sem_start.mp3
├── q001_kje_sem_complete.mp3
├── q002_prvi_koraki_start.mp3
├── q002_prvi_koraki_progress.mp3
├── q002_prvi_koraki_complete.mp3
├── q003_glas_v_glavi_start.mp3
├── q003_glas_v_glavi_onVoice.mp3  (Ana's voice!)
├── q003_glas_v_glavi_complete.mp3
└── ...

🚀 QUICK START

  1. Define quest dialogue (already done in QuestDataLoader)
  2. Generate voiceovers: python scripts/generate_quest_voiceovers.py
  3. Play game - Voiceovers work automatically!

That's it! No extra integration needed!


🎯 STATUS

  • QuestSystem integration complete
  • VoiceoverSystem exists
  • Generation script created
  • Generate actual audio files
  • Test in-game
  • Add NPC-specific voices

Quest Voice Integration - Jan 8, 2026
🔊💬🎮