(其实就是个调包脚本)
将东方游戏目录拖放到 一键解包.bat 上,或使用 PowerShell 脚本:
.\unpack.ps1 -GameDir "D:\Touhou\th20"- 操作系统:Windows 10/11
- PowerShell:5.1+(Windows 内置)
- Python:3.10+(必需,用于编码转换、BGM处理等功能)
支持参数化运行、错误处理和日志记录:
# 基础解包(交互式)
.\unpack.ps1 -GameDir "D:\Touhou\th20"
# 自动化解包(跳过所有确认)
.\unpack.ps1 -GameDir "D:\Touhou\th20" -Yes
# 试运行(不实际执行)
.\unpack.ps1 -GameDir "D:\Touhou\th20" -DryRun
# 详细输出
.\unpack.ps1 -GameDir "D:\Touhou\th20" -Detailed
# 自定义日志文件
.\unpack.ps1 -GameDir "D:\Touhou\th20" -LogFile "custom.log"-GameDir:游戏目录路径(必需,包含 thXX.exe 的文件夹)-Yes:自动化模式,跳过所有确认提示-DryRun:试运行模式,只显示将要执行的操作,不实际执行-Detailed:详细输出模式,显示更多执行信息-LogFile:自定义日志文件路径(默认:unpack.log)
使用 pixi 环境运行(自动处理依赖):
# 基础解包
pixi run unpack D:\Touhou\th20
# 带 MP3 转换的解包(需要 FFmpeg)
pixi run unpack D:\Touhou\th20 --mp3
# 带淡出效果的解包
pixi run unpack D:\Touhou\th20 --fade
# 完整示例:MP3 + 淡出 + 清理
pixi run unpack D:\Touhou\th20 --mp3 --fade --cleanpython -m thtk_unpack_all_in_one.cli --help常用参数:
game_dir:游戏目录路径(必要位置参数)--mp3:同时将 WAV 转为 MP3(需要 FFmpeg)--fade <seconds>:淡出时长,默认 3.0 秒--clean:解包前清理输出目录--no-clean:不清理输出目录(默认清理)--skip-dat:跳过 DAT 解包--skip-anm:跳过 ANM 解包--skip-msg:跳过 MSG 解包--skip-ecl:跳过 ECL 解包--skip-encoding:跳过编码转换--skip-bgm:跳过 BGM 解包--skip-dialogue:跳过对话处理
将游戏所在文件夹拖动到 一键解包.bat 上,根据提示按 回车键 或输入 y/n。
- 游戏文件夹名最好不要带有空格或特殊字符
- 建议使用全英文+数字的形式以避免编码问题
- 首次运行前确保所有依赖工具已正确安装
点击 点击清空解包文件.bat 可清空所有生成内容。
建议在解包不同游戏前清理,以避免文件混淆。
- PowerShell 5.1+:Windows 内置,用于运行 unpack.ps1 脚本
- Python 3.10+:用于编码转换、BGM处理、对话生成等功能
- thtk 工具集:东方正作解包工具(项目已内置)
- thanm.exe:动画文件解包
- thdat.exe:数据文件解包
- thmsg.exe:消息文件解包
- thecl.exe:脚本文件解包
- pixi:Python 环境管理器(推荐,用于运行 Python 脚本)
- FFmpeg:音频格式转换(MP3 转换时需要)
- chardet:字符编码检测
- numpy:数值计算
- 已验证:星莲船(th12)、鬼形兽(th17)、虹龙洞(th18)、兽王园(th19)、锦上京(th20)
- 理论支持:th06~th20(东方新作弹幕作)
- 不支持:旧作、游泳作、刚欲异闻等
- 其他说明:可能存在 bug,欢迎反馈;若为 thtk 工具本身报错,请去 thtk 项目反馈
- 执行策略错误:运行
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - 路径包含空格:用引号包围路径,如
.\unpack.ps1 -GameDir "C:\Games\Touhou th20" - 权限不足:以管理员身份运行 PowerShell
- 确认
thtk文件夹存在且包含thanm.exe、thdat.exe、thmsg.exe、thecl.exe - 如果使用
pixi,确保已安装且在 PATH 中:pixi run python --version - 如果使用系统 Python,确保
python在 PATH 中并且版本 >= 3.10:python --version - 推荐 Python 3.10+,优先 3.11 或 3.12,以避免编码和依赖问题
- 错误信息:
找不到 thdat或thdat 命令不存在 - 解决:安装 thtk 并加入 PATH,参考 thtk 项目
- 错误信息:
ffmpeg 命令不存在或找不到 ffmpeg - 解决:安装 FFmpeg 并加入 PATH,参考 FFmpeg 下载
- 错误信息:
python 不是内部或外部命令、ModuleNotFoundError或SyntaxError - 解决:
- 安装 Python 3.10+ 并加入 PATH
- 运行
python -m pip install -r requirements.txt(如果有) - 推荐使用
pixi创建独立环境:pixi install python@3.11、pixi run python -m pip install -r requirements.txt
- 确保游戏目录包含 thXX.exe 文件(XX 为版本号)
- 支持的格式:th12.exe, th17tr.exe(试玩版)等
- 如果有多个 exe 文件,会自动选择最新版本
- 检查游戏文件完整性
- 确认有足够磁盘空间
- 查看 unpack.log 文件获取详细错误信息
- 某些文本文件可能需要手动检查编码
- 如果转换后出现乱码,可能是特殊字符编码问题
[INFO]:正常操作信息[WARN]:警告信息,不影响执行[ERROR]:错误信息,需要注意
-
unpack.ps1:PowerShell 脚本版本的主解包工具
- 支持参数化运行、错误处理、日志记录等高级功能
- 推荐使用方式
-
一键解包.bat:主要的批处理脚本
- 传统方式,拖拽游戏目录即可使用
-
点击清空解包文件.bat:清理脚本
- 清理所有解包生成的文件和目录
- 建议在解包不同游戏前使用
- upack.py:Python 主程序入口
- shift_jis_to_utf-8.py:编码转换脚本
- 将文本文件从 Shift-JIS 转换为 UTF-8
- thbgm.py:BGM 音频提取脚本
- 基于 thbgm-unpack 修改,支持淡出效果
- 项目源地址:https://gitee.com/wdsjimin/thbgm-unpack
- transBFA.py:BGM 文件名转换脚本
- 将 BgmForAll.ini 中的文件名替换为曲目名
- transDialogue.py:对话文本提取脚本
- 从 .msg 文件提取对话内容,生成 wikitext 格式
-
thtk/:东方正作解包工具集
- 由 thpatch 社区开发
- 项目地址:https://github.com/thpatch/thtk
- 包含 thanm.exe、thdat.exe、thmsg.exe、thecl.exe 等工具
-
pixi.toml:pixi 环境配置文件
-
pyproject.toml:Python 项目配置和依赖
- data/:解包后的游戏数据文件
- anm/:图片文件输出目录
- msg/:对话文件输出目录
- ecl/:脚本文件输出目录
- bgm/:曲目文件输出目录
- dialogue/:对话文本输出目录
欢迎提交 Issue 和 Pull Request!
- 项目主页:[GitHub Repository]
- Bug 反馈:请提供详细的错误信息和日志
- 功能建议:欢迎提出改进意见
本项目仅供学习和研究使用,请遵守相关法律法规。
纯娱乐练手内容。还有诸多可拓展和改进之处。该项目致力于为东方同人创作者提供快速、便利的素材提取工具。
- 感谢博丽神主 ZUN,感谢 THPatch 及 THBWiki
- 感谢 thtk 项目
- 感谢 thbgm-unpack 项目