blender-track-exporter 使用指南
注:全文為翻譯文,原文請(qǐng)?jiān)谝韵骆溄硬榭?/p>
https://richardburnsrally.github.io/blender-track-exporter/features.html#-geom-blocks
https://richardburnsrally.github.io/blender-track-exporter/guide.html
前言
這不是一個(gè)完整的賽道創(chuàng)作指南,只是非?;A(chǔ)的教程如何去開始導(dǎo)出階段到RBR。最終,我們將有一個(gè)最佳實(shí)踐和技術(shù)的完整指南,但在那之前,它是一個(gè)預(yù)覽版本,你已經(jīng)知道你應(yīng)該大概如何去創(chuàng)作,或者你可以在discord向其他人學(xué)習(xí)。請(qǐng)注意,由于插件仍在測(cè)試中,事情可能會(huì)發(fā)生變化。
插件安裝
安裝插件后,您應(yīng)該設(shè)置您的RBR導(dǎo)出目錄。在Blender的首選項(xiàng)中的插件列表中找到RBR賽道插件,并在底部單擊添加RBR導(dǎo)出目錄。

您可以為不同的RBR安裝添加任意數(shù)量的RBR。將它們命名為與左邊字段合適的名稱,并確保目錄指向RBR安裝的 Maps 目錄。適當(dāng)?shù)卦O(shè)置RBR分發(fā)類型—因?yàn)?RSF 階段將自動(dòng)放置到它們自己的子目錄中,而Original將只放置到 Maps 目錄中。
完成后,保存首選項(xiàng)。如果您只是關(guān)閉窗口而不保存,它不會(huì)工作。

“Hello World”
我們將討論導(dǎo)出RBR的第一個(gè)賽道所需的東西的最低條件。當(dāng)然,這將只使用一些特性(也稱為RBR對(duì)象類型),更全面的概述請(qǐng)參見特性。這不是一個(gè)Blender教程-只是一個(gè)關(guān)于如何導(dǎo)出賽道的教程。創(chuàng)建一個(gè)新文件,清除任何對(duì)象,這樣你就有一個(gè)空白的畫布。
地面
讓我們開始創(chuàng)建地面網(wǎng)格。點(diǎn)擊Add > Mesh > Grid
創(chuàng)建一個(gè)簡(jiǎn)單的平坦地面,并將其放大10倍,使其足夠大,以供駕駛。在對(duì)象屬性面板中,找到名為RBR對(duì)象設(shè)置的部分。將類型更改為Geom Block,并啟用生成碰撞。這是你應(yīng)該用于地面網(wǎng)格和建筑的對(duì)象類型。將它設(shè)置為“Near”。

現(xiàn)在我們將設(shè)置一個(gè)簡(jiǎn)單的紋理材質(zhì)。在“Material Properties”面板中為你的對(duì)象創(chuàng)建一個(gè)新的材質(zhì)。打開著色器編輯器shader editor:

移除原則性的BSDF著色器節(jié)點(diǎn)。要導(dǎo)出到RBR,你必須使用插件提供的著色器節(jié)點(diǎn)。Add -> RBR Nodes -> RBR Shader
著色器將添加主著色器節(jié)點(diǎn),你可以使用任何RBR對(duì)象網(wǎng)格,盡管不是所有的特性都支持所有的對(duì)象類型。啟用漫反射紋理1來使用這個(gè)材質(zhì)的紋理。
添加一個(gè)?RBR Texture
節(jié)點(diǎn),然后單擊New創(chuàng)建一個(gè)新的RBR紋理。將其重命名為合適的名稱,并將節(jié)點(diǎn)連接起來

RBR紋理節(jié)點(diǎn)處理干/濕/濕和新的/正常/磨損的情況。new/normal/worn可以用于標(biāo)記為Road Surface的紋理-這只能用于漫反射紋理槽,它可以使紋理圖像根據(jù)道路狀況而變化。我們現(xiàn)在只用干的。選擇用于干燥條件的圖像。所有的紋理必須是DXT1/3/5 -我們使用DXT1,這是最好的不透明紋理。紋理的大小必須是2的冪,例如512、1024、2048等等,但它不需要是方形的。
切換到材質(zhì)預(yù)覽模式來查看它在游戲中的樣子。

