Qt Quick Exemple de téléportation libre en 3D - XR
Illustre comment mettre en œuvre un système de déplacement simple dans l'environnement 3D XR d'Qt Quick.

Présentation
Cet exemple montre comment se déplacer vers différents endroits de l’environnement virtuel à l’aide d’un système simple de téléportation libre, une forme de déplacement non continue.
Commandes
Pour naviguer, utilisez le joystick du contrôleur droit :
- Poussez le stick vers l'avant pour viser, puis relâchez-le pour vous téléporter.
- Déplacez le joystick latéralement pour pivoter.
Implémentation
La logique de téléportation est implémentée dans le composant « FreeformTeleporter ».
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 dispose des propriétés suivantes qui doivent être configurées :
QtObject xrViewLa propriété « xrView » donne accès à la fonction intégrée de sélection de rayons d’ XrView. Vous pouvez utiliser n’importe quel objet implémentant une méthode « rayPick ». Par exemple, un « View3D » peut s’avérer utile pour le prototypage.
Node originNodeLa propriété ` originNode ` spécifie le nœud que le téléporteur de forme libre va manipuler. Dans XR, la locomotion artificielle s’effectue en déplaçant l’ XrOrigin. Nous utiliserons donc l’`xrOrigin` de notre ` XrView ` comme ` originNode`.
Node cameraNodeLa propriété « cameraNode » fournit la position de la caméra. Lors d’une rotation, elle définit le centre de rotation. Lors d’une téléportation, elle définit la position qui sera placée à l’emplacement sélectionné. Dans cet exemple, nous utilisons l’ XrCamera suivi que nous avons créé précédemment.
Remarque : en XR, l’ 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é à l’espace physique entourant l’utilisateur. Modifier la position de l’ XrOrigin modifie la manière dont les emplacements physiques sont mis en correspondance avec les coordonnées de la scène. L’ XrCamera suit la position de la tête de l’utilisateur. Lorsque l’utilisateur se déplace physiquement, la position et l’orientation de l’ XrCamera changent par rapport à l’ XrOrigin.
Node beamHandleLa propriété ` beamHandle ` correspond au nœud utilisé comme point de départ du faisceau de téléportation. Dans cet exemple, nous utilisons la manette droite comme `beamHandle`.
Voir également 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.