模組製作(英文:Modding)或者製作模組,是修改基本遊戲(有時也叫「原版」)的行為。可能是用於個人用途,也可能是例如通過 steam創意工坊發佈給其他玩家。
在所有的P社遊戲中,鋼鐵雄心4的模組製作可以涵蓋很大的範圍。模組開發者們的動機可能各有不同:更好的語言翻譯和本地化,更多的事件或決議,更好的地圖,或是一次巨大的改造,等等。
默認情況下,MOD位於這些文件夾中:
- Windows:
C:\Users\<Username>\Documents\Paradox Interactive\Hearts of Iron IV\mod
- macOS:
~/Documents/Paradox Interactive/Hearts of Iron IV/mod
- Linux:
~/.local/share/Paradox Interactive/Hearts of Iron IV/mod
為了開始模組製作,你需要在模組文件夾下新建一個模組文件結構。
指導原則
- 永遠不要修改遊戲文件:即使是小的修改也要通過 mod 文件來實現,永遠不要直接修改 Steam 庫里的鋼鐵雄心 4 文件夾中的遊戲文件,因為你的改動可能在完全沒有警告的情況下失敗。
- 使用好的文本編輯器(例如 Notepad++ 或者 Sublime Text )來同時編輯和搜索多個文件。
- 儘量減少對原版文件的重寫:通過添加分開的文件並儘可能地從文件夾中加載來改善模組的兼容性和可維護性。(你的文件可以使用任何名字,文件夾中的所有文件都會被遊戲加載。所以選擇一個酷酷的其他人都沒有用過的文件夾名字。例如: coolmod_countries)
- 使用正確的合併工具:(例如 WinMerge )來 合併文件夾,並將新更新的文件打包為一個新補丁。
- 備份你的工作以避免丟失全部進度:考慮使用諸如 Git 一類的原始碼控制系統,還有類似於 GitHub 的協作平台來管理團隊協作的事情,或者就只是把文件的備份放在別的什麼地方。
- 使用 UTF-8 編碼編寫文本文件。
- 使用 UTF-8-BOM 編碼編寫 localisation 文件(.yml)。
- 正確地縮進以快速找到未對應的花括號:原版遊戲使用 1 個 tab 的縮進而不是空格。
- 使用注釋:用 # 符號注釋本行以更好地想起編寫難辦的代碼的邏輯。
- 通過使用Debug模式高效地Debug:通過在Steam的遊戲啟動選項中添加-debug。這樣可以啟用 error log。
- 或者也可以將dowser.exe文件新建一個快捷方式,並在快捷方式-屬性-目標欄里 加入 -debug(註:前有空格)
使用Debug的優點
- 自動加載 - 對mod文件夾內的文件的編輯會在遊戲中顯示出來,而不需要使用 "reload "控制台命令。這也會自動將文件中的錯誤添加到錯誤日誌中。但是,請注意,這隻適用於在會話中編輯的文件,而不是新創建的文件。
- 不會因地圖定義錯誤而使遊戲崩潰 - 如果地圖被編輯了,就有可能出現錯誤。任何與地圖有關的錯誤在加載時都會使遊戲崩潰,並顯示 "一些錯誤存在於地圖定義中並被記錄到error.log中"。但如果調試模式打開,遊戲將繼續正常加載。
- 擴展的錯誤日誌 - 某些錯誤不會被記錄在日誌中,除非調試模式被打開。一個例子是上面提到的地圖定義錯誤,因為遊戲在有機會記錄它們之前就崩潰了。啟用調試模式將確保所有可以記錄在錯誤日誌中的錯誤都能被記錄下來。
- 錯誤日誌打開的便利性 - 只要日誌中存在任何錯誤,日誌就會在加載遊戲時自動打開。在加載到一個國家後,點擊右下角的狗狗也能得到訪問日誌的機會,每次日誌中出現新的錯誤時這隻狗狗都會出現(因為文件會自動加載進去)。
- 方便的NUDGE!訪問 - 在調試模式打開後,主菜單中會出現一個打開NUDGE!的選項。這可以節省時間,最重要的是當你試圖加載到一個國家時遊戲崩潰了的時候能夠打開NUDGE!是非常有用的(因為此時已經無法在正式的遊戲中測試該國家了)。
- 更多省份信息 - 在調試模式下,將鼠標懸停在省份上會有額外的信息,包括它和它所在的國家的ID,所有者和控制器的標籤,等等。
- 更多的控制台命令 - 某些控制台命令只鎖定給開發者使用,調試模式允許玩家使用它們。
- 易於訪問GUI文件 - 當懸停在一個GUI元素上時,可以使用Ctrl+Alt+右鍵來打開一個調試菜單,這將允許進入定義該元素的GUI文件。
- 和平協議的自動保存 - 每次進入和談時,遊戲都會自動創建一個帶有調試功能的保存文件。
- 注意,如果你通過'debug'控制台命令打開debug模式,只有最後2個優點可以使用。如果通過啟動選項打開調試,所有的好處都將被授予。
模組結構
遊戲模組位於:
- 普通模組
\Paradox Interactive\Hearts of Iron IV\mod\
- 工坊模組:
\Steam\steamapps\workshop\content\394360\
.mod 文件的名字必須不包含任何空格,否則它將不會被遊戲啟動器自動選擇。
根據 .mod 文件的結構可以把模組分為三類,分別是小型模組,大型模組和次級模組。這些種類模組的總體結構將在下文中講述。模組是小型、大型還是次級模組取決於模組的製作者。
模組縮略圖
在新啟動器發佈之後,所有的縮略圖都必須被命名為「thumbnail.png」,並且應該放在你的模組的根目錄中。
小型模組
最常見的模組類型就是小型模組,即僅僅改變遊戲中的一小部分內容的模組。這種模組不需要新的存檔或者圖形文件,也不需要使用user_dir
和 replace_path
,以保持與其他小型模組的兼容性。
name = "Minor Mod" path = "mod/MinorMod" picture = "thumbnail.png" tags = { "Minor" "Mod" }
大型模組
大型模組可以典型地劃分為兩類——儘管可能並且時常重疊——大改過的模組和完全翻新的模組。
大改過的模組使用user_dir
來保證存檔不能在此模組之外加載。
對於完全翻新過的模組,replace_path
可以用來完全忽略原版遊戲的在此模組背景下不合理的內容(例如歷史、旗幟等)。
name = "Major Mod" path = "mod/MajorMod" user_dir = "MajorMod" replace_path = "history/states" picture = "thumbnail.png" tags = { "Major" "Mod" }
次級模組
一個大型模組的次級模組使用dependencies
以更精確地重寫主模組內容。如果想要讓次級模組正常運作這是必需的。
name = "Sub Mod" path = "mod/SubMod" dependencies = { "Major Mod" } picture = "thumbnail.png" tags = { "SubMod" "Major Mod" }
遊戲數據
- 控制台指令,對模組進行調試很有幫助。
- Defines,可以修改一些硬編碼的原版行為
- 作用域,條件還有指令被用來編寫腳本
- 修正用來影響遊戲中進行的計算
- Event_Modding用來定義帶有決議的彈出菜單
遊戲中物品的名稱(像是,研究類別的名稱或者像 can_create_faction 等規則)可以在遊戲的 localization 文件夾中的本地化文件中找到。
圖像文件格式
圖像應使用 DDS 格式。大多數文件是以 8.8.8.8 ARGB 32 位無符號格式保存的。一些文件(例如 leader 肖像)是 1.5.5.5 ARGB 16 位無符號格式保存的。事件圖片也可以使用 .tga 格式。旗幟是 32 位像素深度的 .tga 文件。
工具&實用程序
- Notepad++ - 強大的文件編輯器。
- Visual Studio Code - 功能和Notepad++類似,可以非常方便的編輯的文件文本內容和調整MOD文件夾結構,可安裝適用於HOI4mod製作的專用插件。
- WinMerge - 文件夾/文檔對比器。
- Paint.net - 十分精簡且方便的圖片編輯器,能夠修改HOI4常用的DDS格式圖片。
- P 社官方論壇的 mod 版面
- Maya exporter - Clausewitz Maya Exporter 創建你自己的 3D 模型。
- steam創意工坊 - 你可以和其他玩家分享作品的地方。
另見
- 模組
- 從製作模組開始 forum: 995985
- 如何在炮手就位中創建一種新的艦船 forum: 1157324
- 如何添加新的兵種 - 一覽表 forum: 947435
參考
文檔 | 效果 • 條件 • 定義 • 修正 • 修正列表 • 作用域 • 本地化 • 行動 • Data structures (Flags, Event targets, Country tag aliases, Variables, Arrays) |
編寫腳本 | AI • AI focuses • Autonomous states • Balances of power • 劇本 • 建築 • Characters and traits • Cosmetic tags • 國家 • 師 • 決議 • 裝備 • 事件 • 內閣/民族精神 • 意識形態 • 國策 • 資源 • Scripted GUI • 科技 • 單位 |
地圖 | 地圖 • 地區 • 補給區域 • 戰略區域 |
圖形圖像 | 界面 • 圖形資產 • 實體 • 後特效 • 離子效果 • 字體 |
裝飾性 | 肖像 • 命名列表 • 音樂 • 音效 |
其他 | 控制台指令 • 故障排除 • 模組結構 • 成就代碼分析 |