AzerothCore-WoTLK 数据提取实操指南:map、vmap、mmaps 全流程与避坑
2026/9/19 13:12:20 网站建设 项目流程

AzerothCore-WoTLK 数据提取实操指南:map、vmap、mmaps 全流程与避坑

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

跑通 AzerothCore-WoTLK 数据提取,你最终会拿到三组文件:map 管地形,vmap 管碰撞与视线,mmaps 管 NPC 寻路。下面按执行顺序讲清 extractor.sh 每个选项干什么、产物落在哪、怎么验收,帮你避开 3.3.5a 私服地图数据搭建里的常见坑。

先搞懂:三组数据各管什么

🗺️ 这三组数据各有分工,互不替代:

数据集解决什么问题文件形态
map地形高度、纹理、地图基础结构maps/下的0000_0000.adt
vmap静态物体(建筑、地形细节)的碰撞与视线遮挡.vmtree/.vmtile
mmapsnavmesh(给 NPC 寻路用的导航网格).mmap

依赖关系是一条单向链,后一步都要靠前一步的产物:

开跑前自检

条件不满足时不会直接报错拦住你,而是跑到一半卡住或产物残缺,所以先花一分钟对照这张表:

检查项要求不满足的后果
客户端版本WoW 3.3.5a(Build 12340),Data/下 MPQ 完整map_extractor 找不到数据包,产物缺失
磁盘空间≥20GB 空闲(原始数据 20GB+)提取中途写满、文件残缺
内存推荐 16GB 以上vmap 阶段频繁磁盘交换,速度骤降
运行环境四个二进制与Data/目录放在 WoW.exe 同级目录extractor.sh 直接提示缺文件,进不了菜单

四个工具各就各位

工具源码都放在src/tools/下,速查如下:

工具输入输出前置依赖一句话定位
map_extractorMPQ 数据包maps/dbc/Cameras/解析 ADT 区块文件头并校验,产出地形底座
vmap4_extractorWMO/M2 模型Buildings/(临时)map把模型简化成碰撞网格
vmap4_assemblerBuildings/vmaps/vmap4_extractor汇编成游戏可读的 vmap
mmaps_generatormap + vmapmmaps/vmap用 Recast/Detour 生成寻路网格

第一个工具的源码在 src/tools/map_extractor,其余三个与其平级存放。

extractor.sh 菜单怎么用

统一入口是 apps/extractor/extractor.sh,运行后进入交互菜单:

Press 1, 2, 3 or 4 to start extracting or 5 to exit. 1 - Extract base files (NEEDED) and cameras. 2 - Extract vmaps (needs maps to be extracted before you run this) 3 - Extract mmaps (needs vmaps to be extracted before you run this, may take hours) 4 - Extract all (may take hours) 5 - EXIT
  • 1:基础文件 + 相机,必须最先做;
  • 2:vmap 全流程(原始提取 + 汇编一并跑完),依赖 1;
  • 3:mmaps,依赖 2,耗时最长;
  • 4:1→2→3 一次跑完;
  • 5:退出。

四步走:执行与验收

1. map:打地基

  • 做什么:从 MPQ 里拆出地形数据,map_extractor 负责解析 ADT 区块并做头部校验,同时导出 DBC 和相机定义。
  • 怎么跑./extractor.sh,选 1。
  • 得到什么maps/按地图 ID 组织,文件形如0000_0000.adt;另有dbc/Cameras/
  • 确认成功:三个目录都有内容,且maps/下按目录分层铺开了各地图的 adt 文件。

2. vmap 原始数据:导出碰撞对象

  • 做什么:vmap4_extractor 逐个读取 WMO(世界模型)和 M2 文件,转成简化碰撞网格。
  • 怎么跑:选 2(该选项内部会连续跑提取和汇编两步)。
  • 得到什么:临时工作目录Buildings/
  • 确认成功:日志里出现Couldn't open RootWmo!!!这类字样是正常现象——菜单启动时就提前打过招呼,个别 WMO 组文件本就缺失,不用中断。✅

3. vmap 汇编

  • 做什么:vmap4_assembler 把Buildings/里的原始数据打包成优化格式,相当于 src/tools/vmap4_assembler 源码里的两步走vmap4_assembler Buildings vmaps
  • 怎么跑:随步骤 2 自动完成,结束后临时目录被清理。
  • 得到什么vmaps/目录,按地图 ID 和区块组织.vmtree.vmtile文件。
  • 确认成功vmaps/不再为空,且能找到对应地图 ID 的 tree/tile 文件。

4. mmaps:让 NPC 会走

  • 做什么:mmaps_generator 基于 Recast/Detour 为每张图生成导航网格,支持--threads指定线程数。工具细节见 src/tools/mmaps_generator。
  • 怎么跑:选 3。脚本会先提示 "This may take a few hours to complete",坐稳。
  • 得到什么mmaps/目录,每张地图一个.mmap
  • 确认成功:进程正常收尾无错误,mmaps/下文件齐全;有疑义时翻var/extractors/下的日志。

Extract all:一步到位的代价

首次部署或整库翻新时,直接选 4 最省事。代价是:

  • 原始数据 20GB+,IO 和内存持续高压;
  • 单张大陆地图(如诺森德)含数百个区块,寻路网格的几何计算很重;
  • 整体耗时以数小时计,中途断电或关机会让你从头再来。

时间充裕且想省心的选它;时间紧、已跑过部分步骤的,按 1→2→3 分步执行。

踩坑速查

⚠️ 症状对号入座,大多十分钟能解决:

症状可能原因处理办法
map_extractor 提示文件缺失客户端非 3.3.5a(Build 12340),或 Data 目录 MPQ 不完整换一套干净的 3.3.5a Data 目录再验证
vmap 阶段速度缓慢内存不足触发交换;Buildings 里留着无关地图数据清理Buildings/中不需要的数据,内存加到 16GB+
mmaps 生成失败vmap 尚未完成;磁盘空间不足先确认 vmap 已跑完;预留至少 10GB 空闲;查var/extractors/日志

部署与验收

📦 三组目录maps/vmaps/mmaps/放进 AzerothCore 服务器目录,然后在 worldserver.conf 里让 DataDir 指向它们所在的路径:

DataDir = "."

配置模板可参考 worldserver.conf.dist。注意 DataDir 无法通过重载 worldserver.conf 生效,改完要重启。

启动后做三项验收:

  1. 进图看地形——大陆起伏、水面与客户端一致;
  2. 贴建筑或崖壁走——碰撞和视线遮挡正常,能站上去的也能正常交互;
  3. 喊 NPC 巡逻——路径应绕开障碍物而不是直线穿墙。

三组数据都就位后,你的世界就具备了真实的地形、碰撞与寻路,后续调内容时基本不用再碰这一层。

【免费下载链接】azerothcore-wotlkComplete Open Source and Modular solution for MMO项目地址: https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询