02.【基礎(chǔ)知識(shí)】場(chǎng)景層級(jí),復(fù)合物體,幾何體模型
補(bǔ)檔:
《ZM3 GTA5 導(dǎo)入與導(dǎo)出插件》技術(shù)文檔
原創(chuàng)教程:零貳
以下是技術(shù)文檔的目錄:
01. GTAV 導(dǎo)入與導(dǎo)出插件的準(zhǔn)備工作:如何安裝 ZM3.1.0
02.【基礎(chǔ)知識(shí)】GTA V:場(chǎng)景層級(jí),復(fù)合物體,幾何體模型
03. 【使用指南】ZM3《GTA V 導(dǎo)入與導(dǎo)出插件》使用指南
04.【拓展研究】GTA V:玻璃破碎數(shù)據(jù)指南 (*.cwgv 文件)
05.【擴(kuò)展研究】GTA V 著色與材質(zhì),車(chē)體效果,載具燈光,貼圖等的指南
06.【擴(kuò)展研究】GTA V:物理特性和碰撞體指南
寫(xiě)在翻譯前言:
對(duì)于熱愛(ài) GTA,喜歡玩 GTA MOD,更熱衷于制作自己喜歡的 MOD 作者來(lái)說(shuō),Zmodeler 這款
軟件是非常熟悉了!
目前 ZM3 原作者編寫(xiě)了 5 個(gè)指南,我會(huì)一一將他們翻譯過(guò)來(lái)。不過(guò)由于只能工
作之余進(jìn)行翻譯,因此翻譯進(jìn)度會(huì)略慢。
英文好手可以直接去 ZM3 原論壇進(jìn)行查看,如果發(fā)現(xiàn)本人翻譯有不足和錯(cuò)誤的
地方,也請(qǐng)指出。
現(xiàn)在發(fā)布的是第一個(gè)指南,帶你初識(shí)《GTAV 導(dǎo)入與導(dǎo)出插件》,此指南主要介紹
了使用插件所學(xué)要的一些基本知識(shí),相對(duì)枯燥,但是只有基礎(chǔ)牢固,大樓才能建
得高。所以,希望想研究和制作 GTA V 模型類(lèi) MOD 的玩家耐心看看。
02. [Guide] GTA V: Scene hierarchy, compound objects, geometries
02.【基礎(chǔ)知識(shí)】GTA V:場(chǎng)景層級(jí),復(fù)合物體,幾何體模型
原創(chuàng)翻譯:零貳
Scene Hierarchy
場(chǎng)景層級(jí)
GTAV 中一輛載具的”.yft”模型文件通常分成兩部分,一個(gè)是包含有豐富細(xì)節(jié)的高質(zhì)量模型文
件,此文件一般命名為:“model_hi.yft”,文件內(nèi)除了載具的實(shí)體模型,另外僅只包含一個(gè)同
樣豐富細(xì)節(jié)的 LOD 文件(為了減輕電腦負(fù)荷,而創(chuàng)建的遠(yuǎn)距離上顯示的模型文件,走近載具
后,此文件會(huì)被自動(dòng)隱藏);第二個(gè)部分,載具的所有其他文件都被放在了名為:“model.yft”
文件內(nèi),包含有相對(duì)低細(xì)節(jié)的載具實(shí)體模型和最高有 4 個(gè) LOD 文件(分別對(duì)應(yīng)稍遠(yuǎn),遠(yuǎn),超遠(yuǎn)等視角變化情況)。
在這里,我把第二個(gè)“model.yft”文件稱(chēng)之為基礎(chǔ) yft 模型。兩個(gè)文件加起來(lái),你的載具最高
會(huì)有 5 個(gè) LOD 文件。在一般情況下,游戲自身經(jīng)常使用的是基礎(chǔ) yft 模型,用它來(lái)生成車(chē)流
和主角使用的載具。物理效果和碰撞檢測(cè),也都是在基礎(chǔ) yft 模型上完成。而高細(xì)節(jié)模型
(model.hi_.yft)通常則被用來(lái)當(dāng)做原模型,另外,如果你啟用了高清材質(zhì),也是在這高細(xì)
節(jié)模型上呈現(xiàn)。
一個(gè)載具的實(shí)體模型通常包含很多物件,包括車(chē)門(mén),車(chē)輪,車(chē)燈,駕駛員的位置,雙手的位
置等等。所有這些物件都被按照層級(jí)綁定在了基礎(chǔ).yft 模型文件內(nèi),相應(yīng)的,你在高細(xì)節(jié)模
型文件內(nèi),載具對(duì)應(yīng)的模型也必須按照相同的層級(jí)來(lái)綁定。不單單只是保證模型的分層相同
并且正確,還要保證模型的三維坐標(biāo)軸的位移數(shù)據(jù)是一樣的,旋轉(zhuǎn)數(shù)據(jù)也是一樣的。另外,
你也不能單單只在一個(gè)模型文件內(nèi)添加,或移除某個(gè)部分。
了解了以上關(guān)于 GTA V 中載具模型的原理后,可以讓你更好的熟悉 ZM3 的 GTA V 導(dǎo)入與導(dǎo)
出插件的工作方式。ZM3 的 GTA V 插件可以讓你在一個(gè)場(chǎng)景內(nèi),同時(shí)管理高細(xì)節(jié)_hi.yft 模型
和基礎(chǔ) yft 模型,也包括載具對(duì)應(yīng) LOD 文件。
在你開(kāi)始載具模型前,請(qǐng)確保你的 ZM3 已經(jīng)準(zhǔn)備好了導(dǎo)入。打開(kāi)“Setting(設(shè)置)-> General
(一般)-> Compatibility(兼容性)”(由于 ZM3 還沒(méi)有中文版,因此這里保留原文的英文菜
單名),然后按照下圖來(lái)設(shè)置<Default Comptibility(默認(rèn)兼容性)>。

