坦克世界模型替換 UML模組使用指南:應(yīng)用于自己,不改變他人;3nit

UML(Universal Model Loader),或者通用(獨(dú)立)模型加載器,是一個(gè)《坦克世界》(World of tanks / WOT)第三方模組,允許你單獨(dú)將游戲內(nèi)其他車(chē)輛模型、3D風(fēng)格、來(lái)自《戰(zhàn)爭(zhēng)雷霆》的第三方模型應(yīng)用于自己的車(chē)輛,而不改變敵方或隊(duì)友的車(chē)輛模型。此外還有其他的一些模型自定義功能。
這個(gè)視頻會(huì)教你如何使用UML的模型修改功能。
*截至投稿日,游戲客戶端已更新至1.10.1,但視頻中為1.10版本。
你也可以觀看這個(gè)視頻教程:https://www.bilibili.com/video/BV1KZ4y1V7p9/


你可以通過(guò)訪問(wèn)這個(gè)網(wǎng)頁(yè):http://forum.worldoftanks.eu/index.php?/topic/457839-11001universal-model-loader-uml-change-only-the-appearance-of-your-own-tank/
或者這個(gè)中文頁(yè):https://www.bilibili.com/read/cv6800271S
來(lái)了解更多信息和下載UML以及一些第三方坦克模型,你可能需要經(jīng)常訪問(wèn)這些網(wǎng)站,因?yàn)槟=M會(huì)隨游戲客戶端版本更新。在第一個(gè)網(wǎng)頁(yè)中,我將下載適用于國(guó)服的UML和T-80U的車(chē)輛模型。下載過(guò)程將被略過(guò)。


索引:
????1. UML及第三方車(chē)輛模型的安裝?
????2. 獲取“標(biāo)準(zhǔn)名”? ??
????3. 認(rèn)識(shí)配置文件結(jié)構(gòu)? ? ? ? ??
????4. 編輯ownModel.xml文件? ? ? ??
????5. 注意事項(xiàng)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1. UML及第三方車(chē)輛模型的安裝?
UML的安裝
打開(kāi)已下載的UML壓縮包,里邊包含了一張圖片和英語(yǔ)閱讀訓(xùn)練(英語(yǔ)說(shuō)明文檔),模組的內(nèi)容位于標(biāo)示著版本號(hào)的文件夾(1.10.0.4)中,通常這個(gè)版本號(hào)會(huì)與游戲的版本相同。

打開(kāi)游戲安裝目錄內(nèi)的res_mods文件夾,這個(gè)文件夾存放了模組文件,這里的每個(gè)文件夾都分別代表了一個(gè)從安裝游戲客戶端以來(lái)的版本號(hào),加載模組時(shí)以版本號(hào)最新的為準(zhǔn),也就是說(shuō)每次更新游戲后,可能需要手動(dòng)重新將模組文件遷移至新的文件夾。

直接將UML的文件夾復(fù)制到游戲目錄下并合并文件夾即可。

第三方車(chē)輛模型的安裝
打開(kāi)已下載的模型壓縮包,同理前面的內(nèi)容,“.wotmod”文件是模型的內(nèi)容文件。

用解壓縮應(yīng)用例如bandzip或winRAR打開(kāi),復(fù)制出其中的“vehicles”和“scripts”文件夾,

將這兩個(gè)文件夾與游戲目錄中的res_mods\中的同名文件夾合并。

確認(rèn)模組已安裝
確認(rèn)關(guān)閉了第三方的游戲輔助程序中的“純凈模式”,

啟動(dòng)游戲客戶端,進(jìn)入車(chē)庫(kù)后按“F5”鍵更新車(chē)庫(kù),如果彈出了類(lèi)似的通知,則說(shuō)明UML已安裝。

此時(shí),打開(kāi)游戲目錄下的res_mods\1.10.0.4\scripts\client\mods文件夾,已經(jīng)自動(dòng)創(chuàng)建了ownModel.xml文件,所有自定義的操作將在這里進(jìn)行。

2. 獲取“標(biāo)準(zhǔn)名”? ??
在這之前,需要了解的是,下面的對(duì)車(chē)輛模型的自定義編輯都是以文本的形式,需要用到車(chē)輛的“標(biāo)準(zhǔn)名”,即是每輛車(chē)的“大名”,當(dāng)然,是WG稱(chēng)呼的大名。
所有車(chē)輛的標(biāo)準(zhǔn)名,可以在游戲目錄res\packages中的“vehicles_level_XX.pkg”文件中找到,這一序列文件是按照車(chē)輛等級(jí)分類(lèi)的,可以使用解壓縮應(yīng)用打開(kāi)。

獲取車(chē)輛標(biāo)準(zhǔn)名
例如我希望將AMX 30B的模型應(yīng)用到AMX 30 原型車(chē)上,則需要兩個(gè)車(chē)輛標(biāo)準(zhǔn)名。打開(kāi)“vehicles_level_09-part1.pkg”\french,顯然AMX 30 原型車(chē)的標(biāo)準(zhǔn)名叫做“F71_AMX_30_prototype”,復(fù)制文件夾名即可得到。

