# Voice-Over Recording Script Export

This document defines the voice-over recording script export for
`TODOS.phase-72.72.11.2.7`. The export turns localized dialogue data into
actor-facing script packets with the line text, scene context, performance
direction, slate IDs, subtitle timing IDs, and deterministic target VO asset
names needed for recording sessions.

The tracked contract is
`V2/ue/Content/Localization/V2/VoiceOverRecordingScriptExport_V2_Contract.json`.
The deterministic script export lives at
`V2/ue/Content/Localization/V2/VoiceOver/RecordingScripts/VoiceOverRecordingScriptExport_V2.json`,
and the generated summary report lives at
`V2/ue/Content/Localization/V2/VoiceOver/RecordingScripts/VoiceOverRecordingScriptExportReport_V2.json`.

## Source Data

`V2/ue/Tools/generate-v2-voice-over-recording-script-export.py` reads the Asha
Storm market-intro dialogue tree, the localized dialogue rows, and the
voice-over asset manifest. It exports one packet per localized VO locale present
in the dialogue localization file and preserves every voiced dialogue line ID in
tree order.

The current fixture exports six Asha story-dialogue lines for `en-US` and six
matching lines for `es-ES`. Each exported row includes source text, localized
recording text, the localized voice cue, subtitle timing ID, take count, WAV
asset filename, and metadata sidecar filename.

## Context And Direction

Every exported recording row carries context derived from the dialogue tree:
dialogue title, node ID, incoming edge, outgoing edge, and authored tags. The
direction field is selected from the authored tags so the actor sees the
performance intent for greetings, route guidance, repeated lines, ambient day
and evening lines, and farewells.

Asset names follow the voice-over asset-management convention:
`VO_{localeToken}_story_dialogue_{speakerId}_{slateId}_T01.wav`. Metadata
sidecars use the same stem with `.voasset.json`.

## Validation

`V2/ue/Tools/check-v2-voice-over-recording-script-export.py` validates the
contract, generated script export, generated report, deterministic output,
actor-facing context, actor-facing direction, asset naming, documentation,
GitHub workflow wiring, Horde required gates, and the phase-72 checklist. The
checker also runs a negative case that removes a localized voice cue and expects
the generator to fail with a reported recording-script violation.