在開(kāi)始前,場(chǎng)景層級(jí)的命名必須和你要導(dǎo)出的模型名字一樣,它不能包含”.yft”和“.ydr”。命名也允許(并推薦)加入一個(gè)“_hi”后綴,這樣你便告訴了導(dǎo)出插件這個(gè)場(chǎng)景包含有高細(xì)節(jié)版
本的模型。在設(shè)置里“Combine with existing models(與已經(jīng)存在的模型合并)”允許你向已
經(jīng)存在模型的場(chǎng)景里導(dǎo)入另一個(gè)模型,通過(guò)它,你可以導(dǎo)入高細(xì)節(jié)_hi.yft 模型,另外還可以
從基礎(chǔ).yft 模型中導(dǎo)入 LOD 文件。
在一開(kāi)始導(dǎo)入 model_hi.yft 時(shí),場(chǎng)景會(huì)自動(dòng)的為“模型_hi”創(chuàng)建一個(gè)根節(jié)點(diǎn)。而先導(dǎo)入
model.yft 文件,再導(dǎo)入 model_hi.yft,場(chǎng)景的根節(jié)點(diǎn)則是按照 model.yft 來(lái)命名為“model”,而
不是“model_hi”。
模型的層級(jí)包含有多個(gè)部件以及虛擬點(diǎn)(Dummy nodes),部件指的是幾何體模型,并且至
少包含一個(gè) LOD 文件。載具所有的 LOD 模型文件通常是包含在一個(gè)部件內(nèi),并且以粗體的
名字顯示,這些部件稱(chēng)之為復(fù)合體部件。這些包含有多個(gè)部件的復(fù)合體部件在游戲內(nèi),則是
依據(jù)場(chǎng)景,通常每次只顯示一個(gè)部件。(也就是像 LOD 文件,根據(jù)視角的遠(yuǎn)景,每次只顯示
相應(yīng)距離下的一個(gè) LOD 文件)
下面以 Buffalo2_hi.yft 和 Buffalo2.yft 兩個(gè)模型文件為例:

Compound objects.
復(fù)合體部件
展開(kāi)在層級(jí)上面的 Structure(結(jié)構(gòu))面板,你可以看到一組條件等級(jí)按鈕:LOD 按鈕,分別
為 L0、L1、L2、L3 和 L4;效果按鈕,Dirt(泥濘)、Dust(沙塵)、Scratch(刮傷)和 Burn
(燃燒);以及 Collision(碰撞體)按鈕。

