Unciv模组制作教程01-模组介绍
写在前面
如果你有一定的英语水平,可以去看官网的模组制作教程https://yairm210.github.io/Unciv/Modders/Mods/
模组是英文module的音译词,故不再区分“模组”“mod”和“module”。
人们往往希望向Unciv中添加一些新东西,但很可惜的是,Unciv只理解代码而不能看懂自然语言,所以mod是Unciv作者团队为那些不擅长编程的人提供修改游戏内容的新方式。
Mod可以添加、替换和删除游戏的基本定义,比如单位(Unit)、国家(Nation)、建筑(Building)、改良(lmprovement)、资源(Resource)和地形(Terrain)。加载了这些mod的游戏会根据mod的定义来运行。
游戏只会识别现有的uniques,所以你不能增加新的uniques能力到国家Nation/Unit/Building等,只能与现有的东西进行交互。
Mod主要有三种类型:
扩展模组(Extension mods) - 它向基本规则集添加新的Nation/Unit/Building/Resource,可以添加到默认规则集中,也可以添加到基本规则集模组中。它易于制作,可能是初学者的一个不错的起点 - 比方说,创建一个新国家。
基本规则集模组(Base Ruleset mods) - 它替换整个现有的规则集 - 技术树、单位、策略、国家等 - 以提供与基础游戏完全不同的体验。这些通常需要相当多的工作,但可以提供全新的体验,因此是最受欢迎的。
其他类型的模组(Ruleset-agnostic mods) - 它不包含任何与规则集相关的json文件,而是包含其他内容。视听模组(包括Tileset/地块材质包、Unitset/单位材质包和UI皮肤)和地图模组都属于这一类别。
附:不建议在Android上创建和编辑mod - 使用Windows要容易得多!(Apple?游戏本体都不支持还提它干什么doge)
模组昵称
众所周知,Unciv模组的官方发布平台是Github,因此模组名称需要符合GitHub仓库命名规则(自行搜索了解),同时也要保证简洁性,只使用字母、数字和破折号(-)。在Unciv中显示和使用时,破折号会自动转换为空格。许多标点符号或扩展的Unicode字符也可能有效,但也仅仅是可能有效,很多时候会因为格式转化变成乱码。
模组文件的结构
mods文件夹位于Desktop的/mods目录中,应该紧邻您的jar文件,如图。

1个模组文件夹通常包含2个子文件夹:
jsons - 在此文件夹中放置文件,这些文件会改变游戏对象的数据,文件的顺序与基础json文件中的顺序相同。详情见---(写完教程全集后补上链接)
Images - 在此文件夹中放置游戏图像(png格式)。

为了从游戏中删除对象,您需要在/jsons子文件夹中创建一个ModOptions.json文件。详情见---(写完教程全集后补上链接)
基本规则集模组是“从头开始”的mod - 所有原始对象都被剔除,然而也只有原始对象被剔除。
上述过程是通过在您的ModOptions文件中添加一个{"isBaseRuleset":true}的配置来实现的。
图像与音效/音乐拓展
除了拓展原始规则集内容或新增规则集之外 - 或者根本不进行更改 - mod也可以覆盖现有的图形或声音,或添加音乐曲目。详情见---(写完教程全集后补上链接)
自定义Tileset和Unitset是这种模组的子集。详情见---(写完教程全集后补上链接)
这种mod可以通过Mod管理器上的“永久可见”开关来实现非装载时启用它。请注意,打开这个开关会让在安装这种mod以前启动的所有游戏也启用所选mod的图像或声音。
对于既更改规则又提供新的图像/声音内容的mod,“永久可见”功能只会让这个mod的图像/声音部分永久启用,而规则集部分仍然需要在新游戏选择该mod。

关于图像和atlas文件的一些信息
当在Desktop上运行模组时,所有图像在游戏启动时会被合并到一个新的大型图像文件中,该文件具有相应的文件,即game.png和game.atlas。
这意味着,如果你制作的模组是针对Unciv的Android版本(强烈不支持在Android上写模组!)的,则无法生成这些图像文件-你务必找到某个方式来在Windows上运行模组来获取上一段提及的game.png和game.atlas。
对于图像显示器来说,单个图像并不重要-只有组合的图像才会加载到游戏中,因此你需要将它们包含在您的Github存储库中并随时更新它们。
实际上省略原始图像(即在发布时省略Images文件夹)对分享游玩来说是可行的,但仍然建议保留Images文件夹,以便Unciv底层开发者访问。
图像极其密集的mod
如果你制作的mod包含大量小图像(或少量大图像),这些图片可能会“溢出”到其他图片".png"文件中-单个图片的像素最大值为2048x2048。
图像过多对性能不利,这就是为什么游戏内置规则集会控制一些类型的图像组合成一个图片文件(也就是图集)。
对于mod,若创建一个不止一个Images文件夹,而是创建多个,那么请把其中额外的文件夹命名为“Images.xyz”,其中xyz将成为附加图片文件的文件名(不要同时使用Images和Images.game,这会发生冲突)。
为了尽可能避免图像显示器反复开关(这会浪费性能),请尽量按游戏中的使用情况对它们进行分组。你可以按文件夹进行分组,当然,在好几个“Images.xyz”文件夹下拥有相同名称的子文件夹并在它们之间分组图像也能凑效。
往mod中添加地图
你可以向mod中添加地图,这样下载你的mod的玩家就可以使用这些地图。
如果你只想分享您的地图,那么mod也可以仅包含地图。
当你在地图编辑器中完成您的地图时,保存它,它将被保存在你游戏的/maps文件夹中。

