Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

基礎 XR 運動

對於基本運動,我們將繼續使用 Godot XR 工具庫。該庫既包含基本運動功能,也包含更高級的功能。

新增更多節點

我們需要做的第一步是為我們的 XROrigin3D <class_xrorigin3d> 節點新增一個輔助節點。由於 XR 支援房間尺度跟踪,因此您不能簡單地將 XR 設定新增至 CharacterBody3D <class_characterbody3d>` 節點並期望一切正常。當使用者在其實體空間中移動並且不再站在房間的中心時,您將會遇到麻煩。 Godot XR Tools 將所需的邏輯嵌入到名為「PlayerBody」的輔助節點中。

選擇您的 XROrigin3D <class_xrorigin3d> 節點,然後按一下「實例化子場景」按鈕以新增子場景。選擇“addons/godot-xr-tools/player/player_body.tscn”並新增此節點。

新增函式

該節點控制角色在遊戲中的移動,並會立即對重力做出反應。因此,為了防止玩家無限下墜,我們將在場景中快速新增一個地板。

我們首先為根節點新增一個 StaticBody3D <class_staticbody3d> 節點,並將其重新命名為「Floor」。我們新增一個 MeshInstance3D <class_meshinstance3d> 節點作為「Floor」的子節點。然後建立一個新的 PlaneMesh <class_planemesh>` 作為網格。現在我們將網格尺寸設定為 100 x 100 公尺。接下來,我們新增一個 CollisionShape3D <class_collisionshape3d> 節點作為「Floor」的子節點。然後建立一個“BoxShape”作為我們的形狀。我們將此盒子形狀的尺寸設定為 100 x 1 x 100 公尺。我們還需要將碰撞形狀向下移動 0.5 米,以便盒子的頂部與地板齊平。

為了更容易看到我們實際上在世界各地移動,白色地板是無法做到這一點的。為此,我們為 PlaneMesh 新增材質,並將反照率設定為我們使用「Wahooneys 優秀的免費紋理產生器 <https://wahooney.itch.io/texture-grid-generator>」建立的網格紋理。

../../_images/godot_xr_tools_floor.webp

字典

我們將開始在我們的設定中新增一些基本的直接運動。這允許使用者使用搖桿輸入在虛擬世界中移動。

備註

值得注意的是,當玩家在現實世界中靜止不動時,在虛擬世界中移動可能會引起噁心,尤其是對於剛接觸 VR 的玩家而言。我們的運動功能的預設相當保守。我們建議您堅持這些預設設定,但在遊戲中提供一些功能,以便為習慣玩 VR 遊戲的經驗豐富的使用者啟用不太舒適的設定。

我們希望在右側控制器上啟用此功能。我們透過在右側 XRController3D <class_xrcontroller3d> 節點新增一個子場景來實作此目的。選擇“addons/godot-xr-tools/functions/movement_direct.tscn”作為要新增的場景。

此功能透過使用右側控制器上的操縱桿為玩家新增向前和向後移動。它還有一個選項可以新增左/右平移,但預設情況下這是禁用的。

相反,我們將新增玩家使用該操縱桿轉動的功能。我們將向控制器節點新增另一個子場景,為此選擇「addons/godot-xr-tools/functions/movement_turn.tscn」。

轉彎系統預設使用快速轉彎方法。這意味著轉向是分步進行的。這可能看起來很刺耳,但這是一種久經考驗的對抗暈動病的方法。您可以透過變更轉彎節點上的「mode」屬性輕鬆切換到提供平滑轉彎的模式。

如果你在這個時間點運作你的遊戲,你會發現你可以使用右手搖桿在世界中自由移動。

Teleport

有些使用者覺得更愉快的直接移動的替代方法是傳送到遊戲世界中的另一個位置。 Godot XR Tools 透過傳送功能支援這一點,我們將把它新增到我們的左手控制器中。

透過選擇「addons/godot-xr-tools/functions/function_teleport.tscn」場景,將新的子場景新增至左手 XRController3D <class_xrcontroller3d>` 節點。

新增此場景後,玩家將能夠透過按下左手控制器上的觸發器,指向他們想去的地方,然後釋放觸發器來傳送到世界各地。玩家還可以使用左手控制器操縱桿調整方向。

最後場景應該長這樣。

../../_images/godot_xr_tools_basic_movement.webp

更多高級移動功能

Godot XR 工具增加了更多的運動功能,如滑翔,抓鉤,噴氣背包,攀爬機制等。

大多數工作原理與我們迄今為止處理的基本運動功能類似,只需將插件中的相關子場景新增到實作它的控制器即可。

我們將在本教學後面更詳細地介紹其中一些需要額外設定(例如攀登)的內容,但對於其他設定,請查看 Godot XR Tools 自己的幫助頁面以獲取詳細資訊。