《文明6》官方工具製作MOD教程 零基礎做MOD

工具下載:點擊進入

基礎知識與xml文件語法規則

教程為基礎教程,即零基礎的玩家也可做出mod的教程,大家共同學習,爭取發布更多更好更有創意的作品。也歡迎大家分享自己的創意。PS,使用他人創意製作mod時,請表明創意作者。

首先,從steam平台上下載官方開放工具,一般我們只要tools那個就好了。

首先你打開開發工具,看到的是這樣一個界面,第一個是編輯代碼和添加各種媒體文件的(這些文件需要你自己下另一個開發工具或者使用其他軟體進行編輯)。第二個選項是上傳和更新mod到創意工坊的。中國區玩家可以不用掛VPN上傳,上傳會有一定的延遲,請耐心等待。

《文明6》官方工具製作MOD教程 零基礎做MOD

然後點擊第一個,如果你是第一次使用,它會提示你安裝VS2013(文明六專屬版,免費)一路確認,安裝完成後會自動打開,以後每次點擊上圖第一個選項就會直接打開這個編輯器。

如果你以前用過VS或者其他IDE一定會對這個界面很熟悉,如果你從來每接觸過,可能看到滿螢幕的英文直接懵比了(英語十一級的大佬當我沒說)。不要緊,我們從頭開始學習如何製作一個mod。

首先,我們新建一個mod。

我們可以直接點擊NEW mod或者左上角FILE >new> project來創建一個新MOD。

這里為我們提供了五個模版,分別是新建築、新領袖和文明(也可以用這個模版創建城邦)、新的政策、新的信條或者信仰、新的單位(包括工人,輔助單位,宗教單位,士兵,海陸空所有能動的東西)。我們從最簡單的政策來入手學習。

《文明6》官方工具製作MOD教程 零基礎做MOD

首先選中政策選項,然後在Name後的輸入框內輸入mod名字,請使用英文(漢語拼音也可以)名字中不要出現空格,盡量不要用字符。在Locations後輸入保存路徑(可以點browse選擇)。這一切完成後,點擊OK即可。

然後VS會自動生成一套模版,並默認打開一個HTML頁面,這是官方關於如何製作,構建,上傳mod的提升,這里給大家翻譯一下(英語渣,翻譯錯的輕噴。)

《文明6》官方工具製作MOD教程 零基礎做MOD

開始項目

恭喜你,你已經完成了製作文明6mod的第一步,這些初始文件是一個完整解決方案,你可以使用它來完成你自己的mod。

入門

在你開始使用mod之前,你必須先構造它。為了構造mod,你可以點擊BUILD菜單的Build Solution選項,或者你也可以使用Ctrl+Shift+B快捷建來完成(如果你沒有更改默認設置的話)。你可以在/My Games/Sid Meier’s Civilization VI/Mods/找到這個mod(備注1:mod文件位置在:我的文檔/My Games/Sid Meier’s CivilizationVI/Mods/)。(備注2:這里指的是你已經完成了mod文件的編寫後生成mod。)

開始使用

首先,讓我們確認mod已經正確安裝,啟動文明六並選擇「額外內容」,到mod安裝目錄下,你現在應該能看到你的mod了,確認mod狀態為「啟用」。創建一個新游戲來享受你的成就吧!

接下來呢?

mod啟動文件包括對mod相關信息的描述,你可以雙擊這些文件在編輯器中打開,這會允許你修改它們。

如果你想在mod中新增文件,點擊Add->AddNew Item。

好吧,這個文件就是告訴你完成mod後怎麼用的,說的很詳細了,然而並沒有什麼用。

關閉這個文件並觀察一下政策mod文件的目錄結構。

除了我們剛才看到的html文件之外,還有四個xml文件,其中第一個ART那個不用我們更改,(其他類型的mod中一般也不用)我們要改的是下面的三個,它們依次是gameplay文件(包含了最主要的信息)icon(制定圖標,這里不需要我們自製圖標,如果你做的是文明或者單位等,需要你先用PS等軟體製作一個格式為DDS的圖標)text(對各國語言的翻譯,我們這里只要英語和漢語就夠了)。

首先我以我製作的一個簡單的小mod為例,來詳細為大家講解如何編寫代碼,希望大家能做到舉一反三。

我的設計是:新增政策,科舉制。解鎖人文科舉:歷史記錄。類型:經濟政策。效果:圖書館加2科舉和2文化,研究歌劇與芭蕾後淘汰。

我先簡單的介紹一下xml的語法規則。

一對稱之為標記(所有的標記都是官方規定的,你不能做任何形式的更改,編寫是注意標記的大小寫)。像我們可以叫它為GameDate標記(游戲數據)。

