《精通Unreal游戏引擎》一第4步 使用BSP创建地图
本節(jié)書摘來異步社區(qū)《精通Unreal游戲引擎》一書中的第4步,作者: 【英】Ryan Shah(沙哈)譯者: 王曉慧 責(zé)編: 陳冀康,更多章節(jié)內(nèi)容可以訪問云棲社區(qū)“異步社區(qū)”公眾號查看。
第4步 使用BSP創(chuàng)建地圖
精通Unreal游戲引擎
首先,前往Modes(模式)窗口(通常在項目主窗口的左上角),如圖19所示。
注意:
該工具欄會根據(jù)您屏幕的分辨率隱藏一些選項。拖拉工具欄的底部和側(cè)面邊框擴(kuò)展它,就可以看到所有選項!
下面使用BSP刷子創(chuàng)建一些幾何體。在此之前,讓我來解釋一下什么是BSP,使用BSP的好處和注意事項。
BSP是可編輯的幾何體,可以用來充實項目的場景。想一下,您在使用可定制的樂高玩具創(chuàng)建關(guān)卡時,可以很快得到雛形,但是樂高玩具并不適用于制作最終產(chǎn)品。為什么呢?因為BSP非常占用資源。BSP的主要功能是幫助您勾勒出一個關(guān)卡的輪廓,和正常的靜態(tài)網(wǎng)格相比,它們在渲染的時候會消耗更多的內(nèi)存和資源。
讀到這里,您肯定要問“為什么一開始還要使用BSP呢?”因為BSP可以在Unreal Engine 4中快速簡單地創(chuàng)建一個游戲關(guān)卡。在30秒之內(nèi),您就能創(chuàng)建一個可以自由行動的房間。
此外,您可以將任意的BSP(或者一些BSP的集合)轉(zhuǎn)換為一個靜態(tài)網(wǎng)格,然后將這個靜態(tài)網(wǎng)格導(dǎo)出到您喜歡的3D建模程序中,進(jìn)而以它們?yōu)榛A(chǔ)創(chuàng)建最終的游戲關(guān)卡。一旦創(chuàng)建完畢,還能將該網(wǎng)格導(dǎo)回Engine來代替BSP,給您節(jié)省了大量的時間和不必要的努力。
關(guān)于BSP的更多信息,推薦您到Unreal Engine網(wǎng)站上或者在Unreal Engine 4的窗口中單擊F1查看相關(guān)文檔。
現(xiàn)在我們在場景中創(chuàng)建兩面墻,把大塊空間分割成幾個小塊,讓我們的地圖顯得更有深度,也更有趣。
前往Mode(模式)工具箱(記得調(diào)整窗口大小以看到所有選項),選擇類別BSP,如圖20所示,單擊Box(盒子)并拖拽它到項目場景視圖中。
現(xiàn)在場景中在您放置BSP的地方已經(jīng)有了一個大小合適的盒子。需要注意的是,如果您的盒子有一半陷在了地板里,或者有一半嵌入了墻中,可以使用Transform(平移)工具(由3個箭頭組成,分別是藍(lán)色、紅色和綠色)移動盒子讓它剛好坐落在地面上。如果您沒有看到平移工具,在場景中直接單擊盒子即可,如圖21所示。
注意:
為了讓您看清圖像中的盒子,這里對地面添加了材質(zhì)。如果書中圖像的分辨率不高,可以從http://content.kitatusstudios.co.uk網(wǎng)站上下載本書中所有圖像的高清版本。
這個盒子看起來不錯,但是我們需要的是在當(dāng)前場景中建一面墻。類似前面的操作,可以很容易地把盒子變成一面墻(記住:直接單擊盒子,平移工具就出現(xiàn)了),先把盒子移動到地圖中間,如圖22所示。
注意:
當(dāng)移動盒子的時候,您可能不經(jīng)意地把它放在了場景中某個物體的上面,這個物體看起來像一個操控桿或者一面旗,且會從中出來一個藍(lán)色的箭頭。其中,這個操控桿是玩家的初始位置, 箭頭是玩家面朝的方向。如果操縱桿在盒子內(nèi)部,情況會很糟糕,因為玩家將出現(xiàn)在盒子內(nèi)部,所以在移動盒子的時候請注意這一點。
您可以單擊它,使用平移工具將操縱桿移出去,或者在Scene Outliner(場景大綱視圖,通常在工作區(qū)的右上方)中找到Player Start,單擊Player Start并用平移工具將其移出去。
現(xiàn)在,盒子已經(jīng)在地圖中間了,但是它看起來并不像一面墻。再次前往Modes(模式)工具箱(我們創(chuàng)建盒子的地方),您會發(fā)現(xiàn)Modes(模式)窗口的上方有5個按鈕,如圖23所示。
圖 #1 Place (放置)—圖標(biāo)是一個立方體,前面放著一個燈泡。該工具可以實現(xiàn)把光照、BSP、觸發(fā)器等對象放置到場景中。
圖 #2 Paint (描畫)—圖標(biāo)是一個畫刷。該工具可以實現(xiàn)在靜態(tài)網(wǎng)格上繪制頂點信息,例如在巖石上添加苔蘚(您需要有帶有苔蘚的巖石材質(zhì),這是后續(xù)的內(nèi)容,這里不再贅述)。
圖 #3 Landscape (地貌)—圖標(biāo)是被雪覆蓋的群山。該工具可以生成地貌(類似Far Cry編輯器)或者通過heightmaps(高度圖工具)將事先創(chuàng)建好的地貌導(dǎo)入進(jìn)來。
圖 #4 Foliage (植被)—圖標(biāo)是幾片憂郁的葉子。該工具可以實現(xiàn)同時放置許多網(wǎng)格,如草和樹木。
圖 #5 Geometry Edit (幾何體編輯)—圖標(biāo)是被削去了四分之一的盒子。該工具可以實現(xiàn)編輯BSP對象的頂點。例如,您可以讓盒子的一面變大或者變小;讓盒子的兩個頂角匯合等。
我們要把立方體變成一面墻,所以使用第五個工具—Geometry Edit(幾何體編輯)。直接單擊該工具按鈕,Modes(模式)工具箱內(nèi)的選項會發(fā)生變化。該工具會自動加載默認(rèn)設(shè)置—Edit(編輯)模式,如圖24所示。在這5個按鈕下方有一些單選框,直接單擊來實現(xiàn)模式的切換。
這里我們需要Edit(編輯)模式,所以不改變?nèi)魏卧O(shè)置,但是有必要了解這些模式選項,方便以后使用。
小提示:
直接單擊Geometry Edit(幾何體編輯)按鈕來激活該工具。Unreal Engine 4的大部分工具,會有一個明顯的激活提示,通常工具按鈕會變成橘黃色。Modes(模式)工具欄有一點不同,這里為什么要介紹這個呢?因為很多時候,當(dāng)您想把一個BSP從位置A移動到位置B時,有可能不經(jīng)意的選中了盒子的一面然后把盒子變大了。如何阻止這種情況發(fā)生呢?很簡單!時不時地查看Modes(模式)窗口,以確定當(dāng)前選中的是Place(放置)工具,而不是其他工具。
現(xiàn)在已經(jīng)選中了Geometry Edit(幾何體編輯)工具,下面單擊選中場景視圖中待編輯的BSP。因為我們想編輯之前創(chuàng)建的盒子,所以單擊盒子。這時盒子的邊緣被黃色和藍(lán)色高亮顯示(盒子的頂角上出現(xiàn)藍(lán)色方塊),如圖25所示,表示盒子已經(jīng)被選中,就可以進(jìn)行編輯了。
注意:
單擊盒子,Gizmo(小工具,選中對象中央的紅綠藍(lán)箭頭組合)變成了橢圓形狀?還是箭頭變成了立方體?一旦出現(xiàn)了這兩種情況,表示當(dāng)前處于錯誤的Gizmo mode(編輯模式)。我們可以在Gizmo Selector(編輯模式選擇器)中選擇正確的編輯模式。Gizmo Selector(編輯模式選擇器)在主場景視圖中,位于屏幕的中間或者是右上方(這取決于您屏幕的大小),如圖26所示。
黃色底的選項表示當(dāng)前選中的編輯模式。一共有3個選項:左邊的表示Transform(平移),可以在XYZ平面上移動對象;中間的表示Rotator(旋轉(zhuǎn)),可以沿著XYZ坐標(biāo)旋轉(zhuǎn)對象;右邊的表示Scale(縮放),可以使對象變大或者變小。
為了借助Geometry Edit(幾何體編輯)工具將盒子變成一面墻的形狀,我們使用最左邊的Transform(平移)模式。如果該模式當(dāng)前沒有被選中,直接單擊Gizmo Selector(編輯模式選擇器)左邊的按鈕將編輯模式切換為Transform(平移)。
現(xiàn)在我們可以編輯盒子的大小了,但是如何精確地控制呢?一旦盒子被選中,可以選擇盒子的一個面來編輯。所以首先要確定盒子處于選中狀態(tài),然后單擊任意一面。正處于編輯狀態(tài)的面會被黃色高亮顯示,您可以準(zhǔn)確定位它,如圖27所示。
對于這個面,我們需要把墻變得窄一點。雖然厚墻也可以,但是窄墻看起來更加美觀!在Transform(平移)編輯模式下,單擊綠箭頭,按住鼠標(biāo)左鍵拖拽箭頭直到盒子的厚度是原來的一半,如圖28所示。
下面就使用上述方法創(chuàng)建一面墻。選中您剛剛編輯的那個面左邊的面,拖拽其直至與外墻(首次創(chuàng)建項目時自動生成的)重合,如圖29所示。
墻的一側(cè)已經(jīng)編輯完畢,單擊這面墻的另一側(cè),拖拽其直至與另一面外墻重合,這時游戲場地被分割成了兩部分,如圖30所示。
如何讓墻變得高一點?選中最上面的面,拖拽其與外墻的高度一致即可,如圖31所示。
我們已經(jīng)有了一面墻,把場景分割成了兩部分。但是在完成之前,還有一些操作。退出Geometry Edit(幾何體編輯)工具,前往Modes(模式)窗口,單擊Place(放置)按鈕(Modes窗口的最上面,其圖標(biāo)是一個立方體,前面放著一個燈泡),如圖32所示。
然后單擊選中剛剛創(chuàng)建好的墻,如圖33所示。
同時按Ctrl+C組合鍵復(fù)制這面墻,然后同時按Ctrl+V組合鍵粘貼得到墻的一個副本。也可以右鍵單擊這面墻(Mac上是Ctrl鍵+鼠標(biāo)左鍵),在下拉菜單中選擇Edit(編輯),在彈出的二級菜單中選擇Duplicate(復(fù)制)。
此時您可能看不到復(fù)制得到的墻。到場景視圖的中間或者中間偏右的位置找到Gizmo Selector(編輯模式選擇器),選擇中間的Rotator(旋轉(zhuǎn))模式。將這面墻向左或向右(使用出現(xiàn)的標(biāo)示符中的藍(lán)色區(qū)域)旋轉(zhuǎn)90°,這時在地圖中間出現(xiàn)了一個大大的X或+號,如圖34所示。
如何使得新建的墻與外墻恰好吻合呢?使用之前學(xué)過的方法調(diào)整墻的長度,即使用Geometry Edit(幾何體編輯)工具進(jìn)行縮放得到合適的尺寸。
現(xiàn)在場景中已經(jīng)有4個完美分割好的房間讓我們來創(chuàng)建一個很酷的項目。但是您有沒有注意到哪里有些不對勁,好像忽略了很重要的東西?
由于這兩面墻的緣故,這些房間之間不能穿梭。如何解決這一問題呢?下面我們將學(xué)習(xí)Subtraction Volume(減法體)。
總結(jié)
以上是生活随笔為你收集整理的《精通Unreal游戏引擎》一第4步 使用BSP创建地图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《自己动手做交互系统》——导读
- 下一篇: 《Python编程快速上手——让繁琐工作