VCMI Mod开发入门:从mod.json到第一个可用Mod的完整流程

📅 2026/8/23 15:28:12
VCMI Mod开发入门:从mod.json到第一个可用Mod的完整流程
VCMI Mod开发入门从mod.json到第一个可用Mod的完整流程【免费下载链接】vcmiOpen-source engine for Heroes of Might and Magic III项目地址: https://gitcode.com/gh_mirrors/vc/vcmiVCMI 是《英雄无敌3》Heroes of Might and Magic III的开源重制引擎支持玩家用简单的 JSON 配置文件扩展游戏内容。本文为新手提供 VCMI Mod 开发的完整指南从创建mod.json文件到在 Content 目录中添加自定义生物、法术等内容再到在启动器中启用并验证你的第一个可用 Mod。全程无需编写 C 代码会写 JSON 即可上手。一、先搞清楚VCMI 的 Mod 体系长什么样在开始动手之前先了解 VCMI Mod 的基本组织方式。官方文档 [docs/modders/Readme.md]仓库内相对路径docs/modders/Readme.md定义了标准结构Mods/ myMod/ ← 用 Mod 名作为文件夹名即 Mod 标识符 mod.json ← Mod 的“主文件”必须存在 Content/ ← 所有 Mod 内容 config/ - JSON 配置文件 data/ - 位图图片.bmp、.png、.pcx maps/ - H3M 地图 music/ - 音乐Mp3、ogg sounds/ - 音效wav sprites/ - 动画文件 video/ - 视频三个关键概念mod.jsonMod 的入口文件描述名称、版本、类型、依赖以及新增内容的清单。Content 目录相当于一个“小型游戏根目录”其中同名文件可覆盖原版资源。Mod 标识符文件夹名规范要求只能用小写字母、数字和连字符如my-mod-name。 仓库里就有两个可直接参考的官方示例基础 ModMods/vcmi/mod.jsonVCMI 运行所必需的基础内容完整演示 ModMods/roe-demo/mod.json展示了 factions、creatures、heroes、spells 等内容的标准写法安装 VCMI 后在游戏数据目录下的Mods/中创建你自己的文件夹即可开始开发。二、核心文件解析mod.json 常用字段速查mod.json是 Mod 的心脏完整字段说明见官方文档docs/modders/Mod_File_Format.md。新手只需掌握下表字段字段作用示例nameMod 名称建议不超过 30 字符My test moddescription启动器中显示的描述支持 MarkdownA small balance modauthor作者署名Anonymousversion版本号最多三段1.0.0modTypeMod 类型Graphical / Creatures / Mechanics / Maps 等Mechanicscontact联系页面http://example.comdepends强依赖的其他 Mod 列表[baseMod]conflicts冲突 Mod 列表[badMod]compatibility兼容的引擎版本范围{ min: 1.2.0 }keepDisabled为 true 时安装后不自动启用false三、动手写你的第一个 mod.json在Mods/myMod/下创建mod.json最小可用版本如下可对照Mods/roe-demo/mod.json的完整写法{ name : My test mod, version : 1.0, author : You, description : My first VCMI Mod, modType : Mechanics } 如果不想让 Mod 安装后立即生效方便测试加上keepDisabled : true然后在启动器中手动勾选。想写更长的介绍可以另建description.md文件支持多语言小节用# english、# polish这类一级标题区分语言启动器会优先显示它。四、给 Mod 加内容两种最简单的玩法玩法 1直接修改原版数据改数值型 Mod小改动可以直接内嵌在mod.json中例如把小恶魔生命值改为 5{ name : My test mod, version : 1.0, modType : Mechanics, creatures : { core:imp : { hitPoints : 5 } } }其中core:前缀表示修改原版Heroes III中的对象只需写出改动过的属性即可。这种写法也适用于其他 Mod 的对象例如forge:jumpSoldier : { attack: 20 }。玩法 2新增自定义对象扩展型 Mod内容较多时把定义拆到Content/config/下的独立 JSON 文件再在mod.json中引用{ name : My test mod, version : 1.0, modType : Creatures, creatures : [ config/myCreature.json ] }创建新对象的标准三步来自docs/modders/Readme.md用 JSON 写对象定义文件参考docs/modders/Entities_Format/下各类型格式如 [Creature_Format.md]、[Spell_Format.md]把所需的图片、动画、音效等资源放入Content/对应子目录在mod.json对应分区creatures、spells、artifacts、objects等中加入文件引用。✅ 支持引用的内容分区非常丰富factions、heroClasses、heroes、skills、creatures、artifacts、objects、spells、terrains、battlefields、templates随机地图模板等。五、启用与验证让 Mod 跑起来打开 VCMI 启动器Launcher进入Mod 管理页面勾选你的 Mod注意检查依赖是否满足、是否有冲突提示启动游戏留意控制台输出的校验信息。⚠️ 发布前务必保证加载时没有校验错误这是官方 Mod 仓库的硬性要求Mod 标识符命名合规小写字母、数字、连字符音乐文件使用 Ogg/Vorbis.ogg格式。日志统一写入游戏目录下的vcmi.log排查加载问题时优先查看它。六、进阶三件事依赖、冲突与存档兼容依赖管理depends声明强依赖softDepends声明若启用则先加载、冲突时本 Mod 覆盖的弱依赖conflicts声明互斥。列表合并语法修改数组属性时推荐用append / appendItems / insertn / modifyn增量语法代替整体覆盖避免与其他 Mod 冲突。存档兼容更新 Mod 时重命名或删除对象会直接破坏老存档。正确做法是在对象中添加compatibilityIdentifiers字段提供旧名映射例如roland : { compatibilityIdentifiers : [ archibald ] }详细规则见docs/modders/Updating_Mods.mdBonus增益系统的高级玩法见docs/modders/Bonus_Format.md与docs/modders/Guides/Bonus_System.md。七、新手避坑清单❌ 不要在description.md里把 Mod 名称再写成一级标题启动器会自动添加。❌ 不要直接覆盖其他 Mod 的图形文件官方明确不推荐且未来可能移除应改用修改现有对象方式。✅ 图形替换遵循目录对应规则H3Bitmap.lod→Data/、H3Sprite.lod→Sprites/、Heroes3.snd→Sounds/、Video.vid→Video/。✅ 大型 Mod 建议为每种对象单独建一个 config 文件方便维护。八、参考资料索引文档仓库内相对路径内容docs/modders/Readme.mdMod 创建总览与发布规则docs/modders/Mod_File_Format.mdmod.json 全字段说明docs/modders/Updating_Mods.mdMod 更新与存档兼容docs/modders/Entities_Format/Creature_Format.md生物定义格式docs/modders/Entities_Format/Spell_Format.md法术定义格式docs/modders/Random_Map_Template.md随机地图模板docs/modders/Map_Editor.md地图编辑器使用Mods/vcmi/mod.json、Mods/roe-demo/mod.json官方示例 Mod如果你还想研究引擎侧的 Mod 加载实现可以浏览源码目录lib/modding/想给 Mod 加脚本逻辑则可参考docs/modders/Lua/Script_Types.md与示例脚本scripts/spells/。从这份清单出发你的第一个可用 Mod 距离完成只差一次保存文件。【免费下载链接】vcmiOpen-source engine for Heroes of Might and Magic III项目地址: https://gitcode.com/gh_mirrors/vc/vcmi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考