GameDate >這樣的代表當前標記結束,每個標記總是會跟著一個結束標記,這中間的部分我們稱之為一個區塊,像這樣。

《文明6》官方工具製作MOD教程 零基礎做MOD

這就是Types區塊,如果A標記處於B標記的區塊之內,我們稱A標記為B標記的子標記,像上圖的Row標記就是Types標記的子標記。

細心的同學可能會發現中間有個特殊的標記Row,它是這樣的。

它有兩個屬性即Type和Kind,這兩個屬性的值分別是POLICY_IMPERIAL_EXAMINATION和KIND_POLICY這兩個值就是游戲運行是會讀取的內容,也是我們要修改的內容。

其實這段完全可以寫成這樣。

《文明6》官方工具製作MOD教程 零基礎做MOD

它們的內容和效果是完全一樣的,前者是後者的省略寫法,其中,如果某個子標記的區塊中只含有值的話,我們可以把它當作其父標記的屬性,來寫在父標記的內部(而不是區塊內)

比如 POLICY_IMPERIAL_EXAMINATION可以寫成注意標記和父標記和屬性直間的空格和值的雙引號。而如果一個標記其區塊內沒有任何子標記或者所有的子標記都改寫成了屬性,那麼我們可以把結束標記省簡寫,變成在標記的最後加一個「/」如這樣。但是如果區塊內還有子標記(或者值),則必須加上這樣的結束標記。結束標記可以簡寫,但絕對不能省略。

一個XML文檔通常由頭和主標記組成的。

文件頭像這樣它表示這是一個xml文件,版本號為1.0,編碼格式為UTF-8(如果你以其它的格式進行保存,會出現中文亂碼,但不會影響文件運行),文件頭不需要我們做任何更改。

每個xml文件都會有一個主標記,它包含幾個子標記,而它的子標記又會包含其他的子標記,如此越分越細,直到能夠找到我們需要的值為止。它的結構如下圖。

《文明6》官方工具製作MOD教程 零基礎做MOD

另外像這樣。

《文明6》官方工具製作MOD教程 零基礎做MOD

在中的內容稱之為注釋,這些內容不會對程序產生任何影響,你可以寫一些東西來防止你忘記它們。

現在我們了解了xml文件的語法規則之後,我們就可以著手修改了。

修改教程

第一部分

《文明6》官方工具製作MOD教程 零基礎做MOD

Types這個標記定義了政策,所有的政策必須在這里出現一次才有效(事實上你在游戲中新增的任何內容都必須首先在types標記里聲明一下,只有這樣游戲才會讀取它)。

這里我給我的政策起名為POLICY_IMPERIAL_EXAMINATION你可以給你的政策按照這個格式來起名,比如POLICY_XXXXX_XXXXXX(如果你的政策名包含多個單詞,每個單詞之前用「_」隔開)注意所有字母都是大寫(其實如果你不按照這個格式來起名也可以,但看起來不標准,我建議大家用這個格式來起名字,哪怕只是漢語拼音)。後邊的kind屬性表示你定義的內容是什麼,這里我們用KIND_POLICY來表示這是一個政策,(KIND_UNIT表示單位等,還有好多,你可以在游戲的date文件夾下查看)。

第二部分

我們新聲明了一個政策,它叫POLICY_IMPERIAL_EXAMINATION,現在,我們需要在Policies標記下添加一些它的基本信息。

《文明6》官方工具製作MOD教程 零基礎做MOD

其中PolicyType屬性的值就是我們剛剛起的名字,Name和Description則是兩個新建的屬性,你可以同樣按照LOC_POLICY_xxxxx_xxxx_NAME和LOC_POLICY_xxxxx_xxxx_DESCRIPTION來給他們起名,這兩個值代表游戲中顯示的名字和描述的文本,會在後面的翻譯文件中使用。

PrereqCivic屬性代表的是它是由那個人文科技解鎖的,這里我選擇的是CIVIC_RECORDED_HISTORY(歷史記錄)代表科舉制是由歷史記錄這個科技解鎖的。(所有的人文科技都的名字都可以在date文件夾下的Civics文件中查看,如果你的英語不好,你可以對照文明六中文百科)。

GovernmentSlotType屬性表示的是這個政策屬於那種類型的政策。目前游戲一共有五種類型的政策:SLOT_ECONOMIC 經濟。

SLOT_MILITARY軍事

SLOT_DIPLOMATIC外交

SLOT_GREAT_PERSON偉人

SLOT_WILDCARD通用

