Node scripts to extract data from ExcelBinOutput
Used by my genshin-db repo
For personal use, edit the config.json
file. The folder pointed by GenshinData_folder
must include ExcelBinOutput
, TextMap
, and Readable
.
AssetStudioCLI
D:\GenshinImpact\AssetStudioCLI\AssetStudioCLI.exe "D:\GenshinImpact\3.7\patch\blocks" "D:\GenshinImpact\3.7\patch" --silent --types "Texture2D" --types "Sprite" --game GI --names "(^UI_.*)|(^Img.*)|(^Icon.*)|(^Eff_UI_Talent.*)|(^Skill_.*)|(^MonsterSkill.*)"
Audio files for voiceovers can be extracted by using the script at voice/audio.js
which is a partially translated JavaScript version of Razmoth/Audio's audio extractor. The files extracted are in .wem
format which can be converted to other audio formats using other tools.
It does not extract audio files for story and etc. If you need other audio files, you can generate a vo.txt
using voice/getAllVO.js
and use it on the audio extractor from Razmoth/Audio.
Read the instructions below for detailed prerequisites and instructions for the following steps:
- Generating vo.txt
- Audio extraction
Converting audio formatTODO
Without being provided a vo.txt
file, the audio extractor will export audio files with their hashed names. It is impossible to figure out what each audio file is supposed to be. Example:
/sfx/External_1792857726997092.wem
/sfx/External_1886194340482565.wem
/sfx/External_2128006690787571.wem
/sfx/External_2170657161166428.wem
Providing a vo.txt
file allows the audio extractor to map audio source paths to audio ids by using the FNV1 64-bit hashing function. A vo.txt
file is a list of audio source paths delimited by a \n
. It is typically generated by scraping through the files in GenshinData/BinOutput/Voice/Items
. Example:
VO_friendship\VO_ayaka\vo_ayaka_draw_appear.wem
VO_friendship\VO_ayaka\vo_ayaka_character_idle_01.wem
VO_friendship\VO_ayaka\vo_ayaka_character_idle_02.wem
VO_friendship\VO_ayaka\vo_ayaka_character_idle_03.wem
Note that Razmoth/Audio's audio extractor requires the audio language to be appended in front of the source path in the vo.txt
.
English(US)\VO_AQ\VO_dainsleif\vo_SZAQ004_1_dainsleif_04.wem
Japanese\VO_AQ\VO_dainsleif\vo_SZAQ004_1_dainsleif_04.wem
Chinese\VO_AQ\VO_dainsleif\vo_SZAQ004_1_dainsleif_04.wem
Korean\VO_AQ\VO_dainsleif\vo_SZAQ004_1_dainsleif_04.wem
The voice/getAllVO.js
script generates a list of voiceover audio source paths and saves it to voice/db-vo.txt
.
TODO
The voice/getAllVO.js
script generates a list of all audio source paths and saves it to voice/vo.txt
. This is a standalone script and you must modify the script and update the variable BASE
to be your local GenshinData/BinOutput/Voice/Items
path. The script may take more than a couple seconds to run due to the number of file reads it does.