獲取3D風(fēng)格標(biāo)準(zhǔn)名
第二個(gè)例子是,我想為KV-2應(yīng)用T30的3D風(fēng)格“突襲工具”,則需要兩個(gè)車(chē)輛標(biāo)準(zhǔn)名和一個(gè)“3D風(fēng)格標(biāo)準(zhǔn)名”。那么我需要進(jìn)入“vehicles_level_09-part1.pkg”\amarican\ 再進(jìn)入
A14_T30\_skins\,其中的T30_Countdown即為T(mén)30的3D風(fēng)格“突襲工具”的標(biāo)準(zhǔn)名。

當(dāng)然,你也可以通過(guò)觀察戰(zhàn)斗回放的文件名來(lái)找到車(chē)輛標(biāo)準(zhǔn)名。
3. 認(rèn)識(shí)配置文件結(jié)構(gòu)
開(kāi)始編輯ownModel.xml前,先看看開(kāi)發(fā)者提供的@example.xml文件。

注意
這是一個(gè).xml文件,它是一個(gè)純文本的配置文件,建議使用NotePad++等文本編輯器來(lái)進(jìn)行編輯,當(dāng)然,也可以用Windows提供的記事本。但值得注意的是,文件內(nèi)的語(yǔ)法形式錯(cuò)誤會(huì)觸發(fā)程序自動(dòng)重置ownModel.xml,而邏輯錯(cuò)誤不會(huì)。所以,使用糾錯(cuò),或者做好備份。我會(huì)使用vsCode。
文檔中注釋說(shuō),這是幾個(gè)例子,并不干預(yù)模組的實(shí)際運(yùn)作。

XML文件遵循XML規(guī)范,由尖括號(hào)括包含的部分是一個(gè)“標(biāo)簽”(<xxxx>),兩個(gè)同名標(biāo)簽中,不帶斜杠的(<xxxx>)表示開(kāi)頭標(biāo)簽,帶有斜杠(</xxxx>)的表示結(jié)尾標(biāo)簽,它們含有的“元素”位于二者之間。每一個(gè)車(chē)輛的模型都由一個(gè)標(biāo)簽,或“配置頭”支配,并且以模型的“標(biāo)準(zhǔn)名”命名,是<models>的子元素。每個(gè)模型有包含幾個(gè)有控制行為的子元素。
以“虎王”坦克模型為例,這是此模型的配置頭。
<G16_PzVIB_Tiger_II>
? ? ?<enabled> True </enabled>
? ? ?<swapNPC> False </swapNPC>
? ? ?<useWhitelist> True </useWhitelist>
? ? ?<whitelist> dummytankName1, It11_P43,</whitelist>
</G16_PzVIB_Tiger_II>
<enabled>?enabled元素表示是否啟用自定義操作,可以將其元素修改為”true“,啟用;或”false“,不啟用。
<swapNPC>?swapNPC表示是否更改他人車(chē)輛的模型。
<useWhitelist>?useWhitelist表示是否啟用白名單,當(dāng)禁用時(shí),“虎王”的模型會(huì)被應(yīng)用于所有車(chē)輛,啟用時(shí),模型只會(huì)應(yīng)用于whitelist中指定的車(chē)輛。
<whitelist>?useWhitelist禁用時(shí),“虎王”的模型會(huì)被應(yīng)用于所有車(chē)輛;啟用時(shí),只會(huì)應(yīng)用于whitelist中指定的車(chē)輛,你可以向其中添加多輛坦克的標(biāo)準(zhǔn)名,并以半角逗號(hào)隔開(kāi)。
這是BDR_G1B的例子。
<BDR_G1B_warHammer40k>
? ? ?<enabled> True </enabled>
? ? ?<swapNPC> False </swapNPC>
? ? ?<useWhitelist> True </useWhitelist>
? ? ?<whitelist> dummytankName1, It11_P43,</whitelist>
? ? ?<parent> F05_BDR_G1B </parent>
? ? ?<configString> 2111 </configString>
? ? ?<styleSet> WH </styleSet>
</BDR_G1B_warHammer40k>
<parent>?這是一個(gè)特殊的配置頭,因?yàn)檫@串字符“<BDR_G1B_warHammer40k>”并不是車(chē)輛“標(biāo)準(zhǔn)名”,而是自定義的,可以任意填寫(xiě)(
*名稱(chēng)不能以數(shù)字或者標(biāo)點(diǎn)符號(hào)開(kāi)始
*名稱(chēng)不能以字母 xml 或者 XML、Xml 等等開(kāi)始
*名稱(chēng)不能包含空格),但使用parent標(biāo)簽鏈接到了
“F05_BDR_G1B”這個(gè)以標(biāo)準(zhǔn)名命名的配置頭下,這是由于這個(gè)模型在下文中應(yīng)用了3D風(fēng)格,如果直接在F05_BDR_G1B的配置頭下編輯,會(huì)導(dǎo)致一個(gè)配置頭對(duì)應(yīng)了兩個(gè)模型,出現(xiàn)問(wèn)題,而需要配置到一個(gè)子模型中。
<configString>?configString是指車(chē)輛模塊的代碼,由4位數(shù)字組成,每個(gè)數(shù)字依次表示履帶、車(chē)體、炮塔、炮管的代號(hào),由1開(kāi)始,按照研發(fā)順序排列。如2111表示二號(hào)履帶、一號(hào)車(chē)體、一號(hào)炮塔、一號(hào)炮管。當(dāng)沒(méi)有定義這個(gè)代碼時(shí),默認(rèn)完全體。當(dāng)數(shù)字超過(guò)了車(chē)輛擁有的模塊數(shù)量時(shí),會(huì)默認(rèn)最大值。
<styleSet>?styleSet下可以指定需要應(yīng)用的3D風(fēng)格,填入標(biāo)準(zhǔn)名。
4. 編輯ownModel.xml文件? ???
了解以上內(nèi)容后,就可以著手操作了。我們需要對(duì)ownModel.xml文件進(jìn)行編輯,建議在這之前做好做備份。
文檔頭部
文檔頭部是一些注釋信息和全局功能的設(shè)定。在models標(biāo)簽下,有很多已經(jīng)配置好的車(chē)輛模型的配置頭,但并不完整,還需要手動(dòng)配置。

