Qt Quick Exemple de téléportation 3D - XR Freeform
Démontre comment implémenter une locomotion simple dans Qt Quick 3D XR.

Vue d'ensemble
Cet exemple montre comment se déplacer vers des endroits de l'environnement virtuel à l'aide d'un simple système de téléportation de forme libre, une forme de mouvement non continu.
Commandes
Pour la navigation, utilisez le manche à balai de la manette droite :
- Poussez le stick vers l'avant pour viser et relâchez-le pour vous téléporter.
- Déplacez le stick latéralement pour tourner.
Implémentation
La logique de téléportation est implémentée dans le composant FreeformTeleporter. Celui-ci se trouve dans le sous-projet distinct xr_shared, de sorte que vous pouvez facilement le réutiliser dans d'autres projets.
FreeformTeleporter { id: teleporter view: xrView originNode: xrOrigin cameraNode: xrOrigin.camera beamHandle: xrRightController rotationTriggerValue: xrRightController.xValue teleportTriggerValue: xrRightController.yValue onDoTeleportation: (cameraOriginPosition)=> { xrOrigin.position = cameraOriginPosition } onDoRotation: (cameraOriginRotation, cameraOriginPosition)=> { xrOrigin.rotation = cameraOriginRotation xrOrigin.position = cameraOriginPosition } }
Le composant FreeformTeleporter possède les propriétés suivantes qui doivent être définies :
QtObject xrView
La propriété xrView donne accès au ray-picking intégré de XrView. Vous pouvez utiliser n'importe quel objet qui implémente une méthode rayPick. Par exemple, un View3D peut être utile pour le prototypage.
Node originNode
La propriété originNode spécifie le nœud que le téléporteur freeform manipulera. Dans XR, la locomotion artificielle est réalisée en déplaçant le XrOrigin. Nous utiliserons donc le xrOrigin de notre XrView comme originNode.
Node cameraNode
La propriété cameraNode fournit la position de la caméra. En cas de rotation, elle définit le centre de rotation. Lors d'une téléportation, elle définit la position qui sera placée au-dessus de l'emplacement sélectionné. Dans cet exemple, nous utilisons le site XrCamera que nous avons créé précédemment.
Remarque : dans XR, XrOrigin définit la relation entre la scène et l'espace de référence de l'utilisateur. Cet espace de référence est généralement ancré dans l'espace physique autour de l'utilisateur. Le fait de modifier la position du site XrOrigin change la façon dont les emplacements physiques sont représentés dans les coordonnées de la scène. Le site XrCamera suit la position de la tête de l'utilisateur. Lorsque l'utilisateur se déplace physiquement, la position et l'orientation de XrCamera changent par rapport à XrOrigin.
Node beamHandle
La propriété beamHandle est le nœud utilisé comme point de départ du faisceau de téléportation. Dans cet exemple, nous utilisons le contrôleur droit comme beamHandle.
Voir aussi Locomotion dans Qt Quick 3D Xr.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.