模组总览
什么是模组?
每个人都有希望能在游戏中实现的想法。 不幸的是,游戏只能理解代码,所以模组是我们这些不会编程的人获得一定自由度的方式。
模组可以添加、替换和删除基本游戏定义,例如单位、文明、建筑、改良设施、资源和地形。 加载了这些模组的游戏将根据模组定义运行。
游戏只能识别现有的定义,所以你不能为文明/单位/建筑等添加新的独特能力,只能使用现有的能力。
模组主要有三种类型:
- 扩展模组 - 这些向基础规则集添加新的文明/单位/建筑/资源 - 可以是默认规则集,也可以是基础规则集模组。这很容易做,可能是入门的好地方 - 例如,创建新文明
- 基础规则集模组 - 这些完全替换现有的规则集 - 科技树、单位、政策、文明等 - 提供与基础游戏完全不同的体验。这些通常需要相当多的工作,但提供全新的体验,因此最受欢迎。这里有一个最小示例可以作为构建模板(右上角的"Use this template"绿色按钮,"Create a new repository")。关于要求,请参阅基础规则集要求
- 规则集无关模组 - 这些不包含任何与规则集相关的 JSON 文件,而是包含其他效果。视听模组(包括地形集、单位集和 UI 皮肤)和地图模组属于这一类别。
不推荐在手机上创建和编辑模组 - 使用桌面设备要容易得多!
模组名称
模组需要符合 GitHub 仓库命名规则,但最好保持简单,只使用字母、数字和连字符 -。 连字符会在 Unciv 中显示和使用时自动转换为空格。
许多标点符号或扩展 Unicode 字符可能可以工作,但充其量潜在用户不会觉得它们有吸引力,最坏的情况是当你遇到问题时我们会拒绝支持 😈
模组组件
模组位于 /mods 目录中,在 Desktop 上应该在你的 .jar 文件旁边。
模组通常有 2 个子文件夹:
jsons- 在这里你应该放置修改游戏对象数据的文件,文件顺序与基础 JSON 文件相同。关于这些文件的更多信息可以在这里找到Images- 在这里你应该放置游戏图像,如基础图像文件中所示
要从游戏中删除对象,你需要在 /jsons 子文件夹中创建一个 ModOptions 文件 - 这里有一个示例。
基础规则集模组是"从头开始"的模组 - 所有原始对象都被删除,只使用相关模组的对象。
这是通过在你的 modOptions 文件中添加 "isBaseRuleset":true 配置来完成的,像这样。
视听组件
除了更改规则 - 或者甚至不这样做 - 模组可以覆盖现有的图形或声音,或添加音乐曲目。有关详细信息,请参阅视听模组。
自定义地形集和单位集是这些的一个子组 - 请参阅创建自定义地形集 - UI 皮肤模组也是如此,请参阅创建 UI 皮肤。
此类模组是模组管理屏幕上可用的"永久视听模组"开关的候选者,请参阅永久视听模组。
图像需要在使用之前"打包",桌面版本可以为你完成。请务必阅读纹理图集章节!
向模组添加地图
你还可以向模组添加地图,以便下载你模组的玩家可以使用它们。
如果你只想分享你的地图,模组也可以只包含地图。
在地图编辑器中完成地图制作后,保存它,它将在游戏的 /maps 文件夹中。
将其复制到模组中的 /maps 文件夹,就完成了!
翻译
就像 Unciv 本身一样,模组可以翻译为核心 Unciv 支持的任何或所有语言。
有关详细信息,请参阅翻译生成 - 针对模组制作者。
发布你的模组
为了使你的模组可以被任何人下载,你需要创建一个 GitHub 仓库(说明在这里)
Images 和 jsons 文件夹需要位于仓库的根目录中 - 这里有一个示例。
然后你可以从 Unciv 的模组管理器中手动下载模组:
- 从 Unciv 的主屏幕,点击"Mods"
- 点击"Download mod from URL",并输入你的 GitHub 页面的位置
- 游戏将自动下载并解压你的模组,它就可以使用了!
一旦你测试了你的模组可以被下载,并且下载后工作良好,你就准备好进入最后阶段 - 自动将其提供给用户。
为此,你需要做的就是:
- 进入你的 GitHub 页面
- 点击 About 旁边的齿轮图标(页面右上角)
- 在'Topics'中,添加"unciv-mod"
你可以选择添加以下一个或多个主题来将你的模组标记为属于特定类别:
unciv-mod-rulesets(用于基础规则集模组)unciv-mod-expansions(用于扩展原版规则集的模组 - 请使用这个,不要使用 unciv-mod-expansion)unciv-mod-graphics(用于修改图形的模组 - 图标、肖像、地形集)unciv-mod-audio(用于提供音乐或修改声音的模组)unciv-mod-maps(用于包含地图的模组)unciv-mod-fun(主要用于调整机制或其他游戏玩法的模组)unciv-mod-modsofmods(用于扩展另一个模组规则集的模组)
当你打开 Unciv 的模组管理器时,它将查询 GitHub 的具有该主题的仓库列表,现在你的仓库将出现在那里! 类别将作为注释出现在模组按钮上,用户可以对其进行过滤。它们不是游戏使用内容所必需的 - 例如,你仍然可以从缺少 unciv-mod-maps 主题的模组加载地图。 如果你想要新类别,github 会接受任何主题,但你必须要求 Unciv 团队在游戏中启用它们。
如果你认为应该有游戏中支持的其他主题,那么行动方案如下:
- 你可以根据自己的意愿向仓库添加主题,但要遵守 github 的条款,但如果你希望它们成为 Unciv 支持的,它们必须以"unciv-mod-"开头。
- 完成后,你可以:
- 等待至少一个版本,检查你的主题是否出现在 ModCategories.json 中,并为该文件打开更改 PR,删除"hidden"属性,告诉我们该主题为何有利于整个社区。
- 或者,打开一个问题,指向我们带有新主题的模组,要求我们为你执行上述操作,再次告诉我们原因。
从 GitHub 以外的来源加载模组
模组管理器有一个"Download mod from URL"按钮。作为模组消费者,你可以使用它从你信任的来源加载模组作为 zip 文件:用例包括开发中的模组,由于各种原因无法连接到 github 的客户端(例如防火墙、没有 IPv4 支持),或者作为在移动设备上加载自己模组的替代传输方式。
此下载器支持简单的重定向,但不支持需要身份验证或预设 Cookie 的托管商,或使用 javascript 或其他复杂性在浏览器中重新组装文件的托管商 - 一个简单的 http get 就足够了。
作为模组作者,你可能需要了解该按钮如何工作的一些细节。毕竟,它将缺乏一些通常可以从 github 获取的元数据 - 例如仓库名称、分支名称、发布标签。你的存储可能是替代的 git 平台,但除非我们编写显式支持,否则 Unciv 无法可靠地确定这些。因此请注意:
- 解包后的 zip 内容应该恰好包含一个子文件夹和该文件夹下的所有模组文件(以及
jsons或Images等模组文件夹),或者所有模组数据直接位于 zip 内容的顶层。 - 内容应该包括 Unciv 知道属于模组的大部分文件或文件夹。添加比实际有效负载文件更多的测试、注释、资产源或类似文件/文件夹将导致"Invalid Mod archive structure"消息,你的模组将不会被接受。这是在顶层模组上计算的,因此将所有额外文件移动到一个子文件夹应该在你接近该限制时起作用。请注意,名为"license"、"contribute.md"、"readme.md"或"credits.md"的文件确实算作"良好"内容。
- 最终模组名称将取自三个来源之一:下载链接路径的最后一部分、服务器发送的 content-disposition 标头(你可以直接在浏览器中下载链接时将其视为文件将保存的实际名称),或上面提到的第一个子文件夹。优先级是子文件夹 - 标头 - 路径,有一些罕见的例外(例如,当子文件夹名称包含在标头/路径名称中但更无聊时,或者在某些情况下典型的分支名称后缀会自动删除)。
- 因此,你所能做的最好的事情是在单个子文件夹下包含你的模组内容,并使用所需的模组名称(包括正确的大小写),或者如果你的平台使这变得困难,请确保下载的名称与你想在模组列表中显示的名称匹配(在所有情况下用连字符替换空格都是允许的,并且是推荐的)。
我有模组了,现在怎么办?
模组的主要用途是在开始新游戏或配置地图时添加它们。这意味着该特定游戏/地图将使用模组的规则集和图像。
对于主要是视觉或音频的模组,有第二种用途 - 通过模组管理器,你可以将它们启用为永久视听模组。这意味着模组的图像和/或声音将在游戏中的任何地方替换原始媒体,并且包含的音乐将可用 - 见这里。
手动加载模组的模组位置
通常,你应该永远不要手动加载你的模组 - 这不仅笨拙,而且更容易出错。除非你有非常具体的用例,否则你可能不应该这样做
加载模组时,它需要位于 /mods 中自己的文件夹中 - 这是你在编辑模组时的工作方式。
在 Android 上,你可以将它们复制到 Android/data/com.unciv.app/files/mods 目录中。
当应用启动时,它们将被自动复制到用户无法访问的 /data/data/com.unciv.app/files/mods 目录。
在 Chromebook 上,转到"Play files",应该在窗口左侧"My files"下的侧边栏上。点击窗口右上角"X"下方的三个垂直点。 如果"Show all Play folders"选项旁边没有勾选,请点击它。你应该会看到屏幕上出现一些新文件。现在导航到 Android/data/com.unciv.app/files/mods
其他
你可以通过添加"preview.jpg"或"preview.png"文件来添加将在模组管理屏幕中显示给用户的图像。
现有模组可以在这里找到!
接下来做什么?
现在你应该尝试创建你的第一个模组!
我们建议你从添加新文明作为模组开始,以掌握这个过程 😃