您的網(wǎng)格將顯示完全黑色-我們錯(cuò)過了一些東西!切換到場(chǎng)景屬性面板,向下滾動(dòng)找到RBR賽道設(shè)置。這控制了賽道支持的表面類型(干/濕/濕)和舞臺(tái)支持的天氣設(shè)置。單擊+按鈕向賽道添加天氣類型。

這將增加一個(gè)簡(jiǎn)單的清爽晴朗的天氣。我們暫時(shí)將所有內(nèi)容都保留為默認(rèn)值。插件提供了一個(gè)實(shí)時(shí)預(yù)覽,它完全匹配你的舞臺(tái)將出現(xiàn)在游戲與相同的天氣設(shè)置。在3D編輯器視圖中,點(diǎn)擊 Add > Light > Sun
設(shè)置“RBR Object Type” to “Sun”。太陽的方向?qū)⑷∽赃@個(gè)物體。這樣,你的紋理現(xiàn)在就可以在你的對(duì)象上看到了

我們還沒有完全完成地面,我們需要做物理映射,所以插件知道我們的網(wǎng)格是由什么材料制成的。在一個(gè)面板中打開UV或圖像編輯器,以及它下面的著色器編輯器。要對(duì)特定的紋理進(jìn)行物理映射,請(qǐng)單擊RBR紋理節(jié)點(diǎn)中的編輯材質(zhì)映射。圖像將在圖像編輯器中打開

材質(zhì)編輯器的控件顯示在屏幕底部。在Overview模式中,右鍵單擊開始創(chuàng)建新地圖。注意,底部的控件將根據(jù)編輯器模式進(jìn)行更新!在Create New Map模式下,你可以點(diǎn)擊并拖動(dòng)來定義一個(gè)新的材質(zhì)貼圖區(qū)域。當(dāng)你釋放按鈕,你會(huì)回到概覽模式,在那里你可以選擇你的地圖來調(diào)整大小和移動(dòng)它

點(diǎn)擊X鍵和Y鍵,將地圖標(biāo)記為在X和Y方向重復(fù)。這將鎖定貼圖到紋理維度,并允許插件在導(dǎo)出UV貼圖時(shí)更聰明,如果你的UV貼圖不符合紋理邊界。點(diǎn)擊Tab鍵進(jìn)入材質(zhì)繪制模式,點(diǎn)擊T鍵切換到填充模式。點(diǎn)擊地圖中的任何地方,用材質(zhì)填充該區(qū)域。默認(rèn)情況下,它是干凈的,干燥的柏油路,但你可以選擇材質(zhì)從場(chǎng)景面板下的RBR材質(zhì)地圖編輯器標(biāo)題

點(diǎn)擊Esc幾次以退出材質(zhì)貼圖編輯器,并切換回3D視口。
Driveline 駕駛路線
單擊Add祝辭曲線比;并將RBR對(duì)象類型設(shè)置為Driveline。這條曲線定義了賽車預(yù)計(jì)通過這個(gè)階段的路徑。它還驅(qū)動(dòng)pacenotes,可以在對(duì)象屬性窗格的RBR Driveline設(shè)置面板中添加。一些注釋是定義起跑線、兩條分割線、終點(diǎn)線和階段結(jié)束的特殊事件。當(dāng)賽車到達(dá)終點(diǎn)時(shí),終點(diǎn)將立即結(jié)束。將傳動(dòng)系統(tǒng)曲線向上縮放以填充該區(qū)域。確保你應(yīng)用了比例(參見Object >應(yīng)用在縮放),否則pacnotes將不會(huì)出現(xiàn)在正確的位置。添加特殊的事件,并將它們間隔沿傳動(dòng)系統(tǒng)

