《鸣潮》的过场动画提取

For source code and automatic generation, check here.

Steps

Install the game

Epic Games Store or from WuWa’s official website.

Download and run the launcher. Download the full game and run it for fully download.

Make sure the game is able to show login interface, otherwise the resources may not be downloaded completely. You may need to log in and change the voice language to download other voice packs.

Unpack the resources

Run FModel, select the game folder C:\PathTo\Epic Games\WutheringWavesj3oFh\Wuthering Waves Game (Make sure it’s Wuthering Waves Game, not any subfolders). Find the AES key to the game and load the packs.

Export the following folders (as raw files):

  • Client/Content/Aki/Movies
  • Client/Content/Aki/WwiseAudio_Generated

You may also need Client/Content/Aki/ConfigDB to know which audio is needed for the video (the videos do not have audio). But it’s easy to guess from the filenames. So we just skip it. If you are curious, they are just standard SQLite database files. Use sqlitebrowser to open them.

Or, easier, just check the publicly available unpacked data.

Also, Client/Content/Aki/Sequence (as properties json) can be used to match CgFile with real file path. Besides, you can guess by filename.

Parse Wwise .bnk

Get wwiser. Select WwiseAudio_Generated and generate .txtp.

If the .txtp filename contains (3313202977=2204441813), it contains Girl (as main character) voice. Otherwise, if it contains (3313202977=3111576190), it contains Boy voice.

Match videos with audios

Check the DB by yourself or use public data.

Match CgName-CgFile-EventPath.

Check WuWaCutscenesInfoGen_Video for automatic generation.

Generate captions

For captions, CgName-ShowMoment-CaptionText.

Check WuWaCaptionsGen for automatic generation.

Let’s try it out

For example, we want to export M0206_Nvzhu.

In videodata.json:

1
2
3
4
5
6
7
{
    "CgId": 102,
    "CgName": "Start",
    "GirlOrBoy": 0,
    "CgFile": "/Game/Aki/Sequence/LevelA_Seq/Main/01/M0206/M0206_nvzhu_Mp4.M0206_nvzhu_Mp4",
    "CanSkip": true
}

Find M0206_Nvzhu.mp4 in Movies/LevelA_Seq.

In videosound.json:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
  {
    "CaptionId": 1,
    "CgName": "Start",
    "GirlOrBoy": 2,
    "EventPath": "/Game/Aki/WwiseAudio/Events/play_sequence_music_m0206.play_sequence_music_m0206"
  },
  {
    "CaptionId": 2,
    "CgName": "Start",
    "GirlOrBoy": 2,
    "EventPath": "/Game/Aki/WwiseAudio/Events/play_sfx_lva_m0206.play_sfx_lva_m0206"
  }

Find play_sequence_music_m0206.txtp(../Media/633609165.wem #i #b 115.654395833333) and play_sfx_lva_m0206.txtp(../Media/988310690.wem #i).

Decode audios

Get vgmstream-cli.

In txtp folder, run the command:

1
vgmstream-cli <TXTP Filename>.txtp -o <Output Filename>.wav

Combine videos and audios

Now you have one video and several audios. The easier way is to use Adobe Premiere or any video editing software. Put each audio in a separate track, and put the video in the track with audio. You may use ffmpeg but the command may be more complicated.

Export the final video

Congratulations, you now have a video with audio.

提交: 5a1bbd02   环境: production   Hugo: 0.139.3   时间: 1733917433357452
作者对于因使用或解读所提供内容而导致的任何直接或间接后果不承担任何责任。
使用 Hugo 构建
主题 StackJimmy 设计