Skip to main content

通过解析英雄联盟游戏内WAD、BNK、WPK、BIN等文件来提取音频文件,并可以按照触发事件分类

Project description

当前仓库已转移到https://github.com/Virace/league-tools

当前仓库已转移到https://github.com/Virace/league-tools

当前仓库已转移到https://github.com/Virace/league-tools

py-bnk-extract

英雄联盟语音解包工具, 由Python语言编写.

介绍

可以将英雄联盟中wpk或bnk中音频文件按照皮肤的触发条件分类解包, 默认为wem音频格式, 使用 vgmstream 可转码.

其余bnk文件结构来参考:http://wiki.xentax.com/index.php/Wwise_SoundBank_(*.bnk)

安装

pip install lol-voice

pip install -e git+https://github.com/Virace/py-bnk-extract@package#egg=lol_voice

使用

此包适合提取已知皮肤语音, 如需全部提取请关注 lol_extract_voice

from lol_voice import extract_audio
from lol_voice.formats import WAD


def example():
    """
    按触发事件文件夹分类提取 剑魔 语音文件
    :return:
    """

    # 临时目录和最终输出目录
    temp_path = r'D:\Temp'
    out_path = r'D:\Out'

    # 英雄名字, 以及对于默认皮肤的三个文件路径
    champion = 'aatrox'
    bin_tpl = f'data/characters/{champion}/skins/skin0.bin'
    audio_tpl = f'assets/sounds/wwise2016/vo/zh_cn/characters/aatrox/skins/base/{champion}_base_vo_audio.wpk'
    event_tpl = f'assets/sounds/wwise2016/vo/zh_cn/characters/aatrox/skins/base/{champion}_base_vo_events.bnk'

    # 需要解析两个WAD文件, 这个路径修改为自己的游戏目录
    wad_file1 = r"D:\League of Legends\Game\DATA\FINAL\Champions\Aatrox.wad.client"
    wad_file2 = r"D:\League of Legends\Game\DATA\FINAL\Champions\Aatrox.zh_CN.wad.client"

    # 将上面三个文件提取到临时目录
    WAD(wad_file1).extract([bin_tpl], temp_path)
    WAD(wad_file2).extract([audio_tpl, event_tpl], temp_path)

    # 根据三个文件对应提取语音并整理
    extract_audio(
        bin_file=os.path.join(temp_path, os.path.normpath(bin_tpl)),
        event_file=os.path.join(temp_path, os.path.normpath(event_tpl)),
        audio_file=os.path.join(temp_path, os.path.normpath(audio_tpl)),
        out_dir=out_path
    )

if __name__ == '__main__':
    example()

问题

待解决:

  • 不同事件调用相同语音, 导致文件重复
  • 不排除文件有缺失问题, event文件解析不完整

维护者

Virace

感谢

许可证

GPLv3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lol_voice-1.0.4.1.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

lol_voice-1.0.4.1-py3-none-any.whl (49.6 kB view details)

Uploaded Python 3

File details

Details for the file lol_voice-1.0.4.1.tar.gz.

File metadata

  • Download URL: lol_voice-1.0.4.1.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Windows/11

File hashes

Hashes for lol_voice-1.0.4.1.tar.gz
Algorithm Hash digest
SHA256 88b4fb7b58e9fbf18a0fcb0cb371b3926954ad8816df45ea2198d189537dd537
MD5 888e7d26aff18bcef15007dc8c832b88
BLAKE2b-256 449e66926b95d2d702ca46f6859b9a31862c902db5946343c15aca830ae1d5fa

See more details on using hashes here.

File details

Details for the file lol_voice-1.0.4.1-py3-none-any.whl.

File metadata

  • Download URL: lol_voice-1.0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 49.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Windows/11

File hashes

Hashes for lol_voice-1.0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40686ce7104c1e88be29ebf0865182823e78c161669ff81ecabf6386cb93a929
MD5 be21047cddf4e5689fb3ef5f2752cb48
BLAKE2b-256 0024e2e7b976a3e56c72a33ec0cdc72e1ac589e0dc0a3c72fd78b336d7f75315

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page