Technically these aren’t needed just for quickly testing, but they are needed for your stage to function correctly. Try to ensure the driveline covers frombefore the start of the stage until after the end to avoid accidental penalties.
Car Location
單擊Add祝辭空比;箭頭并將RBR對(duì)象類型設(shè)置為汽車位置。這是裝載舞臺(tái)時(shí)汽車刷出的地方。它應(yīng)該稍微落后于起跑線,否則當(dāng)賽段開始時(shí),車手將受到處罰。汽車刷出指向箭頭的Y軸,后軸與X軸對(duì)齊。
Export Settings
轉(zhuǎn)到場(chǎng)景面板,找到RBR導(dǎo)出設(shè)置。在這里選擇要導(dǎo)出到的目錄,并為stage提供一個(gè)用于測(cè)試的ID。您選擇的ID取決于您的安裝,對(duì)我來說,軌道101是免費(fèi)的。RSF對(duì)此有特殊的規(guī)則,檢查他們的分歧。

然后,單擊Export,應(yīng)該會(huì)在導(dǎo)出目錄中創(chuàng)建stage。我建議打開控制臺(tái)窗口>切換系統(tǒng)控制臺(tái),因?yàn)椴寮⒂涗浰谧鍪裁?,?dāng)導(dǎo)出失敗或當(dāng)導(dǎo)出需要幾分鐘,如果你的階段是復(fù)雜的有用。當(dāng)導(dǎo)出失敗時(shí),插件會(huì)發(fā)出類似E0101的錯(cuò)誤代碼。請(qǐng)參閱錯(cuò)誤的解釋由插件發(fā)出的錯(cuò)誤代碼。如果沒有得到錯(cuò)誤代碼,請(qǐng)告訴我,這可能是一個(gè)錯(cuò)誤?!?/p>
Testing
實(shí)際上,驅(qū)動(dòng)階段需要不同的步驟,這取決于您的RBR安裝。對(duì)于RSF,您應(yīng)該能夠在測(cè)試階段類別中找到您的階段,而無需編輯任何其他游戲文件。對(duì)于其他插件,例如捷克插件,你需要手動(dòng)將:Tracks<track-id>.ini的內(nèi)容添加到TrackSettings.ini; TrackSettings<
Conclusion
實(shí)際上,驅(qū)動(dòng)階段需要不同的步驟,這取決于您的RBR安裝。對(duì)于RSF,您應(yīng)該能夠在測(cè)試階段類別中找到您的階段,而無需編輯任何其他游戲文件。對(duì)于其他插件,例如捷克插件,你需要手動(dòng)將:Tracks<track-id>.ini的內(nèi)容添加到TrackSettings.ini; TrackSettings<