你可以根據需求選擇,這里我選則的是經濟。

第三部分

這里指定的是失效政策,即什麼政策會使你當前的政策淘汰(可以不選,那麼你增加的政策就會永久生效)

因為我覺得進入工業時代後科舉制會失效,所以我選擇的是歌劇與芭蕾這個科技研發後當前政策被淘汰,那麼我在屬性里寫的是歌劇與芭蕾下的一個政策即大歌劇(注意是科技下的一個政策使你的政策淘汰,而不是科技本身)

《文明6》官方工具製作MOD教程 零基礎做MOD

同樣的PolicyType後邊跟的是你的名字,而ObsoletePolicy則是淘汰你的政策的政策的名字,同樣的,游戲自帶政策的名字可以在date文件夾下的policies文件查看

第四部分

這里我把這兩個標記區塊放到一起來講,因為它們的關系很緊密。

第一個區塊PolicyModifiers定義了政策加成的名字,注意的是一次加成就應當定義一次,比如我的設計,加2文化和2科技,其實它是兩個加成效果,所有我把它們分成兩部分來寫,即

PolicyType屬性就是政策的名字,ModifierId就是加成效果的名字。

這兩個效果前者我起名為POLICY_IMPERIAL_EXAMINATION_MODIFIER,負責增加科技,後者起名為POLICY_IMPERIAL_EXAMINATION_MODIFIER_CULTURE負責增加文化。

這個名字是你自己起的,注意遵循官方格式。

第二個Modifiers區塊定義了加成目標的類型,像這樣。

其中ModifierId是你剛剛起的加成效果的名字,而ModifierType屬性的值則是官方定義好的,它在date文件夾下的Modifiers文件中,這里定義了上百種加成方式,你可以根據你的需要來選擇一種。這里我選擇的是建築加成。(圖書館屬於建築)

《文明6》官方工具製作MOD教程 零基礎做MOD

第五部分

這部分就是對效果的實際定義了,像這樣。

《文明6》官方工具製作MOD教程 零基礎做MOD

一個完整的加成效果由兩到三個不等的標記組成,比如圖書館加2科技這個效果,就可以這麼寫(我們之前已經定義過加成類型為建築加成了,這一點請不要忘記)。

這三句話的含義分別是

第一句,定義了受到加成的類型為建築,建築是圖書館。

其中Name的屬性是收到加成的類型,可以是建築或者商路,或者城區,也可以是地塊,地形,改良設施,當然單位也可以。具體的內容可以在date文件夾中查看。這里我選擇的是建築,即BuildingType(單位是UnitType,地形是TerrainType等等),value的屬性就是具體的那一個建築了,建築的名字可以在date的building文件中查看,這里我選擇的是BUILDING_LIBRARY(圖書館)

第二句。定義了加成點數的類型,

其中Name屬性我選的是點數加成(其他的還有視野加成,移動力加成,甚至有巨作和遺物加成)

而value屬性後邊的值同樣可以在date文件夾下查看,這里我選擇的是YIELD_SCIENCE(科技值)

第三句:就是具體加成多少點了

Name屬性的值Amount代表點數,你可以寫一個數字,比如2,代表加成2點,3就是三點咯。

但如果你寫一百,那將意味著100%的加成,而不是增加100點(這其中的規律我也暫時沒搞懂,等我慢慢研究吧)

這樣一個完整的加成效果就完成了,即圖書館加2科技值

另外一個加成效果同樣可以這樣做,我們只需要把科技改成文化即可。

更多更復雜的加成效果(比如加視野,商路加金幣,發現奇觀加遺物,甚至於發現奇觀加金幣,你都可以仿照date文件加下的一些文件中的內容製作,幾乎能滿足你的任何需求)

下一個文件是ICON文件,這個文件指定了政策所用圖標(即黃卡,紅卡等等)

《文明6》官方工具製作MOD教程 零基礎做MOD

你只需把Name屬性改成你ICON_POLICY_xxxx_xxxx後邊的Atlas是具體的圖標

ICON_ATLAS_ECONOMIC經濟

ICON_ATLAS_MILITARY軍事

ICON_ATLAS_DIPLOMATIC外交

ICON_ATLAS_PERSON偉人

ICON_ATLAS_WILDCARD通用

按照你的需求改,這里我改成經濟

拓展:因為政策的圖標每一類都是相同的,所以可以這樣指定,但如果是文明或者領袖的圖標,就需要你自己製作了,你需要用PS等軟體製作一個DDS圖標,因為比較復雜,這里我就不詳細敘述了,有需要的可以上網上搜索一下。

