設定遊戲區域
在第一部分中,我們將設定遊戲區域。讓我們從匯入初始素材、設定遊戲場景入手。
我們準備了一個已包含本教學所需 3D 模型與音效的 Godot 專案(連結見索引頁)。若尚未下載,可於此取得壓縮檔:Squash the Creeps assets。
一旦下在完成,解壓縮到任意處,然後打開 Godot 並在專案管理員裡點擊 [匯入] 按鈕來新增該專案。
在匯入彈窗中輸入新建立的 3d_squash_the_creeps_starter/ 目錄完整路徑。你也可以點擊右側的 Browse 按鈕,打開檔案對話框並定位到該資料夾中的 project.godot 檔案。
點擊 Import 以在編輯器中開啟專案。
可能會出現通知視窗表示該專案由較舊的 Godot 版本建立。請點擊 OK 以轉換為你目前的 Godot 版本。
若未自動開啟,請從專案清單中手動開啟。
起始專案中包含一個圖示和兩個資料夾:art/ 和 fonts/。你可以在裡面找到遊戲中我們會用到的藝術素材和音樂。
裡面有兩個 3D 模型,player.glb 和 mob.glb,一些模型使用的材質,以及一首音樂。
設定建置系統
我們將建立我們的主要場景,並以一個純粹的 Node 作為它的根節點。在 場景 面板中,點擊位於左上角、以「+」圖示表示的 新增子節點 按鈕,然後雙擊 Node。將該節點命名為 Main 。另一種重新命名節點的方法是右鍵點擊 Node 並選擇 重新命名 (或按下 F2)。或者,要新增節點到場景中,您可以按下 Ctrl + A`(macOS 上是 :kbd:`Cmd + A)。
按下 Ctrl + S (macOS 請按 Cmd + S) 將場景儲存為 main.tscn 。
我們先新增一個地板,以防止角色掉落。要建立地板、牆壁或天花板等靜態碰撞器,可以使用 StaticBody3D 節點。它們需要 CollisionShape3D 子節點來定義碰撞區域。選擇 Main 節點後,新增 StaticBody3D 節點,然後新增 CollisionShape3D。將 StaticBody3D 重命名為 Ground 。
現在場景看起來會這樣:
在 CollisionShape3D 旁邊會出現一個警告旗標,因為我們還沒有定義它的形狀。如果你點擊這個圖示,就會彈出一個視窗,為你提供更多資訊。
要建立形狀,請選中 CollisionShape3D,轉到*屬性檢視器*,然後按一下 Shape*(形狀)屬性旁邊的 *<空> 欄位。建立一個新的 BoxShape3D。
盒子形狀非常適合平坦的地面和牆壁。它的厚度使它能夠可靠地阻擋甚至快速移動的物體。
一個立方體的線框會在視埠中出現,並帶有三個橘色點。您可以點擊並拖曳這些點來互動式地編輯形狀的範圍。我們也可以在屬性檢視器中精確地設定尺寸。點擊 BoxShape3D 以展開資源。將其 Size 的 X 軸設為 60 ,Y 軸設為 2 ,Z 軸設為 60 。
碰撞形狀是不可見的。我們需要新增一個與之配套的視覺層。選擇 Ground 節點並新增一個 MeshInstance3D 作為其子節點。
在 屬性面板*(Inspector)中,點擊 *Mesh 旁的欄位,建立一個 BoxMesh 資源,產生一個可見的立方體。
再次設定大小,對於預設值來說它有點太小了。點擊立方體圖示展開資源,並將其 Size 設定為 60、2、60。由於立方體資源使用的是大小(size)而不是範圍(extents),我們需要使用這些值,以便它與我們的碰撞形狀相配對。
您應該會在視口中看到一個覆蓋網格以及藍色和紅色軸的寬灰色平板。
我們要把地面往下移動,這樣才能看到地板網格。要做到這一點,可以使用網格吸附功能。在 3D 編輯器中,有兩種方式可以啟用網格吸附。第一種是按下「使用吸附」按鈕(或按下 Y 鍵)。第二種是選取一個節點,拖曳變形控制器的控制柄, 然後 在按住滑鼠的同時按住 Ctrl 鍵,只要 Ctrl 鍵持續按住,就會啟用吸附功能。
首先,使用您偏好的方式設定 吸附 。然後使用 Y 軸(場景編輯器上的綠色箭頭)移動 Ground 節點。
備註
如果你沒有看到如上圖所示的 3D 物件操作器,請確保已啟動視圖上方工具列中的*選擇模式*。
為了有一個可見的編輯器柵格,可以將地面往下移動 1 米。視口左下角的標籤會顯示你將該節點平移了多遠。
備註
子節點會跟隨 Ground 節點一起往下移動。請確保你移動的是 Ground 節點,而不是 MeshInstance3D 和 CollisionShape3D。
最終,Ground 的 transform.position.y 應當是 -1
現在來新增一個平行光,從而讓我們的整個場景不全都是灰色的。選擇 Main 節點,然後新增一個子節點 DirectionalLight3D。
我們需要移動並旋轉 DirectionalLight3D 節點。點擊並拖曳操作器的綠色箭頭將其向上移動,然後點擊並拖曳紅色弧線以繞 X 軸旋轉,直到地面被照亮為止。
在 Inspector 中勾選核取方塊以啟用 Shadow。
此時你的專案應該會長這樣。
這就是我們的起點了。在下一部分中,我們將處理玩家場景與基礎移動。