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...
Locomotion en XR basique
Pour la locomotion de base, nous allons continuer à utiliser notre bibliothèque Godot XR Tools. La bibliothèque contient à la fois des fonctionnalités de mouvement de base et des fonctionnalités plus avancées.
Ajouter le corps de notre joueur
La première étape que nous devons faire est d'ajouter un nœud d'aide à notre nœud XROrigin3D. Parce que la XR prend en charge le suivi à l'échelle de la pièce, vous ne pouvez pas simplement ajouter votre installation XR à un nœud CharacterBody3D et vous attendre à ce que les choses fonctionnent. Vous aurez des problèmes lorsque l'utilisateur se déplace dans son espace physique et n'est plus debout au centre de sa pièce. Godot XR Tools incorpore la logique nécessaire dans un nœud d'aide appelé PlayerBody.
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.
Ajouter un sol
Ce nœud régit le mouvement de votre personnage dans le jeu et réagira immédiatement à la gravité. Pour empêcher notre joueur de tomber infiniment, nous allons ajouter rapidement un sol à notre scène.
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.
Mouvement direct
Nous allons commencer par ajouter un mouvement direct de base à notre setup. Cela permet à l'utilisateur de se déplacer dans le monde virtuel en utilisant l'entrée du joystick.
Note
Il est important de noter que le déplacement dans le monde virtuel pendant que le joueur se tient immobile dans le monde réel peut rendre nauséeux, particulièrement pour les joueurs qui sont nouveaux à la RV. Les paramètres par défaut de nos fonctions de mouvement sont assez conservateurs. Nous vous conseillons de coller à ces défauts, mais d'offrir des fonctionnalités en pour activer des paramètres moins confortables pour les utilisateurs plus expérimentés qui sont habitués à jouer aux jeux en RV.
Nous voulons activer cela sur le contrôleur droit. Nous faisons cela en ajoutant un sous-scène au nœud XRController3D de la main droite. Sélectionnez addons/godot-xr-tools/fonctions/movement_direct.tscn comme scène à ajouter.
This function adds forward and backwards movement to the player by using the joystick on the right hand controller. It has an option to also add left/right strafe but by default this is disabled.
Au lieu de cela, nous allons ajouter la possibilité pour le joueur d'également tourner avec ce joystick. Nous ajouterons une autre sous-scène à notre nœud de contrôleur, sélectionnez addons/godot-xr-tools/fonctions/movement_turn.tscn pour cela.
The turn system by default uses a snap turn approach.
This means that turning happens in steps.
This may seem jarring however it is a tried and tested method of combating motion sickness.
You can easily switch to a mode that offers smooth turning by changing the mode property on the turn node.
Si vous lancez votre jeu à ce moment-là, vous trouverez que vous pouvez vous déplacer dans le monde librement en utilisant le joystick droit.
Teleportation
Une alternative au mouvement direct que certains utilisateurs trouvent plus agréable est la capacité de se téléporter à un autre emplacement dans votre monde de jeu. Godot XR Tools supporte cela par la fonction de téléportation et nous allons l'ajouter à notre contrôleur gauche.
Ajoutez une nouvelle scène enfant à votre nœud XRController3D de main gauche en sélectionnant la scène addons/godot-xr-tools/functions/function_teleport.tscn.
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.
Si vous avez suivi correctement toutes les instructions, votre scène devrait maintenant ressembler à ceci :
Plus de fonctionnalités de mouvements avancés
Godot XR Tools ajoute beaucoup d'autres fonctionnalités de mouvement comme planer, une implémentation de crochet de grappin, un jetpack, des mécaniques d'escalade, etc.
La plupart fonctionnent de la même manière que les caractéristiques de mouvement de base que nous avons manipulées jusqu'à présent, il suffit d'ajouter la sous-scène pertinente du plugin au contrôleur qui l'implémente.
Nous allons examiner certains de ceux-ci où une configuration supplémentaire est nécessaire plus en détail plus tard dans ce tutoriel (comme l'escalade) mais pour les autres, veuillez regarder les pages d'aide de Godot XR Tools pour les détails.