在RBR中,特性按其名稱列出,并附有總結(jié)每種格式支持級(jí)別的注釋。如果這一頁有任何過時(shí)或錯(cuò)誤的地方,請(qǐng)讓我知道。
Geom blocks
用于不透明的靜態(tài)幾何圖形(即世界)。這個(gè)幾何圖形被分割成塊,這些塊只在它們處于渲染距離圈內(nèi)時(shí)才被渲染,而這個(gè)距離圈沿著傳動(dòng)系統(tǒng)是可變的。網(wǎng)格可以有頂點(diǎn)顏色,兩個(gè)漫反射紋理(通過頂點(diǎn)顏色alpha通道混合),一個(gè)高光紋理和一個(gè)陰影紋理。漫反射和高光紋理可以被動(dòng)畫化(UV動(dòng)畫,對(duì)水有用)。有3個(gè)層次的細(xì)節(jié):近、任意和遠(yuǎn)。這些級(jí)別的細(xì)節(jié)工作:附近:高細(xì)節(jié)網(wǎng)格塊時(shí)可見近600比:中低細(xì)節(jié)網(wǎng)格的可見:非常低的細(xì)節(jié)網(wǎng)格只可見超過550塊時(shí)離開RenderQuality =低有一些差異:游戲交換機(jī)之間的距離遠(yuǎn)近幾何是更遙遠(yuǎn)的幾何總是通常用于汽車反射幾何玩家可以驅(qū)動(dòng)高細(xì)節(jié),和附近的標(biāo)記為幾何,它有一個(gè)相應(yīng)的低多邊形副本放置幾何。這是RBR的主要LOD機(jī)制,雖然非常簡(jiǎn)單,但它工作得很好。距離舞臺(tái)40米以上的幾何體是較低的多邊形(因?yàn)橥婕覠o法到達(dá)它,因?yàn)閯x車墻阻礙了他們)和標(biāo)記任何。
[0]陰影紋理生成還沒有完成,但很快就會(huì)
[1]動(dòng)畫紋理uv被解析,我們知道他們是如何工作的。我們只需要將它們添加到出口商和進(jìn)口商。
所有的東西都標(biāo)記在附近,所以即使zfar設(shè)置正確,它不是,最大的觀看距離將是600米。
[3]通過web服務(wù)生成部分陰影。軌道的大小是有限制的。
Object blocks
用于具有透明紋理的靜態(tài)幾何圖形,通常是樹葉。這個(gè)幾何圖形被分割成與geom塊相同的塊。它只有一個(gè)漫反射混合紋理-沒有高光或陰影紋理。這種幾何形狀可以在風(fēng)中搖擺:每個(gè)頂點(diǎn)對(duì)振蕩的振幅、頻率和相位偏移都有單獨(dú)的控制。有一些支持層次的細(xì)節(jié),幾何可以放入一個(gè)低質(zhì)量的緩沖區(qū)或一個(gè)高質(zhì)量的緩沖區(qū)。這減少了遠(yuǎn)處渲染的幾何圖形,但也會(huì)因用戶設(shè)置的高/低質(zhì)量而改變(盡管我懷疑這些天的設(shè)置總是高的)。導(dǎo)入普通階段,查看緩沖區(qū)之間的差異。
這個(gè)特性是0.28版本中的一個(gè)簡(jiǎn)單切換,它使所有通用網(wǎng)格以預(yù)定的方式搖擺。在后來的版本中被刪除。
Water objects
可以使用透明紋理的幾何體,特別是用于水面(如湖泊)。這個(gè)幾何圖形總是透明的,無論用戶的低/高設(shè)置。【待辦事項(xiàng):檢查這個(gè)
Reflection objects
用于偽裝反射-存在于水體下的倒立幾何體。有頂點(diǎn)顏色和兩個(gè)漫反射混合紋理。
Super bowl
這是背景幾何:用戶永遠(yuǎn)無法到達(dá)的遙遠(yuǎn)地形。例如,對(duì)遙遠(yuǎn)的山脈有用。這個(gè)幾何圖形總是繪制的,不管相機(jī)設(shè)置或相機(jī)有多遠(yuǎn),所以保持多邊形計(jì)數(shù)低。像反射物體一樣,它有頂點(diǎn)顏色和每個(gè)多邊形最多兩個(gè)漫反射混合紋理。
Clipping planes
簡(jiǎn)單的透明幾何體,通常是大的矩形平面,遮擋了它們后面的幾何體,但它們本身并不直接可見。這對(duì)減少正在渲染的三角形數(shù)量很有用。有兩種方式可用:方向平面只在一個(gè)方向上阻塞全向平面在兩個(gè)方向上阻塞
Brake wall
賽道周圍的軟墻,防止賽車離舞臺(tái)太遠(yuǎn)。只有一個(gè),所以如果你的舞臺(tái)是一個(gè)電路,它必須在外面-你不能有一個(gè)在一個(gè)回路里面。內(nèi)墻定義了減速效應(yīng)從哪里開始,而外墻是不可穿透的。
Wet/water surfaces
定義水飛濺區(qū)域的簡(jiǎn)單四邊形。水面總是會(huì)濺起水花,但潮濕的表面只有在潮濕的條件下才會(huì)起作用。
這些結(jié)構(gòu)是反向工程的,只是還不能導(dǎo)出。見https://github.com/RichardBurnsRally/blender-rbr-track-addon/issues/243。
Ground collision mesh
地面碰撞網(wǎng)格是一個(gè)優(yōu)化的結(jié)構(gòu),完全獨(dú)立于世界的視覺幾何形狀(至少在游戲文件中)。它包含關(guān)于表面材料的信息,每個(gè)多邊形可以有兩個(gè)材料混合在一起,很像兩個(gè)擴(kuò)散紋理的寶石塊。它也有一些照明信息,這是用來遮蔽汽車和灰塵。
[0]插件不直接暴露這個(gè)導(dǎo)出,相反,它是從你的附近或任何geom塊生成的,如果你在一個(gè)對(duì)象上檢查生成碰撞網(wǎng)格復(fù)選框。這樣做的主要原因是簡(jiǎn)單(軌跡創(chuàng)建者只需要關(guān)心每個(gè)紋理的材質(zhì)映射),但這也使得支持與gem塊的紋理混合相匹配的材質(zhì)混合變得容易。[1] Wallaby在這里寫固定的值,這導(dǎo)致汽車上的一個(gè)微弱的閃爍,當(dāng)你穿越多邊形。
Static shape collision meshes
雖然一些軌道利用了地面碰撞網(wǎng)格的東西,如樹干,它并不真正適合:汽車可能會(huì)卡在樹干。這些形狀碰撞網(wǎng)格是簡(jiǎn)單的[0]封閉網(wǎng)格實(shí)例化:有一個(gè)根網(wǎng)格存儲(chǔ)在文件中,然后該網(wǎng)格的所有使用只包含位置、旋轉(zhuǎn)和縮放信息。網(wǎng)格有一個(gè)物理材料,也可以有一個(gè)柔軟的體量,它的物理作用就像一個(gè)灌木或一個(gè)雪墻。
最大30個(gè)頂點(diǎn),最大84個(gè)邊,最大56個(gè)面。[1]實(shí)例化由每個(gè)碰撞網(wǎng)格對(duì)象的底層網(wǎng)格數(shù)據(jù)決定。為了使實(shí)例工作,必須鏈接副本。軟體被添加為主要碰撞網(wǎng)格的空子對(duì)象,可以是盒子,也可以是球體。在像雪墻這樣完全柔軟的對(duì)象的情況下,父網(wǎng)格也應(yīng)該是空的。導(dǎo)入香草RBR舞臺(tái),看看雪墻是如何設(shè)置的。[2]如果您知道正確的材質(zhì)ID,就可以創(chuàng)建灌木林。[3]不能抓取對(duì)象并使用鼠標(biāo)移動(dòng)它們,必須手動(dòng)輸入新的坐標(biāo)。
Interactive objects
最大30個(gè)頂點(diǎn),最大84個(gè)邊,最大56個(gè)面。[1]實(shí)例化由每個(gè)碰撞網(wǎng)格對(duì)象的底層網(wǎng)格數(shù)據(jù)決定。為了使實(shí)例工作,必須鏈接副本。軟體被添加為主要碰撞網(wǎng)格的空子對(duì)象,可以是盒子,也可以是球體。在像雪墻這樣完全柔軟的對(duì)象的情況下,父網(wǎng)格也應(yīng)該是空的。導(dǎo)入香草RBR舞臺(tái),看看雪墻是如何設(shè)置的。[2]如果您知道正確的材質(zhì)ID,就可以創(chuàng)建灌木林。[3]不能抓取對(duì)象并使用鼠標(biāo)移動(dòng)它們,必須手動(dòng)輸入新的坐標(biāo)。
視覺幾何體(交互對(duì)象)是父對(duì)象,而碰撞網(wǎng)格應(yīng)該是直接的子對(duì)象。具有與靜態(tài)形狀碰撞網(wǎng)格相同的實(shí)例約束。
Dynamic fences/tapes
彩色膠帶或靈活的橙色塑料圍欄,它們可以相互作用。
[0]點(diǎn)擊放置,但是在放置后改變柵欄位置需要手動(dòng)輸入坐標(biāo)
Animations
沿著傳動(dòng)系統(tǒng)的某些點(diǎn),可以觸發(fā)鹿穿過馬路或觀眾逃離道路的動(dòng)畫,帶有一些隨機(jī)元素。
[0]一些小bug,比如動(dòng)畫在預(yù)覽中有不正確的旋轉(zhuǎn)
Sound Triggers
在回放中引起鳥叫聲的球體。[0]手動(dòng)坐標(biāo)輸入
Cameras
重播攝像頭被放置在道路沿線,并在傳動(dòng)系統(tǒng)的特定位置觸發(fā)。它們可以是穩(wěn)定的相機(jī),也可以是手持式的(即shakey)。攝像機(jī)的視場(chǎng)和位置可以根據(jù)傳動(dòng)系統(tǒng)位置通過貝塞爾樣條動(dòng)畫,位置動(dòng)畫可以用來創(chuàng)建螺旋錐(以及螺旋錐噪聲設(shè)置)。
在現(xiàn)有的標(biāo)記/觸發(fā)器之間添加標(biāo)記/觸發(fā)器可能導(dǎo)致必須刪除所有標(biāo)記/觸發(fā)器并重新創(chuàng)建它們。此外,正確放置相機(jī)需要所有的幾何圖形都是活躍的,但這大大降低了FPS。
Driveline
傳動(dòng)系統(tǒng)是一個(gè)貝塞爾樣條,它決定何時(shí)讀取pacenotes,何時(shí)觸發(fā)事件(開始/結(jié)束/檢查點(diǎn)),攝像機(jī)的位置動(dòng)畫和渲染距離。當(dāng)司機(jī)呼救時(shí),它還可以用來確定汽車的位置和方向。
Pacenote對(duì)[0]的支持僅限于原生RBR注釋,它們直接添加到driveline對(duì)象中。動(dòng)畫是由攪拌器處理的,我們把時(shí)間軸上的時(shí)間作為舞臺(tái)上的距離。當(dāng)編輯傳動(dòng)系統(tǒng)時(shí),你會(huì)注意到插件將重置你的手柄,以保持樣條與RBR兼容:手柄必須是相等的長(zhǎng)度,面對(duì)相反的方向。對(duì)于渲染距離,創(chuàng)建一個(gè)圓類型的空對(duì)象,并使傳動(dòng)系統(tǒng)樣條作為父對(duì)象。將RBR對(duì)象類型設(shè)置為渲染距離,并將X旋轉(zhuǎn)設(shè)置為90度,以便圓形平躺在地面上。您可以改變空顯示大小來控制渲染距離,這可以隨著時(shí)間的推移而動(dòng)畫化。導(dǎo)入香草階段,看看它通常是如何動(dòng)畫的:它保持盡可能小的尺寸,而不會(huì)導(dǎo)致幾何圖形彈出或彈出。如果需要顯示尺寸>1000米,你可以通過縮放對(duì)象來做到這一點(diǎn),導(dǎo)出的渲染距離是縮放和空顯示尺寸的乘積。[1] Wallaby根本不編寫呈現(xiàn)距離,這將導(dǎo)致在啟動(dòng)階段時(shí)該值不可預(yù)測(cè)—它將使用來自先前驅(qū)動(dòng)階段的最后一個(gè)已知值。一個(gè)FixUp補(bǔ)丁修復(fù)了這個(gè)最近,所以它總是重置在一個(gè)階段的開始。
Texture
RBR紋理被打包成一個(gè)。rbz文件(zip格式)和一個(gè)。ini文件來控制紋理選項(xiàng)。
[0] RBR喜歡寬度和高度為2 (2^N)的整數(shù)冪的紋理。如果紋理不是這個(gè)大小,它會(huì)在舞臺(tái)加載時(shí)重新縮放到這個(gè)大小,這個(gè)過程非常緩慢。僅僅一個(gè)大小不合適的紋理就會(huì)使加載時(shí)間從幾乎瞬間變慢。