前言
群星从2016发布之初到现在,创意工坊里已经有了很多优秀的MOD。但玩来玩去,总感觉自己要么玩不明白,要么不对自己的胃口,所以我萌生出了自己制作MOD的想法。
可我找遍了B站和贴吧等地方,都很难找到完全面对小白的MOD开发教程,于是断断续续学习了大概半个月左右,也算是学会了一些皮毛,可以自己制作一些很简单的MOD。
我希望这篇文章可以帮助到和我一样想要自己DIY模组但却找不到详细的教程的模组小白。当然,我也只是刚开始学习而已,还有很多不足之处,如果出现错误,还请大佬指正。
画师:かもれーる PID:124179922
1:前期准备
子曰:“工欲善其事必先利其器。”在制作MOD之前,我们还需要相应的开发工具帮助我们更好的制作MOD。
下面是开发过程中我们需要用到的工具(任选其一):
Visual Studio Code ——简称VS Code,由巨硬爸爸开发的免费源代码编辑器,后续的教程都会在这个编辑器上进行,如果你对模组开发完全是小白的话,那么推荐用这个跟着教程一步一步做,别问为什么,因为咱只会这个。
链接:https://code.visualstudio.com
IntelliJ IDEA —— 由JetBrains软件公司开发的编辑器,咱不是很了解,除非你习惯使用这个编辑器,不然还是用VS Code跟着教程一步一步来吧。
链接:https://www.jetbrains.com/idea
下面是开发过程中我们可能会用到的参考资料:
官方WIKI —— P社官方的WIKI,里面涵盖了几乎所有的MOD开发教程以及游戏内容的详细资料,可惜大多数都是英文,咱看不懂啦。
链接:https://stellaris.paradoxwikis.com/Modding#Guidelines
中文灰机WIKI —— 中文的WIKI,非常方便我这种英语白痴。
链接:https://qunxing.huijiwiki.com/wiki/%E9%A6%96%E9%A1%B5
Stellaris Mod 教程 —— 国内的大大编写的MOD教程,对模组萌新非常有帮助。
链接:https://main--pdxdoc-next.netlify.app
1.1:下载编辑器(以VS Code为例)
第一步:下载安装VS Code
根据你的系统前往官网下载VS Code,我这里已经安装下载好了,就不一步一步演示了。(不会还有人不会下载安装软件吧?)
第二步:检查安装
安装完成后,进入到主界面,如果安装的步骤没有出错,你应该可以看到以下的界面:
第三步:安装CWTools拓展
在确认了软件没有问题后,我们还需要安装一个叫CWTools的拓展来方便我们编写代码。假如你不安装这个拓展的话,你就会发现这和用记事本编写代码好像差不多。
下面两张图是安装了拓展和没有安装拓展的对比图:
(安装了CWTools所显示的效果)
(没有安装CWTools所显示的效果)
可以发现,安装了CWTools所显示的效果要比没有安装看上去舒服了很多。
所以为了让我们的代码看上去更舒服,我们就必须要安装这个拓展,它可以帮助我们更方便的查看代码以及代码中存在的错误,除此在外它还有其它一些实用的功能.....总之,安装它就对了!(不安装它你还不如用记事本写代码呢.....)
我们可以直接在VS Code中安装它!
1:选择并点击屏幕左边那四个小方块的图标。
2:然后搜索并安装CWTools
第四步:验证CWTools是否正确安装
安装完CWTools以后,你可以随便打开一个游戏内的文件确认。当然,这个步骤并不是必须的,只是检查一下拓展是否正常安装了,你也可以直接在【拓展】里检查。
1:选择左上方的【文件】选项,然后点击【打开文件夹】
2:找到你《群星》游戏的根目录
如下图,我的游戏根目录在:
"E:\SteamLibrary\steamapps\common\Stellaris"
每个人的的游戏路径可能都不一样,就比如我是存放在E盘,有的人可能存放在D盘、F盘之类的......
但只要你是在Steam里下载的,那后面的路径就应该和我是一样的。
3:选择“common”文件夹
在游戏的根目录中找到“common”文件夹,然后点击【选择文件夹】按钮
这个文件夹在后面很重要,里面存放着游戏里所有内容的属性和数值之类的东西。不过现在你不需要知道这干嘛用的,教程的后面会逐个介绍的。
4:检查安装
如果以上步骤中没有出错的话,现在你在右侧【资源管理器】中随便点开哪一个文件,能看到代码以不同颜色高亮显示。
1.2:创建一个新MOD,并认识各个文件夹的作用
到了这一步,我们就可以正式开始制作我们想要的MOD了。
第一步:在启动器中新建一个MOD
1:在启动器中新建一个MOD
在Steam中启动你的游戏,进入到启动器界面,在【所有已安装的MOD】界面中选择【上传MOD】后再点击【创建MOD】
2:填写你MOD的信息
在该界面填上你MOD相应的信息,这里图方便,就直接叫“MOD001”了。
3:检查新创建的MOD
完成创建后你就能在已安装MOD中找到你刚刚创建的MOD了。
如上图所示,当你前往你新创建的MOD目录,你会发现它现在除了一个后缀为.MOD的文件外,什么也都没有。
所以我们需要进一步还完善它。
顺带一提,这个“descriptor.mod”文件是用来记录你MOD的各种信息的,就是你在上一步所填写的信息,你可以在VS Code里更改它。
第二步:简单认识每个文件的作用
当你打开你《群星》游戏的根目录时,你能看到这里存放着很多文件夹。
看着很复杂,对吧?
但事实上,以我们目前只是制作一个简单的小MOD为目标的话,下面这些文件夹中,只有以下这四个文件夹对我们真正有用。
下面,我将逐个介绍它们在游戏中的作用。
1:common文件夹
上面提到过,这个文件夹应该算是游戏中最重要的文件夹了。它包含了游戏中几乎所有内容的规则和数值。
以“电弧发射器”举例,下图中,红框内如能源消耗、花费、维护费、伤害等等属性都是在common文件夹中进行定义的。
当然,common还定义了“电弧发射器“的自身。可以说,common文件夹就是整个游戏的基础。
打开“common”文件夹后,你会发现其中还包括着很多的子文件夹,这些子文件分别定义了游戏中的不同的内容,如科技、武器、种族、建筑、行星、职业、国民理念等等内容。如果你英语很好的话,应该不难猜出它们的作用。
就比如说在下图中,用红框框出的这两个文件夹就分别定义了”AI对你的好感度“和“建筑”部分。
2:events文件夹
这个文件夹可以根据定义的条件规定游戏何时以及如何变化。
顾名思义,它定义了游戏中的事件和事件链还有一些其它内容。打比方说,你在游戏中你遇到的事件和选择事件后效果就是在这里进行定义。它可以完成很多在common中无法完成的事。
不过我还没有搞明白这一块的内容,所以就不多赘述了
3:gfx文件夹
gfx文件夹包含了游戏中所有的图形图像。
你在游戏中看到的所有图像图片就都储存在这里,比如种族肖像、图标、模型贴图之类的。
《群星》采用的大多数图像格式并不是常见的JPG或PNG格式,而是DDS格式,如果你想要在你的MOD中添加图片图像,就必须先将其处理为DDS格式。
4:localisation文件夹
localisation文件夹用于将游戏中的事件、菜单、武器、故事和任何其他文本字符串中呈现给玩家的实际文本。这个过程被称为“本地化MOD”
简单来说,就是要将你MOD中的字符串代码翻译为玩家所看到文字。
打开localisation文件夹,你会看到以下的子文件夹。
通常来说,我们只需要编写”simp_chinese“(也就是简体中文)这个文件夹里的内容就行了,除非你想要制作一款有着多种语言版本的MOD。
画师:花見棟楠 PID:116906546
2:制作你的第一个MOD!(以在原游戏添加一个物种特质为例)
到了这里,我们已经完成了制作一款MOD前所有的准备工作了,现在我们终于可以在MOD里添加一些自己想要的东西了。
现在,我想要为游戏中的物种添加一个新的特质。那么应该怎样做呢?
首先让我们了解一个物种特质需要含有哪些东西。
我们以原版游戏的【农民】特质为例。
可以看到,一个物种特质主要由以下内容组成:【文本】、【图标】、【消耗点数】、【产生效果】
知道了一个物种特质是由哪些部分组成的后,我们就可以开始接下来的工作了。
第一步:在Common文件夹中添加特质的属性和数值
1:打开创建好的MOD文件夹
打开VS Code后按顺序点击左上角的【文件】和【打开文件夹按钮】
然后选择你刚刚创建好了的MOD文件夹目录,通常情况下,按下列的路径寻找就能找到。
C:\文档\Paradox Interactive\Stellaris\mod
如果找不到可以在启动器里点选【在文件夹中显示】跳转到MOD目录。
在VS Code中选择你的MOD文件夹。
选择完成后,你就能看到在VS Code的左侧的【资源管理器】中找到该目录下的文件和文件夹。不过现在还什么也没有。
2:在MOD目录下新建“common”文件夹及其子文件夹
在你的MOD文件夹下新建一个“common”文件夹,再在该文件夹下再新建一个“traits”文件夹,再在这个文件夹下再新建一个名称为“XXX_traits“的TXT格式文件,这个"XXX"怎么命名都可以,但不可以是中文。
如下图,现在这个名为“ceshi_traits.txt”的文件应该是以下的路径:
MOD001\common\traits\ceshi_traits.txt
3:编写代码
最重要的一步来了,现在我们为这个特质需要编写代码。
在你的TXT文件输入以下代码:
trait_mod_superior_firepower = {
cost = 2
icon = "gfx/interface/icons/traits/trait_drake_scaled.dds"
allowed_archetypes = {
BIOLOGICAL
}
modifier = {
weapon_type_kinetic_weapon_damage_mult = 0.25
weapon_type_kinetic_weapon_fire_rate_mult = 0.25
weapon_type_energy_weapon_damage_mult = 0.25
weapon_type_energy_weapon_fire_rate_mult = 0.25
weapon_type_explosive_weapon_damage_mult = 0.25
weapon_type_explosive_weapon_fire_rate_mult = 0.25
army_attack_damage_mult = 0.75
army_collateral_damage_mult = 0.5
armies_energy_upkeep_mult = 0.75
ships_upkeep_mult = 0.75
}
}
看着很懵?那么问题来了,这些代码代表了什么意思呢?
不要着急,现在我将为这串代码加上注释,希望这有助于帮助你理解:
如果你想要修改”modifier块”下的内容,也就是改变该特质提供的效果,你可以通过下面的链接前往官方WIKI的“修饰符”条目查看。
链接:https://stellaris.paradoxwikis.com/Modifier_modding
注意!!!编写完代码后别忘了按下”Ctrl+S键“保存。
4:本地化
到了这一步,如果之前没有出错,那么现在这个物种特质应该会出现在游戏中了。是不是很简单?
如图,我们编写的这个特质已经出现在了选择列表之中:
到了这里,你可能会感到疑惑。
为什么显示的是代码字符串?而不是我们熟知的中文?
那是因为我们还没有进行上文提到的本地化这一操作。
同样的,我们在MOD目录下创建一个“localisation”文件夹,再在该文件夹下新建一个名称为“XXX_l_simp_chinese”的YML格式文件。由于我们只需要本地化为中文就行了,所以前面可以不用新建“simp_chinese”文件夹。
如下图,现在这个名为“ceshi_l_simp_chinese.yml”的文件应该是以下的路径:
MOD001\localisation\ceshi_l_simp_chinese.yml
新建好yml文件后,在其中输入以下代码:
l_simp_chinese:
trait_mod_superior_firepower: "优势火力学说"
trait_mod_superior_firepower_desc: "§L炮弹价廉,人命关天。§!\n"
mod_armies_energy_upkeep_mult: "陆军£energy£能量币维护费"
同样的,下面是代码的注释:
有关于本地化更多的内容,你可以通过下面的链接前往官方wiki的“本地化”条目查看。
https://stellaris.paradoxwikis.com/Localisation_modding#Overwriting_Vanilla_Text
更改完成后,进入游戏,你应该就能看到修改的效果了。
到了这里,你已经完整的做出了一个简单的MOD,虽然它的功能还很简单。但只要多加学习,相信你很快就能做出一个十分优秀的MOD了。
你也可以去创意工坊订阅一些大佬的MOD,然后对其进行“逆向工程”。相信我,这会对你的学习非常有帮助。
课后作业:
试着编写一个简单的物种特质MOD,要求要有一个负面特质和一个正面特质,评论区交作业。