Sparking Zero Audio Modding Guide
By Saitsu.
Requirements
- FModel.
- Sonic Audio Tools [GitHub].
- VGAudioCLI (the version on GitHub isn’t up to date so use the one linked here).
- The HCA Key Spreadsheet.
- UnrealReZen [GitHub].
- UnrealPak.
- Foobar 2000 with the VGMStream addon (not necessary but recommended and used in the guide).
- Any HeX Editor.
Obtain Your ACB and AWB
You need to extract the .uasset and .awb files for your corresponding audio, voice banks for characters match their ID, for example Goku – Z Early has an id of 0000_00, so his audio files are “BTLCV_0000_00_JP” and “BTLCV_0000_00_US” for their respective language.
To do this we’re going to use FModel, let’s start with the ACB. The ACB is found inside a .uasset file, using Goku above as the example, his voice ACB would be “BTLCV_0000_00_JP.uasset” and the .awb has it’s extension intact, so look for “BTLCV_0000_00_JP.awb”, you can use FModel’s search function to find both of these. Now you might be wondering “wait that’s an uasset not an ACB” and you’d be right! The ACB is actually inside the .uasset, to get it out you’re gonna use a hex editor.
- Open the .uasset in the hex editor of your liking, I personally prefer HxD, and look for the first instance of “@UTF” in the file.
- Once you have it, delete everything PRIOR to “@UTF” and save the file as an .acb
Extracting the Audio
- Now that you have your ACB, put it next to the AWB file.
- Then drag and drop the .acb inside of “ACB Editor” from Sonic Audio Tools.
This will create a folder with the same name as the audio bank, open that folder and you should see that it has all the audio extracted inside of it.
Finding the Audio You Want to Change
You can do this in many ways but my preferred method is to open the AWB in Foobar directly using the .hcakey, the file will lose the . at the start when downloaded, manually add it back in and place it in the same folder your AWB is in, once you’ve done that drag the AWB into Foobar and it will load all of the audio, the files will be placed in the same order as in the folder.
So in this example, 00000_streaming.hca corresponds to the first audio on the list and so forth.
As far as I can tell, you can ignore “00000.hca”, it doesn’t seem to have any audio in it, but just in case don’t delete it.
Importing Your New Audio
Now that you’ve found the audio you wanna replace, it’s time to encode!
Take the audio you want to import into the game, and run it through VGAudioCLI using this command:
VGAudioCLI.exe <input_audio.wav> <output_audio.hca> -–keycode <insert keycode matching the ACB you’re modifying>
Alternatively, you can batch convert an entire folder like this:
VGAudioCLI.exe -b -i <folder containing wav files> -o <output folder --keycode <hca key> --out-format hca
Get the matching keycode from the HCA key spreadsheet.
Once that’s done, replace the hca you want modified and then drag and drop the folder containing all the audio into Sonic Audio Tool’s ACB Editor, this will create a new AWB with your modified file as well as change the ACB
Reinjecting the ACB into the Uasset
Now that you have your brand new ACB, it’s time to inject it into the .uasset, to do this simply open the original .uasset and your new .acb in a hex editor.
- Once again find the first instance of “@UTF” in the .uasset file, then copy your ENTIRE ACB file and paste it in ONLY overwriting bytes, don’t change the file size.
- If your new ACB is smaller than the original and you have leftover bytes, feel free to zero them all out.
- Now just save to somewhere else so you don’t replace the original .uasset!
Repacking the Files
A) Repacking the ACB
Now it’s time to repack the files to put them into the game! For this we’ll be using both UnrealRezen and UnrealPak, let’s start with Rezen:
First, recreate the path to where the .uasset was originally in a new folder. As an example, here’s mine:
Then, run UnrealRezen from a command line and input this command (I’ll be using my own file paths in this example for clarity)
UnrealRezen.exe --content-path D:\ModdingUE4\UnrealReZen_V01\mod --compression-format Zlib --engine-version GAME_UE5_1 --aes-key 0xb2407c45ea7c528738a94c0a25ea8f419de4377628eb30c0ae6a80dd9a9f3ef0 --game-dir "C:\Program Files (x86)\Steam\steamapps\common\DRAGON BALL Sparking! ZERO\SparkingZERO\Content\Paks" --output-path "C:\Program Files (x86)\Steam\steamapps\common\DRAGON BALL Sparking! ZERO\SparkingZERO\Content\Paks\AudioMod_P.utoc"
For extra clarification on what each of these commands require individually, feel free to look at the UnrealRezen github page as it’s all explained there, though I believe it’s all pretty self explanatory.
This should have created a new .pak, .ucas and .utoc in your Paks folder.
B) Repacking the AWB
To repack the AWB, we’ll be using UnrealPak, much like with UnrealRezen, you once again have to recreate ethe entire file path, but this time to where the AWB would be:
Once this is done, simply drag and drop the root folder, in this case “mod” into the “UnrealPak-With-Compression” bat file:
This will now spit out a .pak with your AWB file in it, then rename it to match the .ucas and .utoc and simply replace the .pak that UnrealRezen created.
If all the steps were followed correctly, your new audio will now play in the game.
This is awesome! thank you so much for your hard work and depictive tutorial.
Just wondering, is there any way of finding out which number reference, i.e: 0000_10, 0000_23 etc, corresponds to which character?
cheers
Verify Discord “Unreal Anime Mods”. There a list call Sparking Zero ID List.