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

Hérite de : Node3D < Node < Object

Échantillonneur de points pour un Path3D.

Description

Ce nœud prend son parent Path3D, et renvoie les coordonnées d'un point à l'intérieur, selon une distance par rapport au premier sommet.

Il est utile pour faire que d'autres nœuds suivent un chemin, sans coder le motif du mouvement. Pour cela, les nœuds doivent être des enfants de ce nœud. Les nœuds descendants se déplaceront alors en conséquence lorsque progress est défini.

Propriétés

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éthodes

Transform3D

correct_posture(transform: Transform3D, rotation_mode: RotationMode) static


Énumérations

enum RotationMode: 🔗

RotationMode ROTATION_NONE = 0

Interdit au PathFollow3D de pivoter.

RotationMode ROTATION_Y = 1

Autorise le PathFollow3D à ne pivoter que selon l'axe Y.

RotationMode ROTATION_XY = 2

Autorise le PathFollow3D à pivoter selon les axes X et Y.

RotationMode ROTATION_XYZ = 3

Autorise le PathFollow3D à pivoter suivant n'importe quel axe.

RotationMode ROTATION_ORIENTED = 4

Utilise l'information sur les vecteurs dans une Curve3D pour faire respecter l'orientation. Ce mode de rotation exige que la propriété Curve3D.up_vector_enabled du Path3D soit définie à true.


Descriptions des propriétés

bool cubic_interp = true 🔗

  • void set_cubic_interpolation(value: bool)

  • bool get_cubic_interpolation()

Si true, la position entre deux points mis en cache est interpolée de façon cubique, et linéairement sinon.

Les points le long de la Curve3D du Path3D sont pré-calculés avant utilisation, pour des calculs plus rapides. Le point au décalage demandé est alors calculé en interpolant entre deux points du cache adjacents. Cela peut présenter un problème si la courbe fait des virages aigus, car les points mis en cache peuvent ne pas suivre la courbe d'assez près.

Il y a deux réponses à ce problème : soit augmenter le nombre de points mis en cache et augmenter la consommation de mémoire, soit faire une interpolation cubique entre deux points au coût de calculs (légèrement) plus lents.


float h_offset = 0.0 🔗

  • void set_h_offset(value: float)

  • float get_h_offset()

Le décalage du nœud le long de la courbe.


bool loop = true 🔗

  • void set_loop(value: bool)

  • bool has_loop()

If true, any offset outside the path's length will wrap around, instead of stopping at the ends. Use it for cyclic paths.


float progress = 0.0 🔗

  • void set_progress(value: float)

  • float get_progress()

La distance par rapport au premier sommet, mesurée en unités 3D le long du chemin. Changer cette valeur fixe la position de ce nœud à celle d'un point sur le chemin.


float progress_ratio = 0.0 🔗

  • void set_progress_ratio(value: float)

  • float get_progress_ratio()

La distance par rapport au premier sommet, en considérant 0.0 comme le premier sommet et 1.0 comme le dernier. Il s'agit juste d'une autre façon d'exprimer la progression sur le chemin, car la progression fournie est multipliée en interne par la longueur du chemin.

Elle peut être définie ou obtenue seulement si le PathFollow3D est l'enfant d'un Path3D qui fait partie de l'arborescence de scène, et que ce Path3D a une Curve3D avec une longueur non nulle. Sinon, essayer de définir ce champ affichera une erreur, et obtenir ce champ renverra 0.0.


RotationMode rotation_mode = 3 🔗

Autorise ou interdit la rotation sur un ou plusieurs axes, selon les constantes RotationMode utilisées.


bool tilt_enabled = true 🔗

  • void set_tilt_enabled(value: bool)

  • bool is_tilt_enabled()

Si true, la propriété d'inclinaison de la Curve3D prend effet.


bool use_model_front = false 🔗

  • void set_use_model_front(value: bool)

  • bool is_using_model_front()

If true, the node moves on the travel path with orienting the +Z axis as forward. See also Vector3.FORWARD and Vector3.MODEL_FRONT.


float v_offset = 0.0 🔗

  • void set_v_offset(value: float)

  • float get_v_offset()

Le décalage du nœud perpendiculairement à la courbe.


Descriptions des méthodes

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

Corrige la transformation transform. rotation_mode spécifie implicitement comment la posture (direction avant, haut et côté) est calculée.