通過(guò)層級(jí)面板,你可以挑選任何一個(gè)復(fù)合體部件,并且查看此復(fù)合體部件所包含的聲明,顯
示為粗體字的模型是當(dāng)前復(fù)合體部件中選中的模型。當(dāng)按下聲明按鈕時(shí),場(chǎng)景內(nèi)所有的復(fù)合
體部件會(huì)立刻切換至對(duì)應(yīng)的聲明。同樣,你也可以通過(guò)按 L0, L1, L2 等按鈕,切換至 LOD 模
型。Default(默認(rèn))聲明是當(dāng)你沒(méi)有選擇任何部件時(shí),插件會(huì)將一個(gè)載具最基本的模型聲明
出來(lái)。GTAV 導(dǎo)入插件在導(dǎo)入模型時(shí)會(huì)依據(jù)復(fù)合體部件的數(shù)據(jù)創(chuàng)建默認(rèn)聲明,并以虛擬體
(Dummy Node)展示,所以在導(dǎo)入場(chǎng)景里,你會(huì)看到有很多的虛擬體。上圖的面板展示了
擁有 5 個(gè) LOD 文件的載具底盤(pán)復(fù)合體部件,而當(dāng)前正在顯示的是默認(rèn)聲明。
碰撞體文件同樣是包含在復(fù)合體部件內(nèi),通過(guò) COL 聲明按鈕,你可以定位到它。你可以點(diǎn)擊
COL 聲明按鈕來(lái)顯示碰撞體。要多說(shuō)一句的是,插件并未將碰撞體模型包含在默認(rèn)聲明中。因此,當(dāng)你選擇默認(rèn)聲明時(shí),在場(chǎng)景內(nèi)是看不到碰撞體模型的,甚至連碰撞體對(duì)應(yīng)的虛擬體
節(jié)點(diǎn)也不會(huì)出現(xiàn)。
下面這個(gè)視頻向你展示復(fù)合體部件是如何工作的,以及如何在場(chǎng)景內(nèi)創(chuàng)建復(fù)合體部件。這里
假設(shè)你場(chǎng)景的 L0,L1,L2 已經(jīng)有幾何體模型了。
【此處視頻可在論壇帖子內(nèi)觀看】
當(dāng)沒(méi)有按下 LOD 聲明按鈕時(shí),你可以看到與復(fù)合體部件以及相聯(lián)系的虛擬體節(jié)點(diǎn),還有非
復(fù)合體部件的單獨(dú)模型。你可以(也應(yīng)該)在默認(rèn)聲明下給這些模型分配(修改)屬性。
舉例來(lái)說(shuō):每一扇門(mén),引擎蓋和后備箱都應(yīng)該要包含旋轉(zhuǎn)屬性,以便他們?cè)谟螒騼?nèi)做出符合
物理常識(shí)的動(dòng)作。你可以在屬性面板內(nèi)設(shè)置他們的可旋轉(zhuǎn)角度,GTA V 導(dǎo)出插件在導(dǎo)出時(shí)會(huì)
將你的設(shè)置寫(xiě)入進(jìn)模型內(nèi)。
確保你當(dāng)前的場(chǎng)景為(Default)默認(rèn)狀態(tài),然后通過(guò)“Hierarchy”(層級(jí))面板選擇一扇車(chē)門(mén),
接著點(diǎn)擊層級(jí)面板下方的“Isolated”(孤立)按鈕,將選中的車(chē)門(mén)從當(dāng)前場(chǎng)景里孤立出來(lái),方
便查看與編輯,場(chǎng)景內(nèi)其他的模型則暫時(shí)被隱藏了。在孤立狀態(tài)下,模型的“Properties”(屬
性)面板會(huì)自動(dòng)的彈出,并展示模型的各項(xiàng)屬性。這比起你單獨(dú)的一個(gè)個(gè)去選擇物體,然后
查看屬性要高效很多。雙擊“user-defined options”(用戶自定義選項(xiàng)),會(huì)彈出一個(gè)窗口,
如圖:

