《文明6》中的MOD是非常好玩的,很多玩家都嘗試的自己做MOD,今天就為大家?guī)砹宋拿?官方工具制作MOD教程,絕對從零開始教你制作MOD,零基礎的都可以學會,還等什么?趕緊開啟自己的MOD之旅吧。
基礎知識與xml文件語法規(guī)則
教程為基礎教程,即零基礎的玩家也可做出mod的教程,大家共同學習,爭取發(fā)布更多更好更有創(chuàng)意的作品。也歡迎大家分享自己的創(chuàng)意。PS,使用他人創(chuàng)意制作mod時,請表明創(chuàng)意作者。
首先,從steam平臺上下載官方開放工具,一般我們只要tools那個就好了。
首先你打開開發(fā)工具,看到的是這樣一個界面,第一個是編輯代碼和添加各種媒體文件的(這些文件需要你自己下另一個開發(fā)工具或者使用其他軟件進行編輯)。第二個選項是上傳和更新mod到創(chuàng)意工坊的。中國區(qū)玩家可以不用掛VPN上傳,上傳會有一定的延遲,請耐心等待。
然后點擊第一個,如果你是第一次使用,它會提示你安裝VS2013(文明六專屬版,免費)一路確認,安裝完成后會自動打開,以后每次點擊上圖第一個選項就會直接打開這個編輯器。
如果你以前用過VS或者其他IDE一定會對這個界面很熟悉,如果你從來每接觸過,可能看到滿屏幕的英文直接懵比了(英語十一級的大佬當我沒說)。不要緊,我們從頭開始學習如何制作一個mod。
首先,我們新建一個mod。
我們可以直接點擊NEW mod或者左上角FILE >new> project來創(chuàng)建一個新MOD。
這里為我們提供了五個模版,分別是新建筑、新領袖和文明(也可以用這個模版創(chuàng)建城邦)、新的政策、新的信條或者信仰、新的單位(包括工人,輔助單位,宗教單位,士兵,海陸空所有能動的東西)。我們從最簡單的政策來入手學習。
首先選中政策選項,然后在Name后的輸入框內輸入mod名字,請使用英文(漢語拼音也可以)名字中不要出現空格,盡量不要用字符。在Locations后輸入保存路徑(可以點browse選擇)。這一切完成后,點擊OK即可。
然后VS會自動生成一套模版,并默認打開一個HTML頁面,這是官方關于如何制作,構建,上傳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狀態(tài)為“啟用”。創(chuàng)建一個新游戲來享受你的成就吧!
接下來呢?
mod啟動文件包括對mod相關信息的描述,你可以雙擊這些文件在編輯器中打開,這會允許你修改它們。
如果你想在mod中新增文件,點擊Add->AddNew Item。
好吧,這個文件就是告訴你完成mod后怎么用的,說的很詳細了,然而并沒有什么用。
關閉這個文件并觀察一下政策mod文件的目錄結構。
除了我們剛才看到的html文件之外,還有四個xml文件,其中第一個ART那個不用我們更改,(其他類型的mod中一般也不用)我們要改的是下面的三個,它們依次是gameplay文件(包含了最主要的信息)icon(制定圖標,這里不需要我們自制圖標,如果你做的是文明或者單位等,需要你先用PS等軟件制作一個格式為DDS的圖標)text(對各國語言的翻譯,我們這里只要英語和漢語就夠了)。
首先我以我制作的一個簡單的小mod為例,來詳細為大家講解如何編寫代碼,希望大家能做到舉一反三。
我的設計是:新增政策,科舉制。解鎖人文科舉:歷史記錄。類型:經濟政策。效果:圖書館加2科舉和2文化,研究歌劇與芭蕾后淘汰。
我先簡單的介紹一下xml的語法規(guī)則。
一對<>稱之為標記(所有的標記都是官方規(guī)定的,你不能做任何形式的更改,編寫是注意標記的大小寫)。像<GameDate>我們可以叫它為GameDate標記(游戲數據)。
</ GameDate >這樣的代表當前標記結束,每個標記總是會跟著一個結束標記,這中間的部分我們稱之為一個區(qū)塊,像這樣。
這就是Types區(qū)塊,如果A標記處于B標記的區(qū)塊之內,我們稱A標記為B標記的子標記,像上圖的Row標記就是Types標記的子標記。
細心的同學可能會發(fā)現中間有個特殊的標記Row,它是這樣的。
<Row Type="POLICY_IMPERIAL_EXAMINATION" Kind="KIND_POLICY" />
它有兩個屬性即Type和Kind,這兩個屬性的值分別是POLICY_IMPERIAL_EXAMINATION和KIND_POLICY這兩個值就是游戲運行是會讀取的內容,也是我們要修改的內容。
其實這段完全可以寫成這樣。
它們的內容和效果是完全一樣的,前者是后者的省略寫法,其中,如果某個子標記的區(qū)塊中只含有值的話,我們可以把它當作其父標記的屬性,來寫在父標記的<>內部(而不是區(qū)塊內)
比如<Type> POLICY_IMPERIAL_EXAMINATION</Type>可以寫成<Row Type="POLICY_IMPERIAL_EXAMINATION" />注意標記和父標記和屬性直間的空格和值的雙引號。而如果一個標記其區(qū)塊內沒有任何子標記或者所有的子標記都改寫成了屬性,那么我們可以把結束標記省簡寫,變成在標記的最后加一個“/”如<Row Type="POLICY_IMPERIAL_EXAMINATION" Kind="KIND_POLICY" />這樣。但是如果區(qū)塊內還有子標記(或者值),則必須加上</Row>這樣的結束標記。結束標記可以簡寫,但絕對不能省略。
一個XML文檔通常由頭和主標記組成的。
文件頭像這樣<?xml version="1.0" encoding="utf-8"?>它表示這是一個xml文件,版本號為1.0,編碼格式為UTF-8(如果你以其它的格式進行保存,會出現中文亂碼,但不會影響文件運行),文件頭不需要我們做任何更改。
每個xml文件都會有一個主標記,它包含幾個子標記,而它的子標記又會包含其他的子標記,如此越分越細,直到能夠找到我們需要的值為止。它的結構如下圖。
另外像這樣。
在<!-- -->中的內容稱之為注釋,這些內容不會對程序產生任何影響,你可以寫一些東西來防止你忘記它們。
現在我們了解了xml文件的語法規(guī)則之后,我們就可以著手修改了。
修改教程
第一部分
Types這個標記定義了政策,所有的政策必須在這里出現一次才有效(事實上你在游戲中新增的任何內容都必須首先在types標記里聲明一下,只有這樣游戲才會讀取它)。
這里我給我的政策起名為POLICY_IMPERIAL_EXAMINATION你可以給你的政策按照這個格式來起名,比如POLICY_XXXXX_XXXXXX(如果你的政策名包含多個單詞,每個單詞之前用“_”隔開)注意所有字母都是大寫(其實如果你不按照這個格式來起名也可以,但看起來不標準,我建議大家用這個格式來起名字,哪怕只是漢語拼音)。后邊的kind屬性表示你定義的內容是什么,這里我們用KIND_POLICY來表示這是一個政策,(KIND_UNIT表示單位等,還有好多,你可以在游戲的date文件夾下查看)。
第二部分
我們新聲明了一個政策,它叫POLICY_IMPERIAL_EXAMINATION,現在,我們需要在Policies標記下添加一些它的基本信息。
其中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通用
你可以根據需求選擇,這里我選則的是經濟。
第三部分
這里指定的是失效政策,即什么政策會使你當前的政策淘汰(可以不選,那么你增加的政策就會永久生效)
因為我覺得進入工業(yè)時代后科舉制會失效,所以我選擇的是歌劇與芭蕾這個科技研發(fā)后當前政策被淘汰,那么我在屬性里寫的是歌劇與芭蕾下的一個政策即大歌劇(注意是科技下的一個政策使你的政策淘汰,而不是科技本身)
同樣的PolicyType后邊跟的是你的名字,而ObsoletePolicy則是淘汰你的政策的政策的名字,同樣的,游戲自帶政策的名字可以在date文件夾下的policies文件查看
第四部分
這里我把這兩個標記區(qū)塊放到一起來講,因為它們的關系很緊密。
第一個區(qū)塊PolicyModifiers定義了政策加成的名字,注意的是一次加成就應當定義一次,比如我的設計,加2文化和2科技,其實它是兩個加成效果,所有我把它們分成兩部分來寫,即
<RowPolicyType="POLICY_IMPERIAL_EXAMINATION"ModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"/>和<RowPolicyType="POLICY_IMPERIAL_EXAMINATION"ModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER_CULTURE"/>
PolicyType屬性就是政策的名字,ModifierId就是加成效果的名字。
這兩個效果前者我起名為POLICY_IMPERIAL_EXAMINATION_MODIFIER,負責增加科技,后者起名為POLICY_IMPERIAL_EXAMINATION_MODIFIER_CULTURE負責增加文化。
這個名字是你自己起的,注意遵循官方格式。
第二個Modifiers區(qū)塊定義了加成目標的類型,像這樣。
<RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"ModifierType="MODIFIER_PLAYER_CITIES_ADJUST_BUILDING_YIELD_MODIFIER"/>
其中ModifierId是你剛剛起的加成效果的名字,而ModifierType屬性的值則是官方定義好的,它在date文件夾下的Modifiers文件中,這里定義了上百種加成方式,你可以根據你的需要來選擇一種。這里我選擇的是建筑加成。(圖書館屬于建筑)
第五部分
這部分就是對效果的實際定義了,像這樣。
一個完整的加成效果由兩到三個不等的標記組成,比如圖書館加2科技這個效果,就可以這么寫(我們之前已經定義過加成類型為建筑加成了,這一點請不要忘記)。
<RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="BuildingType" Value="BUILDING_LIBRARY" />
<RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER" Name="YieldType"Value="YIELD_SCIENCE" />
<RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="Amount" Value="2" />
這三句話的含義分別是
第一句,定義了受到加成的類型為建筑,建筑是圖書館。
其中Name的屬性是收到加成的類型,可以是建筑或者商路,或者城區(qū),也可以是地塊,地形,改良設施,當然單位也可以。具體的內容可以在date文件夾中查看。這里我選擇的是建筑,即BuildingType(單位是UnitType,地形是TerrainType等等),value的屬性就是具體的那一個建筑了,建筑的名字可以在date的building文件中查看,這里我選擇的是BUILDING_LIBRARY(圖書館)
第二句。定義了加成點數的類型,
<RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="YieldType" Value="YIELD_SCIENCE"/>
其中Name屬性我選的是點數加成(其他的還有視野加成,移動力加成,甚至有巨作和遺物加成)
而value屬性后邊的值同樣可以在date文件夾下查看,這里我選擇的是YIELD_SCIENCE(科技值)
第三句:就是具體加成多少點了
<RowModifierId="POLICY_IMPERIAL_EXAMINATION_MODIFIER"Name="Amount" Value="2" />
Name屬性的值Amount代表點數,你可以寫一個數字,比如2,代表加成2點,3就是三點咯。
但如果你寫一百,那將意味著100%的加成,而不是增加100點(這其中的規(guī)律我也暫時沒搞懂,等我慢慢研究吧)
這樣一個完整的加成效果就完成了,即圖書館加2科技值
另外一個加成效果同樣可以這樣做,我們只需要把科技改成文化即可。
更多更復雜的加成效果(比如加視野,商路加金幣,發(fā)現奇觀加遺物,甚至于發(fā)現奇觀加金幣,你都可以仿照date文件加下的一些文件中的內容制作,幾乎能滿足你的任何需求)
下一個文件是ICON文件,這個文件指定了政策所用圖標(即黃卡,紅卡等等)
你只需把Name屬性改成你ICON_POLICY_xxxx_xxxx后邊的Atlas是具體的圖標
ICON_ATLAS_ECONOMIC經濟
ICON_ATLAS_MILITARY軍事
ICON_ATLAS_DIPLOMATIC外交
ICON_ATLAS_PERSON偉人
ICON_ATLAS_WILDCARD通用
按照你的需求改,這里我改成經濟
拓展:因為政策的圖標每一類都是相同的,所以可以這樣指定,但如果是文明或者領袖的圖標,就需要你自己制作了,你需要用PS等軟件制作一個DDS圖標,因為比較復雜,這里我就不詳細敘述了,有需要的可以上網上搜索一下。
特別指出的是,通過觀察相關文件發(fā)現。城邦圖標實際上是有三個部分組成的,即底色,背景,和絲帶(logo)。底色,即城邦類型底色,像是宗教城邦都是白色的。背景是由幾個大小不同的圖片渲染完成的,它們完成了城邦圖標的顏色渲染。絲帶就是白色的logo,需要單獨在ICON.xml文件中指定
最后一個文件,text文件是用來翻譯成各國語言的,我建議大家只需要翻譯英語和漢語即可
你可以按照這種格式來翻譯
其中Tag是你要翻譯的詞條,還記得我們在gameplay文件中定義的NAME和DESCRIPTION嗎,這里我們要寫出它們的具體內容,Language屬性就是目標語言(一些特殊的語言有不同的翻譯格式,比如西班牙語,但我猜你們用不上吧)
en_US代表美式英語,漢語像這樣
需要指出的是,英式英語翻譯格式跟其它語言也不同,但我們一般用美式英語就夠了
我建議大家能認真的翻譯英語,這樣能讓外國人也看懂你的MOD。一些大型的復雜的MOD需要翻譯的內容會更多,基本上結尾帶NAME的和DESCRIPTION都需要進行翻譯。
構造mod與上傳
文本翻譯文件也完成了,下一步就是構造mod了,點擊菜單欄上方BUILD>Build Solution如圖,如果出現錯誤,就會在下面的框格中顯示出來,如圖
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文件,首先我們要修改的內容如下圖
NAME就是你要顯示的名字,你可以直接在這里寫中文,但我推薦在這里起個名字后按照我之前的方式在text.xml里進行翻譯,當然,只在這里用英文而不翻譯也是可以的。
下邊的兩個同理,即調節(jié)效果和描述,你也可以在text里進行翻譯或者直接使用英文。
除了這些,你還可以在Properties標記里增添一些子標記來實現一些功能比如
上邊的是作者。你可以寫上你自己的名字。
下邊的那個代表是否在游戲啟動的時候加載mod如果值是1,則默認加載(第一次加載mod要很長時間,開始時加載過多mod也需要較長時間,自己取舍)如果是0,則默認不加載,需手動在額外內容里開啟。
當這些都完成后,我們才是真的大功告成了?,F在,你可以把你的mod上傳到創(chuàng)意工坊了。
使用官方SDK的第二個選項(steam……),打開上傳更新工具。點擊begin,在接下來的界面你可以看到你已經上傳的mod,你可以選擇更新mod或者上傳新的mod。這里我們選擇Upload來上傳一個新的mod
下面的菜單選擇你的MOD所在文件夾,定位到modinfo,其他文件會自動加載。
點擊NEXT,出現如下界面
左側是標題和描述,右側從上到下依次是,在創(chuàng)意工坊中顯示的圖片(點擊select image可選擇本地文件),Visibility代表可見度,依次是public 公friends only僅朋友可見private僅自己可見
Tags代表你要投到那個分區(qū)。這些都是可以在創(chuàng)意工坊中進行二次修改的。
點擊NEXT,等待上傳完成,這里有點小慢,請耐心等待。
如果你后期需要對mod進行更新,選擇mod后選更新選項,其過程與上傳是一樣的。
基礎教程到這里差不多就要結束了,樓主在外地,自己電腦不再身邊,今天實在網吧完成的。期間還經歷了一次重啟。有時間我會發(fā)一些進階的教程(我估計短時間內是不可能了)。不過按照我的基礎教程和官方示例,應該可以做一些簡單的mod了,希望能在創(chuàng)意工坊里看到大家的內容。
如轉載涉及版權等問題,請作者與我司聯系,我司將在第一時間刪除或支付稿酬。
全部評論