🚀 全新架构的Brown Dust 2 MOD制作工具
工作区集中管理 | 模块化架构 | 命令行/GUI双界面 | 一键打包部署
🌟 如果这个项目对您有帮助,请给我们一个Star或者💕 赞助我们!
🎮 让BD2 MOD制作变得专业而高效!
Made with ❤️ by BD2 MOD实验室
BD2 MOD Packer v2.0 是专为《Brown Dust 2》游戏开发的新一代自动化MOD管理系统。基于全新的工作区集中化架构,提供了从MOD开发到打包部署的完整工作流程。
- 🏗️ 工作区集中化: 全新的
workspace/目录结构,统一管理所有MOD项目 - 📦 模块化重构: 重新设计的
bd2_mod_packer包架构,更好的代码组织 - 🖥️ 双界面支持: 命令行界面 + 控制台界面,适应不同用户需求
- ⚙️ 统一配置: 基于JSON的配置系统,所有设置集中管理
- 🔧 Python包化: 支持
pip install安装,更专业的分发方式
- 专业化架构: 采用现代Python项目标准架构,可维护性大大提升
- 工作区管理: 支持多作者、多项目的工作区独立管理
- 智能处理: 自动检测文件变更、智能缓存、版本管理
- 用户友好: 统一的控制台界面和详细的错误提示
- 📊 智能角色识别: 从MOD文件名自动识别角色和服装信息
- 📁 简化目录结构: 新的三级目录结构:作者/类型/MOD名称
- 🔄 增量更新: 智能跳过已存在目录,支持增量初始化
- 🎭 多格式支持: 支持char*, illust_, specialIllust等多种ID格式
- 🔧 Unity Bundle支持: 完整的Unity AssetBundle读取和修改
- 🖼️ 纹理替换: 支持各种图像格式的纹理替换
- ⚡ 高性能处理: 多线程并行处理,大幅提升处理速度
- 💾 智能缓存: 避免重复下载和处理相同资源
- 🔍 变更检测: 自动检测MOD文件变更,仅处理更新内容
- 📋 详细报告: 生成完整的MOD打包报告和使用说明
- 🔒 版本管理: 自动版本控制和冲突检测
- 📄 README生成: 自动生成MOD安装和使用文档
- 🖥️ 友好界面: 直观的菜单驱动界面,无需记忆命令
- 🔧 依赖检查: 一键检查Python环境和依赖库状态
- ⚙️ 配置管理: 可视化配置修改和管理工具
- 📊 实时反馈: 详细的进度显示和状态信息
- 🔄 代理支持: 完整的HTTP/HTTPS代理配置支持
- ⏱️ 智能重试: 网络超时和重试机制
- 📝 配置热更新: 运行时配置修改,无需重启
- 🛡️ 错误恢复: 完善的错误处理和恢复机制
# 克隆项目
git clone https://github.com/laoxinH/bd2_auto_ab.git
cd bd2_auto_ab
# 安装依赖
pip install -r requirements.txt
# 启动控制台
python main.py- 📋 选择 0 - 执行目录初始化,获取最新角色数据
- 📁 放置MOD文件 - 将您的MOD文件放入对应角色目录
- 📦 选择 1 - 执行MOD打包,自动生成可分发的MOD包
- Python: 3.8 或更高版本
- 操作系统: Windows 10/11 (主要支持)
- 内存: 建议 4GB 以上
- 存储: 建议 2GB 以上空闲空间
# 1. 克隆仓库
git clone https://github.com/laoxinH/bd2_auto_ab.git
cd bd2_auto_ab
# 2. 安装依赖
pip install -r requirements.txt
# 3. 启动程序
python main.py如果您处于需要代理的网络环境中,请修改 config.json:
{
"network": {
"proxy_enabled": true,
"proxy_http": "http://your-proxy:port",
"proxy_https": "http://your-proxy:port"
}
}程序提供了自动依赖检查功能:
python main.py --check# 清华大学镜像源
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 阿里云镜像源
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/# 使用内置依赖检查工具
cd src
python console.py
# 选择选项 2 进行依赖环境检查python main.py# 列出所有工作区
python main.py --list
# 创建新的工作区
python main.py --create "我的MOD项目"
# 打包指定工作区
python main.py --workspace "我的MOD项目"
# 清理空文件夹
python main.py --cleanup
# 检查依赖环境
python main.py --checkv2.0 采用全新的工作区集中化管理:
bd2_auto_ab/
├── workspace/ # 🗂️ 工作区根目录
│ ├── mod_projects/ # 📦 MOD项目目录
│ │ ├── replace/ # 默认工作区
│ │ ├── laoxin的mod/ # 示例:多作者工作区
│ │ └── your_workspace/ # 您的自定义工作区
│ ├── sourcedata/ # 📥 原始游戏资源缓存
│ └── targetdata/ # 📤 处理后的MOD输出
├── bd2_mod_packer/ # 🔧 核心程序包
├── config.json # ⚙️ 配置文件
└── main.py # 🚀 程序入口
-
🚀 启动程序
python main.py
-
0️⃣ 创建工作区
- 选择菜单选项 "0" - 创建MOD工作目录
- 输入工作区名称(如 "我的MOD")
- 系统自动创建基础目录结构(IDLE/ 和 CUTSCENE/)
-
📁 放置MOD文件
- 将您的MOD文件放入对应的工作区目录
- 新结构:作者名/IDLE或CUTSCENE/MOD名称/
- MOD文件名必须包含角色ID(如:char000101.atlas)
-
📁 管理MOD文件
- 在
workspace/mod_projects/your_workspace/中组织您的MOD - 新结构:作者名/IDLE或CUTSCENE/MOD名称/
- 支持多个作者、多种MOD类型的并行开发
- MOD文件必须包含角色ID用于自动识别
- 在
-
📦 一键打包
- 选择菜单选项 "1" - 执行MOD打包
- 选择要打包的工作区
- 系统自动识别角色信息并处理,输出到
targetdata/
-
🧹 清理维护
- 定期使用选项 "3" 清理空文件夹
- 保持工作区整洁
对于熟练用户,可以直接使用命令行:
# 创建新工作区
python main.py --create "新项目名称"
# 列出所有工作区状态
python main.py --list
# 打包指定工作区
python main.py --workspace "项目名称"- 建议创建以MOD名称命名的子文件夹
-
📦 执行打包
- 选择选项
1 - 系统自动检测文件变更
- 下载原始资源并执行替换
- 生成完整的MOD包和说明文档
- 选择选项
-
📊 查看结果
- 在
workspace/targetdata/目录查看生成的MOD包 - 阅读自动生成的README文件
- 按说明安装和测试MOD
- 在
系统提供专门的配置管理工具:
cd src
python config_manager.py{
"network": {
"proxy_enabled": true, // 是否启用代理
"proxy_http": "http://127.0.0.1:7890", // HTTP代理地址
"proxy_https": "http://127.0.0.1:7890", // HTTPS代理地址
"request_timeout": 15.0, // 请求超时时间(秒)
"download_timeout": 300.0, // 下载超时时间(秒)
"max_retries": 3, // 最大重试次数
"retry_delay": 1.0 // 重试延迟(秒)
}
}{
"log": {
"level": "INFO", // 日志级别
"file_enabled": false, // 是否保存到文件
"file_path": "logs/bd2_auto_ab.log" // 日志文件路径
}
}-
🖥️ 可视化管理(推荐)
python config_manager.py
-
✏️ 直接编辑
- 编辑项目根目录的
config.json文件 - 确保JSON格式正确
- 编辑项目根目录的
-
⚡ 热更新
- 配置修改后立即生效
- 无需重启程序
BD2 MOD Packer v2.0 采用全新的工作区集中化架构:
bd2_auto_ab/ # 项目根目录
├── � main.py # 🎯 统一程序入口
├── 📄 setup.py # 📦 Python包安装脚本
├── 📄 config.json # ⚙️ 统一配置文件
├── 📄 data.json # 📊 项目数据缓存
├── � requirements.txt # 📋 依赖列表
│
├── 📦 bd2_mod_packer/ # 🔧 主程序包
│ ├── � core/ # 核心业务逻辑
│ │ ├── � manager.py # MOD管理器主类
│ │ ├── 📄 resource_manager.py # 资源管理器
│ │ ├── � data_downloader.py # 数据下载器
│ │ └── 📄 unity_processor.py # Unity资源处理器
│ ├── � ui/ # 用户界面
│ │ └── 📄 console.py # 控制台界面
│ ├── 📁 config/ # 配置管理
│ │ └── 📄 settings.py # 配置设置
│ ├── 📁 utils/ # 工具函数
│ │ └── � dependency_checker.py # 依赖检查器
│ └── 📁 api/ # API接口
│ ├── 📄 cdn_api.py # BD2 CDN API
│ └── 📄 character_scraper.py # 角色数据爬虫
│
├── 📁 workspace/ # 🗂️ 工作区目录(v2.0核心)
│ ├── 📁 mod_projects/ # MOD项目工作区
│ │ ├── 📁 replace/ # 默认工作区
│ │ ├── 📁 laoxin的mod/ # 多作者工作区示例
│ │ └── 📁 {自定义工作区}/ # 用户自定义工作区
│ ├── 📁 sourcedata/ # 原始游戏资源缓存
│ └── 📁 targetdata/ # 处理后的MOD输出
│
├── � docs/ # 📚 文档目录
│ ├── 📄 QUICKSTART.md # 快速开始指南
│ ├── 📄 PROJECT_STRUCTURE.md # 项目架构说明
│ ├── 📄 CONFIG_README.md # 配置系统说明
│ ├── 📄 CHANGELOG.md # 更新日志
│ └── 📄 PROJECT_OVERVIEW.md # 项目概览
│
└── 📁 tests/ # 🧪 测试文件
├── 📄 test_console.py # 控制台测试
└── 📄 test_new_features.py # 新功能测试
- 🏗️ 工作区集中化: workspace/ 统一管理所有MOD相关数据
- 📦 Python包化: 标准Python包结构,支持pip安装
- 🔧 模块化设计: 业务逻辑、界面、配置、工具清晰分离
- 🎯 统一入口: main.py 提供一致的程序访问点
- 📊 多工作区支持: 支持多个独立MOD项目并行开发
- 🔄 单例模式配置管理
- 📁 JSON配置文件自动生成
- ⚡ 热重载配置支持
- 🎨 Unity Bundle文件解析
- 🖼️ 纹理格式转换和替换
- 💾 资源缓存和优化
- 🌐 BD2 CDN API封装
- 📥 多线程下载支持
- 🔄 自动重试和错误恢复
- � 基于ID的角色数据查找
- 📊 角色和服装数据解析
- 💾 本地缓存管理
- 🏷️ 多种ID格式支持(char*, illust_, specialIllust等)
# 依赖检查测试
python check_dependencies.py
# 控制台功能测试
python ../test_console_features.py
# 配置系统测试
python config_manager.py# 启用详细日志
# 修改config.json中的log.level为"DEBUG"- 在
config.py中定义新的数据类 - 更新默认配置生成逻辑
- 在
config_manager.py中添加管理界面
- 继承
UnityResourceProcessor基类 - 实现特定的资源处理逻辑
- 注册到主处理流程中
Q: Python版本不兼容怎么办?
A: 系统要求Python 3.8或更高版本。请升级Python或使用pyenv管理多版本:
# 检查Python版本
python --version
# 使用pyenv安装新版本
pyenv install 3.11.0
pyenv local 3.11.0Q: 依赖安装失败怎么解决?
A: 常见解决方案:
# 1. 更新pip
python -m pip install --upgrade pip
# 2. 使用国内镜像源
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 3. 逐个安装依赖
pip install requests beautifulsoup4 lxml tqdm UnityPy Pillow blackboxprotobufQ: 角色ID识别失败怎么办?
A: 检查MOD文件命名规范:
-
文件名格式:
- 必须包含完整的角色ID:char000101, illust_dating001等
- 支持的文件格式:.atlas, .modfile, .skel, .json
- 避免在文件名中添加多余的字符
-
支持的ID格式:
- char* 系列:char000101, char000102等
- illust_* 系列:illust_dating001, illust_special002等
- specialIllust* 系列:specialIllust001, specialillust002等
-
排查方法:
- 检查日志输出中的"提取到角色ID"信息
- 确认文件名与预期ID格式匹配
Q: 下载游戏资源时超时怎么办?
A: 调整超时配置:
{
"network": {
"download_timeout": 600.0, // 增加到10分钟
"max_retries": 5, // 增加重试次数
"retry_delay": 2.0 // 增加重试间隔
}
}Q: MOD文件应该放在哪里?
A: 新的简化目录结构:
workspace/mod_projects/{工作目录名}/
├── {作者名1}/
│ ├── IDLE/ # 立绘动画MOD
│ │ ├── {MOD名称1}/
│ │ │ ├── char000101.atlas # 文件名包含角色ID
│ │ │ └── char000101.modfile
│ │ └── {MOD名称2}/
│ │ └── illust_dating001.atlas
│ └── CUTSCENE/ # 技能动画MOD
│ └── {MOD名称3}/
│ ├── char000102.skel
│ └── char000102.json
└── {作者名2}/
└── IDLE/
└── {MOD名称4}/
└── specialIllust001.atlas
注意事项:
- MOD文件名必须包含角色ID (如: char000101, illust_dating001)
- 系统会从文件名自动识别角色和服装信息
- 支持的文件格式: .atlas, .modfile, .skel, .json
- 支持的角色ID格式: char*, illust_*, specialIllust*, specialillust*
Q: 支持哪些图像格式?
A: 支持的格式:
- 输入格式: PNG, JPG, JPEG, BMP, TGA
- 输出格式: Unity RGBA32 纹理格式
- 建议: 使用PNG格式以保持透明度
Q: "配置文件损坏"错误?
A: 重置配置文件:
# 删除损坏的配置文件
rm config.json
# 重新运行程序,自动生成新配置
python console.pyQ: Unity资源处理失败?
A: 检查和解决:
- 确认文件格式: 只支持Unity Bundle格式
- 检查文件权限: 确保有读写权限
- 清理缓存: 删除
sourcedata/目录重新下载 - 查看详细日志: 设置日志级别为DEBUG
我们欢迎各种形式的贡献:
- 🐛 报告Bug: 在Issues中详细描述问题
- ✨ 功能建议: 提出新功能想法和改进建议
- 📝 文档改进: 完善文档、添加示例
- 💻 代码贡献: 修复Bug、实现新功能
- 🍴 Fork项目
- 🌿 创建特性分支:
git checkout -b feature/amazing-feature - 💻 提交更改:
git commit -m 'Add amazing feature' - 📤 推送分支:
git push origin feature/amazing-feature - 🔄 创建Pull Request
- 🐍 遵循PEP 8 Python代码规范
- 📝 添加详细的文档字符串
- 🧪 为新功能编写测试
- 📊 保持代码覆盖率
项目遵循语义化版本控制:
- 主版本号: 不兼容的API修改
- 次版本号: 向下兼容的功能性新增
- 修订号: 向下兼容的问题修正
- 🔗 MOD实验室官方网站: https://www.modwu.com/
- 更多MOD资源和教程
- 社区交流和技术支持
- 最新的游戏MOD资讯
如果这个项目对您有帮助,您可以通过以下方式支持我们的持续开发:
- 🎯 实验室官方捐赠渠道: https://www.modwu.com/?p=549
- ⚡ 爱发电捐赠渠道: https://afdian.com/a/oldnew/plan
您的支持将帮助我们:
- 🔧 持续改进和优化工具
- 📚 完善文档和教程
- 🆕 开发更多实用功能
- 🎮 支持更多游戏MOD制作
🎉 享受自动化的BD2 MOD资源管理体验!