在這個(gè)用戶自定義面板上,你可以看到 RotX(X 旋轉(zhuǎn)軸), RotY(Y 旋轉(zhuǎn)軸), RotZ(Z 旋轉(zhuǎn)
軸)分別包含了模型各個(gè)軸上的旋轉(zhuǎn)數(shù)據(jù)。“0.0”數(shù)值,意味著此模型沒(méi)有旋轉(zhuǎn)屬性。因此,
圖中的這個(gè)模型,只有在 Y 軸上擁有旋轉(zhuǎn)數(shù)據(jù),旋轉(zhuǎn)角度為 0~72 度。為了簡(jiǎn)單起見(jiàn),插件
會(huì)以(Cylinder)圓柱體作為參考,給車(chē)門(mén)創(chuàng)建一個(gè)虛擬體節(jié)點(diǎn),因此你在場(chǎng)景中可以看到
帶有同樣屬性的虛擬體節(jié)點(diǎn)。當(dāng)你修改一個(gè)模型的屬性時(shí),虛擬體也會(huì)跟著做出改變。另外,
事實(shí)上虛擬體的形狀并不會(huì)對(duì)載具有任何影響,導(dǎo)出工具在導(dǎo)出時(shí),不會(huì)在意虛擬的形狀,
大小,甚至是顏色,因?yàn)樘摂M體在游戲中并不會(huì)產(chǎn)生任何碰撞效果,你也看不到它。但游戲
需要一個(gè)虛擬體來(lái)作為數(shù)據(jù)的傳輸通道。
當(dāng)你在屬性面板中編輯完模型的屬性后,請(qǐng)記得按下“Apply”(應(yīng)用)按鈕,讓修改被保存。
在完成編輯后,記得關(guān)閉“Isolated”(孤立)按鈕,退回到正常場(chǎng)景中。
注意點(diǎn):因?yàn)椤癱ollision”(碰撞體)的復(fù)合體部件并不會(huì)出現(xiàn)在“Default”(默認(rèn))聲明中,
因此為了編輯這些碰撞體模型,你需要定位到“COL”聲明按鈕上,然后直接在此狀態(tài)下,編
輯碰撞體。這點(diǎn)非常重要,因?yàn)槟阈枰獙?duì)每一個(gè)碰撞體模型進(jìn)行單獨(dú)的屬性或模型上的編輯。Geometries.
幾何體
大多數(shù)幾何體模型都會(huì)使用兩種 UV 通道,切線與頂點(diǎn)著色,兩個(gè)通道分別對(duì)應(yīng)模型的材質(zhì)
貼圖和著色。因此,在制作過(guò)程中,要確保你的模型應(yīng)用了正確的著色設(shè)置。一個(gè)模型可以
擁有多個(gè)材質(zhì),也即多通道材質(zhì)。應(yīng)用材質(zhì)時(shí),模型上所有的點(diǎn)都必須被賦予到。舉例來(lái)說(shuō),
如果一個(gè)模型應(yīng)用了凹凸貼圖,那么整個(gè)模型都必須被賦予這張凹凸貼圖,而不是只顯示凹
凸效果的部分。GTA V 導(dǎo)出插件會(huì)自動(dòng)處理模型沒(méi)有凹凸效果的部分,所以你不需要因?yàn)槟?/p>
型的很多地方并沒(méi)有用到凹凸貼圖,或者模型本身并沒(méi)有使用多通道材質(zhì)而困擾。
每一個(gè)模型部件的頂點(diǎn)元件(Vertices components)(頂點(diǎn)格式)可以在屬性面板“Properties?
-> Mesh -> Vertices -> Format” 里進(jìn)行配置。貼圖切線則會(huì)在開(kāi)啟法線貼圖計(jì)算工具后
“Surface\Normals\Calculate”自動(dòng)給模型部件匹配。

節(jié)點(diǎn)著色是 GTA V 中著色器最常用的一項(xiàng)技術(shù),但是這個(gè)組件并不以網(wǎng)格顏色為依據(jù)。相反
的,每一個(gè)顏色通道在著色器內(nèi)都有特定的意義。舉例來(lái)說(shuō),紅色通道是用于環(huán)境光遮蔽(AO:
ambient occlusion),藍(lán)色通道是用于描繪燃燒效果力度的,情景部件則是用來(lái)反饋游戲內(nèi)一
些特定效果的,譬如“濕潤(rùn)”效果遮罩,或者其他目的。你可以利用繪圖工具“Surface -> Paint”
來(lái)繪制或改善部件的著色效果。這里要提醒下,注意到“Paint”(繪圖)窗口有一個(gè)擴(kuò)展的選
項(xiàng)面板,在這個(gè)面板里,你可以選擇不同的通道來(lái)進(jìn)行處理。譬如,你可以選擇紅色通道來(lái)
查看環(huán)境光遮蔽效果的面積,然后在藍(lán)色通道里,用“color”色彩工具進(jìn)行繪制。

下圖是一個(gè)在藍(lán)色通道內(nèi)將顏色繪制成黑色車(chē)門(mén)的例子,藍(lán)色通道在材質(zhì)上控制的是灼燒力
度。圖中上方的載具展示的是網(wǎng)格上的節(jié)點(diǎn)色彩,下方的載具展示了這些節(jié)點(diǎn)色彩在實(shí)際的
每一個(gè)部件的網(wǎng)格上所呈現(xiàn)的含義。節(jié)點(diǎn)色彩的濃度反饋到車(chē)體上便是灼燒效果的濃度。

