DIALOGUE
Nodos para gestionar sistemas de diálogo y subtítulos en Range Game Engine. El sistema usa globalDict como señal y guarda el estado del diálogo en el objeto que tiene el componente DialoguePlayer.
Nodos
| Nodo | Tipo | Descripción |
|---|---|---|
| Start Dialogue | Acción | Inicia una secuencia de diálogo por ID |
| Advance Dialogue | Acción | Avanza manualmente a la siguiente línea |
| Stop Dialogue | Acción | Detiene el diálogo forzosamente |
| Dialogue Player | Acción (rama) | Reproductor principal — detecta cambios de línea |
| On Dialogue End | Acción (rama) | Se dispara un frame cuando el diálogo termina |
| Dialogue Text | Dato | Texto de la línea actual |
| Dialogue Speaker | Dato | Nombre del hablante de la línea actual |
| Dialogue Index | Dato | Índice (0-based) de la línea actual |
| Is Dialogue Active | Dato | True si el diálogo está en reproducción |
| Show Subtitle | Acción | Muestra texto temporal (subtítulo con duración) |
| Get Subtitle | Dato | Devuelve el texto del subtítulo si aún no expiró |
Arquitectura del sistema
Trigger → [Start Dialogue: ID="intro"]
↓ (globalDict: _dlg_start_intro = True)
[On Update] → [Dialogue Player: ID="intro", Advance=Spacebar]
└── Line Changed ──► [Set Text: Object=text_box, Text={Dialogue Text: ID="intro"}]
──► [Set Text: Object=speaker_label, Text={Dialogue Speaker: ID="intro"}]
└── Idle ──► [...]
[On Update] → [On Dialogue End: ID="intro"]
└── On End ──► [Overlay Scene: Scene=DialogueHUD, Mode=Remove]
└── Otherwise ──► [...]
Notas
Dialogue Playerdebe estar en un objeto conOn Update— es el único que ejecuta la lógica de avance.- Los nodos de datos (
Dialogue Text,Dialogue Speaker, etc.) deben estar en el mismo objeto queDialogue Player. - Para diálogos de más de 8 líneas, encadena dos
DialoguePlayerusandoOn Dialogue End→Start Dialogue.