示例一:T-80U模型應(yīng)用于IS-3(替換第三方模型)
滾動(dòng)到文檔末尾,剛才導(dǎo)入的T-80U的模型已經(jīng)出現(xiàn)了。事實(shí)上,每次導(dǎo)入新模型后,啟動(dòng)一次游戲客戶端,ownModel.xml中就會(huì)自動(dòng)創(chuàng)建新模型的配置頭。

我們需要將它啟用,并應(yīng)用在IS-3上。注意使用標(biāo)準(zhǔn)名。按照如下代碼塊編輯,已加粗體。
<W14_T80U>
? ? ?<enabled> true </enabled>
? ? ?<swapNPC> false </swapNPC>
? ? ?<useWhitelist> true </useWhitelist>
? ? ?<whitelist> R19_IS-3, dummytankName2 </whitelist>
</W14_T80U>
示例二:AMX 30B模型應(yīng)用于AMX 30原型車(chē)(替換游戲客戶端中原有模型)
接著上面的例子,我們可以在T-80U的標(biāo)簽的基礎(chǔ)上編輯AMX 30B模型的配置頭,替換標(biāo)簽為“F72_AMX_30”,在whitelist中加入“F71_AMX_30_prototype”。如下。
<F72_AMX_30>
? ? ?<enabled> true </enabled>
? ? ?<swapNPC> false </swapNPC>
? ? ?<useWhitelist> true </useWhitelist>
? ? ?<whitelist> F71_AMX_30_prototype, dummytankName2 </whitelist>
</F72_AMX_30>
示例三:T30的3D風(fēng)格“突襲工具”應(yīng)用于KV-2(替換游戲客戶端中3D風(fēng)格、自定義模塊)
應(yīng)用3D風(fēng)格前,需要手動(dòng)創(chuàng)建一個(gè)新標(biāo)簽,名稱(chēng)不能與現(xiàn)有模型標(biāo)準(zhǔn)名重復(fù),我會(huì)直接創(chuàng)建為“T30c”,我們可以直接復(fù)制example文件,在其基礎(chǔ)上編輯。使用parent標(biāo)簽將這個(gè)標(biāo)簽鏈接到A14_T30。并styleSet為T(mén)30_Countdown,應(yīng)用3D風(fēng)格。我希望使用T30的105mm炮,需要修改configString下的代碼為9991。如下。
<T30c>
? ? ?<enabled> true </enabled>
? ? ?<swapNPC> false </swapNPC>
? ? ?<useWhitelist> true </useWhitelist>
? ? ?<whitelist> dummytankName1,?R77_KV2 </whitelist>
? ? ?<parent> A14_T30 </parent>
? ? ?<configString> 9991 </configString>
? ? ?<styleSet>?T30_Countdown </styleSet>
</T30c>
編輯完成后,保存。

此時(shí)不需要重啟游戲,更改可以被熱重載,回到車(chē)庫(kù)中按“F5”,所有修改已經(jīng)生效。



至此,UML模型修改過(guò)程結(jié)束。
5. 注意事項(xiàng)??????????? ??
需要注意的是,替換的模型會(huì)附帶車(chē)輛的炮聲、引擎聲等,僅應(yīng)用于本地,不會(huì)改變碰撞體積和車(chē)輛性能。對(duì)于導(dǎo)入的第三方模型,可能會(huì)引起一些性能問(wèn)題,并且對(duì)涂裝的適配可能不完美。

當(dāng)無(wú)全向炮塔的模型被應(yīng)用在有全向炮塔的車(chē)輛上、或小俯角模型應(yīng)用于大俯角車(chē)輛時(shí),可能發(fā)生穿模。

輪式、履帶車(chē)輛模型不能互相替換,輪式車(chē)輛模型只能應(yīng)用于輪數(shù)相同的車(chē)輛。
