Files
bg1-ee-voiceover/GEMINI.md
2025-12-07 19:47:40 +01:00

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.