下面我具體解釋下每一個(gè)節(jié)點(diǎn)色彩的顏色通道所帶的意義:
紅色通道:環(huán)境光遮蔽的層級(jí)。插件一般會(huì)使用向外暈開(kāi)的黑色遮罩來(lái)反轉(zhuǎn)節(jié)點(diǎn)的紅色通道。
因此,在一個(gè)網(wǎng)格上,低層級(jí)的環(huán)境光遮蔽會(huì)有更加黑的色彩來(lái)模擬環(huán)境光遮蔽效果。然而,
相比于其他游戲,在 GTA 游戲內(nèi)的模型上,環(huán)境光遮蔽所帶來(lái)的對(duì)比度其實(shí)是非常小的。但
是,不管怎樣,這里還是推薦在制作你自己的 MOD 時(shí),附帶上環(huán)境光遮蔽效果。
綠色通道:變形束縛的程度。網(wǎng)格變形的程度由節(jié)點(diǎn)的綠色通道來(lái)控制。要想控制變形的程
度,可以通過(guò)減少綠色通道的數(shù)值。舉上圖的例子來(lái)說(shuō),車(chē)門(mén)上有一片洋紅的區(qū)域,數(shù)值為
紅:255,綠:40,藍(lán):255,這就意味著車(chē)門(mén)上的變形程度會(huì)非常低。通過(guò)這個(gè)通道,你可
以在載具上表現(xiàn)出真實(shí)的變形效果。
藍(lán)色通道:灼燒效果等級(jí)。灼燒效果等級(jí)是有節(jié)點(diǎn)的藍(lán)色通道來(lái)控制的。你可以在藍(lán)色通道
內(nèi)繪制顏色區(qū)域來(lái)規(guī)劃你想要產(chǎn)生灼燒效果的部位。GTA 游戲內(nèi)原始的模型一般只在車(chē)體框
架以及車(chē)門(mén)上,而引擎蓋,尾翼,保險(xiǎn)杠和行李箱蓋上是沒(méi)有效果的。我猜這大概是因?yàn)樵?/p>
游戲里,當(dāng)車(chē)子燃燒的時(shí)候,這些部件早已經(jīng)被炸飛掉了,因此就不需要在它們上面做燃燒
效果了。當(dāng)然了,這雖然會(huì)出現(xiàn)一些不太真實(shí)的情況。譬如保險(xiǎn)杠并沒(méi)有完全被撞飛掉,但
是車(chē)體已經(jīng)在燃燒,結(jié)果你就會(huì)看到火焰燒到了保險(xiǎn)杠上,而保險(xiǎn)桿卻沒(méi)有灼燒的痕跡。不
過(guò),我還是建議你按照游戲本身的設(shè)定來(lái)。
透明通道:透明材質(zhì)效果。透明通道可以用來(lái)控制帶有透明材質(zhì)的濃度。舉例來(lái)說(shuō),幾乎所
有“冬天”的車(chē)輛上都會(huì)使用帶有透明通道的白雪貼圖來(lái)覆蓋車(chē)身。另外,風(fēng)景類(lèi)模型也會(huì)
用到透明通道來(lái)呈現(xiàn)樹(shù)木,植物等等的貼圖效果。
為了增加透明的效果,選擇你想要修改的通道,也即 Alpha 通道,在此顏色通道下,選擇白
色,然后在網(wǎng)格上繪制。如果要降低效果,同樣在 Alpha 通道下,選擇黑色進(jìn)行涂抹。要注
意的是,顏色涂抹工具在模式為“Solid”實(shí)體下,顏色是不會(huì)被涂抹到視圖內(nèi)不可見(jiàn)的模型部
位的。簡(jiǎn)單說(shuō)就是在此模式下,你看不到的地方,顏色是不會(huì)涂抹到的,也包括當(dāng)前面的背
面。要想一次涂抹整個(gè)模型,或者穿透模型來(lái)涂抹,你可以關(guān)掉“Solid”實(shí)體模式,只保留
“wireframe”線框模式,這樣你就可以穿透整個(gè)網(wǎng)格和節(jié)點(diǎn)進(jìn)行涂抹了。
