-
Notifications
You must be signed in to change notification settings - Fork 51
Voice acting system
This feature allows to play specific sounds when dialog windows show up.
In order to create a voice acting mod, one must do the followings:
- Export the dialogs. This can be done with Hades Workshop (batch export texts) or by launching the game with the Memoria.ini option
[Export] Enabled=1 Text=1
. - For each line of dialog, export the voice acting as an OGG file.
- Tidy OGG files in subfolders according to the following scheme:
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/[LANG]/[ZONEID]/VA_[MESSAGEID].ogg
,- where
[LANG]
is the language code among US, UK, JP, GR, FR, IT, ES, - where
[ZONEID]
is the number related to the dialog zone (in HW exported dialogs, it can be read in lines#HW fileid
; in Memoria exported dialogs, it can be read as the first number after$
in each dialog), - and where
[MESSAGEID]
is the number identifying the message (in HW, it's the line#HW newtext
minus 1; in Memoria, it's the last number before the=
sign). -
Example (Memoria):
"$0290_EVT_TERA_BB_CDR_0_0353" = "{W213H1}{UpperRightForce}You’re a bigger fool than I imagined{Speed 2}...{Speed -1}";
- => Have the voice file
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/US/290/VA_353.ogg
saying "You’re a bigger fool than I imagined" (Beatrix).
- where
- For dialogs with multiple choices (they have a
{Choice}
code in Memoria-exported files and a[CHOO]
code in the HW versions), have a voice OGG for each choice with a_[CHOICENUM]
appended to the dialog's file name.-
Example:
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/US/290/VA_373.ogg
=> "Cards!? Right now?" -
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/US/290/VA_373_0.ogg
=> "Yes" -
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/US/290/VA_373_1.ogg
=> "No"
-
Example:
- Move this
VoiceMod
folder in the main directory of Final Fantasy IX and register it inMemoria.ini
([Mod] FolderNames = "VoiceMod", ...
). - Create another file
Memoria.ini
in the folderVoiceMod
and add the lines:
[Hacks] Enabled=1 DisableNameChoice=1
When voice files are played in-game, Memoria generates .akb.bytes
files next to them (in the subfolder of the mod folder), containing the Final Fantasy IX formatted AKB header. When sharing the mod, share the mod folder with only the .akb.bytes
files for optimizing the hard drive space use and loading time (although I didn't see any noticeable frame drop because of isolated sound loads and conversions).
They work exactly the same as above using the special ZONEID = 68
.
Example: VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/US/68/VA_52.ogg
=> "I’m sharpening my knife, kupo."
Following the same pathing structure as above except that battles do not operate within a zone so we replace the zone with battle/[BATTLEID]
, i.e.
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/[LANG]/battle/[BATTLEID]/VA_[MESSAGEINDEX].ogg
The message index is the position of the text in that battle's texts, taking the enemy names and attack names into account.
Example: the first fight against Beatrix has ID 4. That battle's texts are the followings:
- Beatrix
- Attack
- continuing other attack names...
- You’re no match for me!
- Ignorant fools.
- Stock Break
- Annihilated...
- Back attack!
- Gained more Attack Pwr!
VoiceMod/StreamingAssets/Assets/Resources/Sounds/Voices/US/battle/4/VA_10.ogg
=> "You’re no match for me!"
for the best compatibility, the software and unity engine are expecting the audio files for voice acting to be OGGs setup with 441000Hz, Single Channel (Mono), and using 32-bit float.
If your having problems with a line and are unable to work out the correct location you can enable VA Support Debugging to do this add the following to your memoria.ini
[Audio] LogVoiceActing = 1
With this enabled your Memoria.log file will start getting entires output all the information you need to create your .ogg file E.G
[VoiceActing] field:2, msg:35, text:[C8C8C8]Guess nobody’s here yet..., path:Voices/US/2/va_35
should the File then be missing this will be followed by a Missing Asset notification from the Asset Manager E.G [AssetManager] Asset not found: Voices/US/2/va_35
A big thanks to barkermn01 for coding this system.