将它复制到你的mod的/maps文件夹中,就完成了!


如果你没有要求你的模组能够在游戏内置模组界面搜索下载的意愿,请忽略“发布你的mod”这一章节。
发布你的mod
为了使任何人都可以下载你的mod,你需要创建一个Github仓库(说明在这里)
Images和jsons文件夹需要放在仓库的根目录中-例如,可以查看Create a repo - GitHub Docs
然后你可以手动从Unciv的Mod管理器中下载mod:
从Unciv的主屏幕点击“模组”按钮
点击“从URL下载mod”,并输入你的Github页面位置
游戏将自动下载并解压你的mod,它就可以使用了!
一旦你已经测试过你的mod可以被下载,并且一旦下载就可以正常运行,那么你就可以进入最后阶段-让其他人自动下载它。
要做到这一点,你所需要做的就是:
前往你的Github页面
点击页面右上角“关于”旁边的齿轮图标
在“topic”中添加“unciv-mod”


你也可以添加以下主题中的一个或多个来界定你的mod属性:
unciv-mod-rulesets(基本规则集mod)
unciv-mod-expansions(扩展mod - 请使用这个,而不是unciv-mod-expansion)
unciv-mod-graphics(修改图形的mod)
unciv-mod-audio(提供音乐或修改音效的mod)
unciv-mod-maps(包含地图的mod)
unciv-mod-fun(趣味性或者恶搞性的mod)
unciv-mod-modsofmods(扩展另一个mod的mod)
当你打开Unciv的Mod管理器时,它将查询Github上带有该主题的仓库列表,现在你的仓库将出现在那里。这些属性将作为mod按钮上的注释出现,玩家可以根据它们进行过滤。而游戏不需要这些属性来加载内容-例如,你仍然可以从缺少unciv-mod-maps属性的mod中加载地图。如果您想要新的类别,Github会接受任何主题,但你需要问Unciv作者团队是否在游戏中启用它们。
如果你觉得游戏中应该支持其他属性,那么可以采取以下步骤:
你可以按照Github的规定向您的仓库中添加属性,但是如果您希望它们成为Unciv支持的属性,它们必须以“unciv-mod-”开头。
一旦完成,您可以选择:
等待至少一个版本更新,检查您的主题是否出现在ModCategories.json中,并为此文件打开一个更改拉取请求,删除“hidden”属性,并确切说明该主题对整个社区有益的原因。
或者,向我们提交一个指向你的带有新属性的mod的提案,请求我们为您执行上述操作,并再次告诉我们原因。
我已经制作好一个mod了,然后该怎么办?
mod的主要用途是在启动新游戏或配置地图时添加它们。这意味着mod的规则集和图像都将在特定游戏/地图中使用。
对于以图像和声音为主的mod,还有第二种用途-通过mod管理器,您可以将它们设置为永久可见。这意味着mod中的图像和声音将替换游戏中的原始媒体,并且包含的音乐也可以在游戏内欣赏。详情见---(写完教程全集后补上链接)
如何手动加载mod
手动加载mod是不合适的 - 这不仅不流畅,而且更容易出错。除非你有非常特殊的用处,不然不应该这样做。
在Android中,它们应该进入Android/data/com.unciv.app/files/mods目录。
在Chromebook中,转到“Play文件”,应该在窗口左侧的侧边栏下“我的文件”中。点击窗口底部3个垂直点,在右上角。如果选项“显示所有Play文件夹”旁边没有复选标记,请单击它。你应该会在屏幕上看到一些新文件。然后就导航到Android/data/com.unciv.app/files/mods。
加载mod时,它需要位于/mods文件夹中自己的文件夹中-这是编辑mod时你务必使用的方式。
补充说明
你可以通过添加“preview.jpg”或“preview.png”文件,让玩家在Mod管理器中看到你添加的图像。
接下来该怎么办?
现在你可以创建你的第一个mod!
建议你从添加新国家作为mod开始,来熟悉这个过程。

