前言
群星從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,要求要有一個負面特質和一個正面特質,評論區交作業。