天天看點

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

本節書摘來異步社群《精通unreal遊戲引擎》一書中的第5步,作者: 【英】ryan shah(沙哈)譯者: 王曉慧 責編: 陳冀康,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

精通unreal遊戲引擎

什麼是subtraction volume(減法體)?subtraction volume(減法體)和bsp網格配合使用,可以從場景中删除bsp塊。例如使用bsp建立一面牆,牆中有一扇門。首先建立一面牆,然後使用減法bsp從牆中鑿出一扇門。下面我們就來學習如何實作。

建立減法bsp的過程和上一節我們建立牆的過程沒有太大差別。事實上,這兩個過程幾乎一樣。首先建立另一個立方體。如同前面的操作,前往modes(模式)視窗(通常在項目主視窗的左上角),如圖36所示。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖
注意: 該工具欄會根據您螢幕的分辨率隐藏一些選項。拖拉工具欄的底部和側面邊框來擴充它,就可以看到所有選項!

選擇bsp,如圖37所示,單擊box(盒子)并拖拽它到項目場景視圖中。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

現在場景中在您放置bsp的地方已經有了一個大小合适的盒子。需要注意的是,如果您的盒子有一半陷在了地闆裡,或者有一半嵌入了牆中,可以使用transform(平移)工具(由3個箭頭組成,分别是藍色、紅色和綠色)移動盒子讓它剛好坐落在地面上。如果您沒有看到平移工具,在場景中直接單擊盒子即可。

下面使用geometry edit(幾何體編輯)模式将盒子編輯成門框的形狀。參考unreal engine 4提供的模闆,盒子的高度是190cm左右。即使使用geometry edit(幾何體編輯)工具也很難精确地測量,是以嘗試做到門的高度至少在200cm左右,這樣遊戲角色才能輕松地穿過。一個測試的好方法是單擊alt+p運作關卡,确認立方體與角色對齊(單擊esc鍵退出play-in-editor模式)。

但是當使用play-in-editor模式時,您可能會發現遊戲角色在場景中地闆的下面,好像跌入了深淵,或者角色和建立的立方體不在同一個區域(因為此刻的地圖被分成了4個區域)。

為解決這一問題,前往scene outliner(場景大綱視圖,在unreal engine 4視窗的右上角),如圖38所示。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

在scene outliner(場景大綱視圖)視窗中向下滾動找到player start,單擊它。現在場景視圖中,遊戲角色已經在被選中,您可以使用transform(平移)工具将其移動到建立的立方體附近。

然後将立方體編輯成門的形狀,下面該把它變成減法bsp了。在此之前,為了進行後面的操作,我們将這扇門複制4次。具體方式是右鍵(mac上是ctrl鍵+滑鼠左鍵)單擊它,在彈出的菜單中選擇edit(編輯)>copy(複制),如圖39所示。這是因為減法bsp雖然可以複制,但是它們在場景中并不明顯(隻有紅色的線框提示),這樣很難展示我們的操作。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

4扇門已經建立好,下面把它們放到合适的位置。我将以其中一扇門為例示範如何操作,剩下的就很簡單了。單擊場景中的任意一面牆,使用平移工具移動選中的這扇門嵌入到這面牆中間,如圖40所示。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖
為了更好地看清楚該螢幕截圖,這裡對門使用了草坪材質。

在移動門将其嵌入牆的過程中,您可能會發現用作門的這個立方體的厚度不及牆的厚度。為了成功地從牆中鑿開一扇門,門的兩個面都需要漏在牆的外面,雖然不需要很精确,但至少門的厚度要比牆的厚度大。

如何調整門的厚度呢?還記得modes(模式)視窗的geometry edit(幾何體編輯)工具嗎?使用該工具調整門的兩個面之間的厚度,使得門的前面和後面都漏在牆外面,如圖41所示。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖
地闆設定為透明,為了展示牆的内部,顯示門嵌入牆中,并且門的前後都漏在牆外。'

将立方體編輯為門的形狀,并确定好位置之後,下面就準備将立方體變成一扇門。選中該立方體,details(細節)面闆中顯示其屬性,如圖42所示。details(細節)面闆的預設位置是主視窗的右邊,scene outliner(場景大綱視圖)視窗的下面。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

在details(細節)面闆的屬性設定中,有一個brush settings部分位于面闆上方、search(搜尋框)下面。其中第一個選項是brush type(畫刷類型),預設值是additive,意思是将bsp添加到場景中。我們想要的是從場景中删除bsp,單擊下拉框,在彈出的下拉菜單中選擇subtractive。這時您會看到,之前我們建立的bsp不可見了。與添加bsp不同,subtractive是指從場景中減去bsp,即删除牆裡面的幾何體,如圖43所示。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖
“減法”bsp隻對bsp有效,不适用于靜态網格!

此刻您會發現地闆被減去的門吞噬了一部分,我們将在設定好所有門之後解決這個問題。下面對現在的關卡進行一個快速的測試(alt鍵+p鍵測試,esc鍵退出),以保證遊戲角色能夠穿過這扇門,如圖44所示。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

下面對餘下的這3扇門進行同樣的設定操作。為了讓角色能夠在地圖中自由地穿行,為遊戲場地中的每一面内牆上都鑿出一扇門,如圖45所示。建立好之後進行測試,讓遊戲角色從一個房間開始,穿過所有房間,最後回到起始房間。一旦完成上述操作,就可以繼續下面的内容了。

《精通Unreal遊戲引擎》一第5步 使用減法BSP繼續建立地圖

繼續閱讀