Sur cette page

CharacterController QML Type

Contrôle le mouvement d'un personnage. Plus d'informations...

Import Statement: import QtQuick3D.Physics
Since: Qt 6.4
Inherits:

PhysicsBody

Propriétés

Signaux

  • shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal) (since 6.6)

Méthodes

Description détaillée

Le type CharacterController contrôle le mouvement d'un personnage.

Un personnage est une entité qui se déplace sous un contrôle externe, mais qui reste limitée par des barrières physiques et (éventuellement) soumise à la gravité. Ceci contraste avec dynamic rigid bodies qui est soit complètement contrôlé par la simulation physique (pour les corps non cinématiques), soit se déplace exactement là où il est placé, sans tenir compte des barrières (pour les objets cinématiques).

Pour contrôler le mouvement d'un contrôleur de personnage, réglez movement sur la vitesse souhaitée.

Pour une vue à la première personne, la caméra est généralement placée à l'intérieur d'un contrôleur de personnage.

Remarque : collisionShapes doit être défini sur une seule CapsuleShape. Aucune autre forme n'est prise en charge.

Remarque : le contrôleur de personnage est capable de mettre à l'échelle les obstacles dont la hauteur est inférieure à un quart de la hauteur de la forme de la capsule.

Voir également la documentation générale sur les formes et les corps.

Documentation sur les propriétés

collisions : Collisions [read-only]

Cette propriété contient l'état de collision actuel du personnage. Il s'agit soit de None pour une absence de collision, soit d'une combinaison OU de Side, Up, et Down:

ConstanteDescription de la propriété
CharacterController.NoneLe personnage ne touche rien. Si la gravité est non nulle, cela signifie que le personnage est en chute libre.
CharacterController.SideLe personnage touche quelque chose sur le côté.
CharacterController.UpLe personnage touche quelque chose au-dessus de lui.
CharacterController.DownLe personnage touche quelque chose en dessous de lui. En cas de gravité standard, cela signifie que le personnage est au sol.

Remarque : les directions sont définies par rapport à la gravité standard : Up est toujours le long de l'axe y positif, quelle que soit la valeur de CharacterController.gravity ou de PhysicsWorld.gravity

enableShapeHitCallback : bool [since 6.6]

Cette propriété active/désactive le rappel CharacterController::shapeHit pour ce contrôleur de caractères.

Valeur par défaut : false

Cette propriété a été introduite dans Qt 6.6.

gravity : vector3d

Cette propriété définit l'accélération gravitationnelle qui s'applique au personnage. Pour un personnage qui marche sur le sol, elle doit généralement être réglée sur PhysicsWorld.gravity. Pour un personnage flottant dont les mouvements sont contrôlés en trois dimensions, l'accélération gravitationnelle est normalement fixée à (0, 0, 0).

Valeur par défaut : (0, 0, 0).

midAirControl : bool

Cette propriété définit si la propriété movement a un effet lorsque le personnage est en chute libre. Cette propriété n'est pertinente que si gravity n'est pas null. Une valeur de true signifie que le personnage changera de direction en plein vol lorsque movement changera. Une valeur de false signifie que le personnage continuera sur sa trajectoire actuelle jusqu'à ce qu'il heurte un autre objet.

Valeur par défaut : true

movement : vector3d

Cette propriété définit le mouvement contrôlé du personnage. Il s'agit de la vitesse à laquelle le personnage se déplacerait en l'absence de gravité et sans interagir avec d'autres objets physiques.

Cette propriété ne reflète pas la vitesse réelle du personnage. Si le personnage est coincé contre un terrain, il peut se déplacer plus lentement que la vitesse définie par movement. Inversement, si le personnage est en chute libre, il peut se déplacer beaucoup plus rapidement.

Valeur par défaut : (0, 0, 0)

Signal Documentation

[since 6.6] shapeHit(PhysicsNode *body, vector3D position, vector3D impulse, vector3D normal)

Ce signal est émis lorsque movement a été appelé et qu'il en résulterait une collision avec un DynamicRigidBody ou un StaticRigidBody et que enableShapeHitCallback est défini comme true. Les paramètres body, position, impulse et normal contiennent le corps, la position, la force d'impulsion et la normale pour le point de contact.

Remarque : le gestionnaire correspondant est onShapeHit.

Ce signal a été introduit dans Qt 6.6.

Documentation de la méthode

void teleport(vector3d position)

Déplace immédiatement le personnage sur position sans vérifier les collisions. L'appelant est responsable de l'absence de chevauchement avec des objets statiques.

© 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.