特別指出的是,通過觀察相關文件發現。城邦圖標實際上是有三個部分組成的,即底色,背景,和絲帶(logo)。底色,即城邦類型底色,像是宗教城邦都是白色的。背景是由幾個大小不同的圖片渲染完成的,它們完成了城邦圖標的顏色渲染。絲帶就是白色的logo,需要單獨在ICON.xml文件中指定

最後一個文件,text文件是用來翻譯成各國語言的,我建議大家只需要翻譯英語和漢語即可

你可以按照這種格式來翻譯

《文明6》官方工具製作MOD教程 零基礎做MOD

其中Tag是你要翻譯的詞條,還記得我們在gameplay文件中定義的NAME和DESCRIPTION嗎,這里我們要寫出它們的具體內容,Language屬性就是目標語言(一些特殊的語言有不同的翻譯格式,比如西班牙語,但我猜你們用不上吧)

en_US代表美式英語,漢語像這樣

《文明6》官方工具製作MOD教程 零基礎做MOD

需要指出的是,英式英語翻譯格式跟其它語言也不同,但我們一般用美式英語就夠了

我建議大家能認真的翻譯英語,這樣能讓外國人也看懂你的MOD。一些大型的復雜的MOD需要翻譯的內容會更多,基本上結尾帶NAME的和DESCRIPTION都需要進行翻譯。

構造mod與上傳

文本翻譯文件也完成了,下一步就是構造mod了,點擊菜單欄上方BUILD>Build Solution如圖,如果出現錯誤,就會在下面的框格中顯示出來,如圖

《文明6》官方工具製作MOD教程 零基礎做MOD

Error:

Error: Parameter “escapedValue” cannot be null.

========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

這里表示出現一個錯誤,錯誤為

Error: Parameter “escapedValue” cannot be null.屬性escapedValue的值不能為空,找到並更正錯誤,知道BUILD後出現

========== Build: 0 succeeded or up-to-date, 0 failed, 0 skipped ==========為止

這時,我們就可以在:我的文檔/My Games/Sid Meier’s CivilizationVI/Mods/文件夾下找到這個mod了,看一看好像能用,

嗯,大功告成了嗎?

我們注意到,如果我們加載這個mod,他的名字和描述都依然是默認的EXAMPLE 並不是我們想要的,所以我們要修改modinfo文件,首先我們要修改的內容如下圖

《文明6》官方工具製作MOD教程 零基礎做MOD

NAME就是你要顯示的名字,你可以直接在這里寫中文,但我推薦在這里起個名字後按照我之前的方式在text.xml里進行翻譯,當然,只在這里用英文而不翻譯也是可以的。

下邊的兩個同理,即調節效果和描述,你也可以在text里進行翻譯或者直接使用英文。

除了這些,你還可以在Properties標記里增添一些子標記來實現一些功能比如

《文明6》官方工具製作MOD教程 零基礎做MOD

上邊的是作者。你可以寫上你自己的名字。

下邊的那個代表是否在游戲啟動的時候加載mod如果值是1,則默認加載(第一次加載mod要很長時間,開始時加載過多mod也需要較長時間,自己取捨)如果是0,則默認不加載,需手動在額外內容里開啟。

當這些都完成後,我們才是真的大功告成了。現在,你可以把你的mod上傳到創意工坊了。

使用官方SDK的第二個選項(steam……),打開上傳更新工具。點擊begin,在接下來的界面你可以看到你已經上傳的mod,你可以選擇更新mod或者上傳新的mod。這里我們選擇Upload來上傳一個新的mod

下面的菜單選擇你的MOD所在文件夾,定位到modinfo,其他文件會自動加載。

點擊NEXT,出現如下界面

《文明6》官方工具製作MOD教程 零基礎做MOD

左側是標題和描述,右側從上到下依次是,在創意工坊中顯示的圖片(點擊select image可選擇本地文件),Visibility代表可見度,依次是public 公friends only僅朋友可見private僅自己可見

Tags代表你要投到那個分區。這些都是可以在創意工坊中進行二次修改的。

點擊NEXT,等待上傳完成,這里有點小慢,請耐心等待。

如果你後期需要對mod進行更新,選擇mod後選更新選項,其過程與上傳是一樣的。

基礎教程到這里差不多就要結束了,樓主在外地,自己電腦不再身邊,今天實在網吧完成的。期間還經歷了一次重啟。有時間我會發一些進階的教程(我估計短時間內是不可能了)。不過按照我的基礎教程和官方示例,應該可以做一些簡單的mod了,希望能在創意工坊里看到大家的內容。

來源:文明6吧

guest
0 Comments
Inline Feedbacks
View all comments