En esta página

CharacterController QML Type

Controla el movimiento de un personaje. Más...

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

PhysicsBody

Propiedades

Señales

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

Métodos

Descripción detallada

El tipo CharacterController controla el movimiento de un personaje.

Un personaje es una entidad que se mueve bajo control externo, pero sigue estando limitado por barreras físicas y (opcionalmente) sujeto a la gravedad. Esto contrasta con dynamic rigid bodies que, o bien están completamente controlados por la simulación física (para cuerpos no cinemáticos); o se mueven exactamente donde se colocan, independientemente de las barreras (para objetos cinemáticos).

Para controlar el movimiento de un controlador de personaje, ajuste movement a la velocidad deseada.

Para una vista en primera persona, la cámara se coloca normalmente dentro de un controlador de personaje.

Nota: collisionShapes debe establecerse en un único CapsuleShape. No se admiten otras formas.

Nota: El controlador de personajes es capaz de escalar obstáculos que sean inferiores a una cuarta parte de la altura de la forma de la cápsula.

Véase también la documentación general de Formas y Cuerpos.

Documentación de propiedades

collisions : Collisions [read-only]

Esta propiedad contiene el estado de colisión actual del personaje. Puede ser None para ninguna colisión, o una combinación OR de Side, Up, y Down:

ConstanteDescripción
CharacterController.NoneEl personaje no está tocando nada. Si la gravedad no es nula, significa que el personaje está en caída libre.
CharacterController.SideEl personaje está tocando algo a su lado.
CharacterController.UpEl personaje está tocando algo por encima de él.
CharacterController.DownEl personaje está tocando algo por debajo. En gravedad estándar, esto significa que el personaje está en el suelo.

Nota: Las direcciones se definen en relación con la gravedad estándar: Up está siempre a lo largo del eje y positivo, independientemente del valor de CharacterController.gravity o PhysicsWorld.gravity

enableShapeHitCallback : bool [since 6.6]

Esta propiedad activa/desactiva la llamada de retorno CharacterController::shapeHit para este controlador de caracteres.

Valor por defecto: false

Esta propiedad se introdujo en Qt 6.6.

gravity : vector3d

Esta propiedad define la aceleración gravitatoria que se aplica al personaje. Para un personaje que camina sobre el suelo, normalmente debería establecerse en PhysicsWorld.gravity. Un personaje flotante que tiene controles de movimiento en tres dimensiones normalmente tendrá gravedad (0, 0, 0).

Valor por defecto: (0, 0, 0).

midAirControl : bool

Esta propiedad define si la propiedad movement tiene efecto cuando el personaje está en caída libre. Sólo es relevante si gravity no es nulo. Un valor de true significa que el personaje cambiará de dirección en el aire cuando cambie movement. Un valor de false significa que el personaje continuará en su trayectoria actual hasta que choque con otro objeto.

Valor por defecto: true

movement : vector3d

Esta propiedad define el movimiento controlado del personaje. Esta es la velocidad a la que el personaje se movería en ausencia de gravedad y sin interactuar con otros objetos físicos.

Esta propiedad no refleja la velocidad real del personaje. Si el personaje está pegado al terreno, puede moverse más despacio que la velocidad definida por movement. Por el contrario, si el personaje está en caída libre, puede moverse mucho más rápido.

Valor por defecto: (0, 0, 0)

Señal Documentación

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

Esta señal se emite cuando se ha llamado a movement y se produciría una colisión con un DynamicRigidBody o un StaticRigidBody y enableShapeHitCallback se establece en true. Los parámetros body, position, impulse y normal contienen el cuerpo, la posición, la fuerza de impulso y la normal del punto de contacto.

Nota: El manejador correspondiente es onShapeHit.

Esta señal se introdujo en Qt 6.6.

Documentación del método

void teleport(vector3d position)

Mueve inmediatamente el personaje a position sin comprobar si hay colisiones. La persona que llama es responsable de evitar la superposición con objetos estáticos.

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