55 lines
2.2 KiB
Markdown
55 lines
2.2 KiB
Markdown
# 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.json` database and a working `Infinity_Log` trigger from within the game.
|
|
|
|
## 2. Architecture (v0.3)
|
|
|
|
The system is reduced to three core components:
|
|
|
|
1. **Extraction (Near Infinity):**
|
|
* **Source:** `dialog.tlk` (DE & EN), `*.dlg`, `*.2da`.
|
|
* **Output:** JSON files in `data/raw/`.
|
|
2. **Parser (Python):**
|
|
* **Input:** Raw JSONs (`tlk` and `dlg`).
|
|
* **Logic:** Match IDs across languages, link dialog nodes, map speakers.
|
|
* **Output:** `data/processed/dialogs.json`.
|
|
3. **Lua Hook (Mod):**
|
|
* **Location:** `lua-hook/bg1ee_tts_hook/`.
|
|
* **Events:** `OnDialogStart`, `OnDialogNodeChange`.
|
|
* **Action:** Write ID to `Infinity_Log`.
|
|
|
|
## 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`.
|
|
* **Phase 2: Parser (NEXT):**
|
|
* Implement Python parser to merge these inputs into `dialogs.json`.
|
|
* **Phase 3: Hook (PARALLEL):**
|
|
* Create `dialog.lua` to log dialog events.
|
|
* **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/`: Final `dialogs.json`.
|
|
* `scripts/`: Python ETL scripts.
|
|
* `lua-hook/`: The game modification files. |