Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Grundlegende XR-Fortbewegung
Für die grundlegende Fortbewegung werden wir weiterhin unsere Godot XR Tools-Bibliothek verwenden. Die Bibliothek enthält sowohl grundlegende Bewegungsfunktionen als auch fortgeschrittenere Funktionen.
Hinzufügen unseres Spieler-Bodys
Der erste Schritt, den wir tun müssen, ist, einen Helfer-Node zu unserem XROrigin3D-Node hinzuzufügen. Da XR raumbezogenes Tracking unterstützt, können Sie nicht einfach Ihr XR-Setup zu einem CharacterBody3D-Node hinzufügen und erwarten, dass die Dinge funktionieren. Sie werden Probleme bekommen, wenn der Benutzer sich in seinem physischen Raum bewegt und nicht mehr in der Mitte des Raumes steht. Godot XR Tools bettet die benötigte Logik in einen Hilfs-Node namens PlayerBody ein.
Select your XROrigin3D node and click on the button to add a child scene.
Select addons/godot-xr-tools/player/player_body.tscn and add this node.
Hinzufügen eines Bodens
Dieser Node regelt die Bewegung des Charakters im Spiel und reagiert sofort auf die Schwerkraft. Um also zu verhindern, dass unser Spieler in die Unendlichkeit herunterfällt, fügen wir unserer Szene schnell einen Boden hinzu.
We start by adding a StaticBody3D node to our root node and we rename this to Floor.
We add a MeshInstance3D node as a child node for our Floor.
Then create a new PlaneMesh as its mesh.
For now we set the size of the mesh to 100 x 100 meters.
Next we add a CollisionShape3D node as a child node for our Floor.
Then create a BoxShape as our shape.
We set the size of this box shape to 100 x 1 x 100 meters.
We also need to move our collision shape down by 0.5 meters so the top of our box is flush with the floor.
To make it easier to see that we're actually moving around our world, a white floor isn't going to do it. Create a texture using Wahooneys excellent free texture generator. Once you've created the texture add it to your project. Then create a new material for the MeshInstance3D node, add your texture as the albedo, and enable Triplaner under UV1 in the material properties.
Direkte Bewegung
Wir werden damit beginnen, einige grundlegende direkte Bewegungen in unser Setup einzubauen. So kann sich der Benutzer mit dem Joystick durch die virtuelle Welt bewegen.
Bemerkung
Es ist wichtig zu beachten, dass die Bewegung durch die virtuelle Welt, während der Spieler in der realen Welt still steht, Übelkeit auslösen kann, besonders für Spieler, die neu mit VR umgehen. Die Default-Einstellungen für unsere Bewegungsfunktionen sind ziemlich konservativ. Wir raten Ihnen, sich an diese Default-Einstellungen zu halten, bieten aber Funktionen im Spiel an, um weniger behagliche Einstellungen für erfahrenere Benutzer zu ermöglichen, die es gewohnt sind, VR-Spiele zu spielen.
Wir möchten dies für den rechten Controller aktivieren. Dazu fügen wir dem rechten XRController3D-Node eine Subszene hinzu. Wählen Sie addons/godot-xr-tools/functions/movement_direct.tscn als die hinzuzufügende Szene.
Mit dieser Funktion kann sich der Spieler mit dem Joystick des rechten Controllers vorwärts und rückwärts bewegen. Es gibt eine Option, um auch Links/Rechts-Strafing hinzuzufügen, aber standardmäßig ist dies deaktiviert.
Stattdessen fügen wir die Fähigkeit hinzu, dass sich der Spieler mit dem Joystick auch drehen kann. Wir fügen eine weitere Unterszene zu unserem Controller-Node hinzu und wählen dafür addons/godot-xr-tools/functions/movement_turn.tscn.
Das Drehen-System verwendet standardmäßig einen Snap-Turn-Ansatz. Das bedeutet, dass das Drehen in Schritten erfolgt. Dies mag unangenehm erscheinen, ist aber eine bewährte Methode zur Bekämpfung der Bewegungsübelkeit. Sie können ganz einfach zu einem Modus wechseln, der ein sanftes Drehen ermöglicht, indem Sie die Property mode auf dem Turn-Node ändern.
Wenn Sie Ihr Spiel zu diesem Zeitpunkt starten, werden Sie feststellen, dass Sie sich mit dem rechten Joystick frei durch die Welt bewegen können.
Teleportieren
Eine Alternative zur direkten Bewegung, die manche Benutzer als angenehmer empfinden, ist die Möglichkeit, sich an einen anderen Ort innerhalb der Spielwelt zu teleportieren. Die Godot XR Tools unterstützen dies durch die Teleport-Funktion und wir werden diese Funktion zu unserem Linke-Hand-Controller hinzufügen.
Fügen Sie eine neue Child-Szene zu Ihrem linken XRController3D-Node hinzu, indem Sie die Szene addons/godot-xr-tools/functions/function_teleport.tscn auswählen.
With this scene added the player will be able to teleport around the world by pressing the trigger on the left hand controller, pointing where they want to go, and then releasing the trigger. The player can also adjust the orientation by using the left hand controller's joystick.
Wenn Sie alle Anweisungen korrekt befolgt haben, sollte Ihre Szene jetzt etwa so aussehen:
Fortgeschrittenere Bewegungsfunktionen
Godot XR Tools fügt viele weitere Bewegungsfunktionen hinzu, z.B. Gleiten, einen Greifhaken, ein Jetpack, Klettermechanik usw.
Die meisten funktionieren ähnlich wie die grundlegenden Bewegungsfunktionen, die wir bisher behandelt haben: Fügen Sie einfach die entsprechende Subszene aus dem Plugin zu dem Controller hinzu, der sie implementiert.
Wir werden einige davon später in diesem Tutorial genauer betrachten, wenn zusätzliche Einstellungen erforderlich sind (z.B. Klettern), aber für andere sehen Sie bitte auf den Hilfeseiten von Godot XR-Tools nach.