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.

PathFollow3D

Hereda: Node3D < Node < Object

Una muestra de puntos para un Path3D.

Descripción

Este nodo toma su padre Path3D, y devuelve las coordenadas de un punto dentro de él, dada una distancia desde el primer vértice.

Es útil para hacer que otros nodos sigan una ruta, sin codificar el patrón de movimiento. Para ello, los nodos deben ser hijos de este nodo. Los nodos descendientes se moverán en consecuencia al establecer el progress en este nodo.

Propiedades

bool

cubic_interp

true

float

h_offset

0.0

bool

loop

true

float

progress

0.0

float

progress_ratio

0.0

RotationMode

rotation_mode

3

bool

tilt_enabled

true

bool

use_model_front

false

float

v_offset

0.0

Métodos

Transform3D

correct_posture(transform: Transform3D, rotation_mode: RotationMode) static


Enumeraciones

enum RotationMode: 🔗

RotationMode ROTATION_NONE = 0

Prohíbe que PathFollow3D rote.

RotationMode ROTATION_Y = 1

Permite que PathFollow3D rote sólo en el eje Y.

RotationMode ROTATION_XY = 2

Permite que PathFollow3D rote en los ejes X e Y.

RotationMode ROTATION_XYZ = 3

Permite que PathFollow3D rote en cualquier eje.

RotationMode ROTATION_ORIENTED = 4

Utiliza la información del vector ascendente en una Curve3D para reforzar la orientación. Este modo de rotación requiere que la propiedad Curve3D.up_vector_enabled de Path3D se establezca como true.


Descripciones de Propiedades

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

Si es true, la posición entre dos puntos cacheados se interpola cúbicamente, y linealmente en caso contrario.

Los puntos a lo largo de la Curve3D del Path3D se precalculan antes de su uso, para cálculos más rápidos. El punto en el desplazamiento solicitado se calcula entonces interpolando entre dos puntos cacheados adyacentes. Esto puede presentar un problema si la curva hace giros bruscos, ya que los puntos cacheados pueden no seguir la curva lo suficientemente cerca.

Hay dos respuestas a este problema: o bien aumentar el número de puntos cacheados y aumentar el consumo de memoria, o bien hacer una interpolación cúbica entre dos puntos a costa de cálculos (ligeramente) más lentos.


float h_offset = 0.0 🔗

  • void set_h_offset(value: float)

  • float get_h_offset()

El nodo está desplazado a lo largo de la curva.


bool loop = true 🔗

  • void set_loop(value: bool)

  • bool has_loop()

Si es true, cualquier desplazamiento fuera de la longitud del camino se envolverá, en lugar de detenerse en los extremos. Úsalo para los caminos cíclicos.


float progress = 0.0 🔗

  • void set_progress(value: float)

  • float get_progress()

La distancia desde el primer vértice, medida en unidades 3D a lo largo del camino. Cambiar este valor establece la posición de este nodo en un punto dentro del camino.


float progress_ratio = 0.0 🔗

  • void set_progress_ratio(value: float)

  • float get_progress_ratio()

La distancia desde el primer vértice, considerando 0.0 como el primer vértice y 1.0 como el último. Esta es solo otra forma de expresar el progreso dentro de la ruta, ya que el progreso suministrado se multiplica internamente por la longitud de la ruta.

Se puede establecer u obtener solo si el PathFollow3D es hijo de un Path3D que forma parte del árbol de escenas, y que este Path3D tiene una Curve3D con una longitud distinta de cero. De lo contrario, intentar establecer este campo imprimirá un error, y obtener este campo devolverá 0.0.


RotationMode rotation_mode = 3 🔗

Permite o prohíbe la rotación en uno o más ejes, dependiendo de las constantes RotationMode que se utilicen.


bool tilt_enabled = true 🔗

  • void set_tilt_enabled(value: bool)

  • bool is_tilt_enabled()

Si es true, la propiedad de inclinación de Curve3D surte efecto.


bool use_model_front = false 🔗

  • void set_use_model_front(value: bool)

  • bool is_using_model_front()

Si es true, el nodo se mueve a lo largo del trayecto de viaje orientando el eje +Z como adelante. Véase también Vector3.FORWARD y Vector3.MODEL_FRONT.


float v_offset = 0.0 🔗

  • void set_v_offset(value: float)

  • float get_v_offset()

El nodo está desplazado perpendicularmente a la curva.


Descripciones de Métodos

Transform3D correct_posture(transform: Transform3D, rotation_mode: RotationMode) static 🔗

Corrige la transform. rotation_mode especifica implícitamente cómo se calcula la postura (dirección hacia adelante, arriba y lateral).