2.2 KiB
2.2 KiB
BG1EE Voiceover Project Context (v0.3)
1. Project Overview
Project Name: bg1-ee-voiceover
Goal: Create a robust dual-language (German/English) data foundation and game integration hook for Baldur's Gate: Enhanced Edition.
Current Scope (v0.3):
- Focus: Data Extraction, Parsing, and Logging Hook.
- Excluded: Active TTS generation and HTTP API (deferred to later phases).
- Objective: Establish a clean, bilingual
dialogs.jsondatabase and a workingInfinity_Logtrigger from within the game.
2. Architecture (v0.3)
The system is reduced to three core components:
- Extraction (Near Infinity):
- Source:
dialog.tlk(DE & EN),*.dlg,*.2da. - Output: JSON files in
data/raw/.
- Source:
- Parser (Python):
- Input: Raw JSONs (
tlkanddlg). - Logic: Match IDs across languages, link dialog nodes, map speakers.
- Output:
data/processed/dialogs.json.
- Input: Raw JSONs (
- Lua Hook (Mod):
- Location:
lua-hook/bg1ee_tts_hook/. - Events:
OnDialogStart,OnDialogNodeChange. - Action: Write ID to
Infinity_Log.
- Location:
3. Technology Stack
- Extraction: Near Infinity (Java Tool).
- Processing: Python 3.10+ (Standard Library +
json). - Game Modding: Lua (embedded in BG1EE).
4. Immediate Roadmap (Phases)
- Phase 1: Extract (NOW):
- Export
dialog.tlk(DE) ->data/raw/tlk/dialog_de.json. - Export
dialog.tlk(EN) ->data/raw/tlk/dialog_en.json. - Export all
*.dlg->data/raw/dlg/*.json. - (Optional) Export
npc.2da->data/mappings/npc_map.json.
- Export
- Phase 2: Parser (NEXT):
- Implement Python parser to merge these inputs into
dialogs.json.
- Implement Python parser to merge these inputs into
- Phase 3: Hook (PARALLEL):
- Create
dialog.luato log dialog events.
- Create
- Phase 4: Offline Rendering Prep (OPTIONAL):
- Define WAV naming convention and folder structure.
5. Directory Structure
docs/: detailed specs (Architecture, Extraction, Project Plan).data/:raw/: Raw exports.processed/: Finaldialogs.json.
scripts/: Python ETL scripts.lua-hook/: The game modification files.