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.
Checking the stable version of the documentation...
Attrattori di particelle 3D
Gli attrattori di particelle sono nodi che applicano una forza a tutte le particelle nella loro portata. Attirano o respingono le particelle a seconda della direzione della forza. Esistono tre tipi di attrattori: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D e GPUParticlesAttractorVectorField3D. È possibile crearli in fase di esecuzione e modificarne le proprietà tramite il codice di gioco; è persino possibile animarli e combinarli per ottenere effetti di attrazione complessi.
Nota
Gli attrattori di particelle non sono ancora implementati per i sistemi di particelle 2D.
La prima cosa da fare se vuoi utilizzare gli attrattori è abilitare la proprietà Attractor Interaction sul ParticleProcessMaterial. Bisogna farlo per ogni sistema di particelle che deve reagire agli attrattori. Come gran parte delle proprietà in Godot, è possibile modificarla anche in fase di esecuzione.
Proprietà comuni
Proprietà comuni degli attrattori
Alcune proprietà sono presenti in tutti gli attrattori. Si trovano nella sezione GPUParticlesAttractor3D dell'ispettore.
Strength controlla l'intensità della forza attrattiva. Un valore positivo attira le particelle verso il centro dell'attrattore, mentre un valore negativo le respinge.
Attenuation controlla la diminuzione della forza dentro la regione di influenza dell'attrattore. Ogni attrattore di particelle ha un confine. La sua forza è minima al bordo di questo confine e massima al suo centro. Le particelle fuori dal confine non sono influenzate dall'attrattore. La curva di attenuazione controlla come la forza si indebolisce lungo tale distanza. Una linea retta indica che la forza è proporzionale alla distanza: se una particella si trova a metà strada tra il confine e il centro, la forza dell'attrattore sarà la metà di quella al centro. Diverse forme della curva cambiano la velocità con cui le particelle accelerano verso l'attrattore.
Variazioni dell'aumento della forza: costante lungo la distanza dall'attrattore (sinistra), rapido al confine e lento al centro (centro), lento al confine e rapido al centro (destra).
La proprietà Directionality modifica la direzione verso cui vengono attratte le particelle. Con un valore di 0.0, non c'è direzionalità, il che significa che le particelle vengono attratte verso il centro dell'attrattore. Con un valore di 1.0, l'attrattore è completamente direzionale, il che significa che le particelle verranno attratte lungo l'asse locale -Z dell'attrattore. È possibile modificare la direzione globale ruotando l'attrattore. Se Strength è negativo, le particelle vengono invece attratte lungo l'asse +Z.
Nessuna direzionalità (a sinistra), contro direzionalità completa (a destra). Nota come le particelle si muovono lungo l'asse Z locale dell'attrattore.
La proprietà Cull Mask controlla quali sistemi di particelle sono influenzati da un attrattore in base agli strati di visibilità di ciascun sistema. Un sistema di particelle è influenzato da un attrattore solo se almeno uno degli strati di visibilità del sistema è abilitato nella maschera di culling dell'attrattore.
Attrattori a scatola
Attrattore a scatola nella lista dei nodi
Gli attrattori a scatola hanno una regione di influenza a forma di scatola. Le loro dimensioni si controllano tramite la proprietà Extents. Le estensioni della scatola misurano sempre metà dei lati dei suoi limiti, quindi un valore di (X=1.0,Y=1.0,Z=1.0) crea una scatola con una regione di influenza larga 2 metri per ogni lato.
Per creare un attrattore a scatola, aggiungi un nuovo nodo figlio alla scena e seleziona GPUParticlesAttractorBox3D dall'elenco dei nodi disponibili. Puoi animare la posizione della scatola o aggiungerla a un nodo mobile per effetti più dinamici.
Un attrattore a scatola con un valore negativo di forza divide un campo di particelle mentre questo lo attraversa.
Attrattori sferici
Attrattore sferico nella lista dei nodi
Gli attrattori sferici hanno una regione di influenza sferica. Le loro dimensioni si controllano tramite la proprietà Radius. Mentre gli attrattori a scatola non devono essere necessariamente cubi perfetti, gli attrattori sferici saranno sempre sfere: non è possibile impostare la larghezza separatamente dall'altezza. Se si desidera utilizzare un attrattore sferico per forme allungate, è necessario modificarne la proprietà Scale nella sezione Node3D dell'attrattore.
Per creare un attrattore sferico, aggiungi un nuovo nodo figlio alla scena e seleziona GPUParticlesAttractorSphere3D dall'elenco dei nodi disponibili. Puoi animare la posizione della sfera o aggiungerla a un nodo mobile per effetti più dinamici.
Un attrattore sferico con un valore negativo di forza divide un campo di particelle mentre questo lo attraversa.
Attrattori a campo vettoriale
Attrattore a campo vettoriale nella lista dei nodi
Un campo vettoriale è un'area tridimensionale che contiene vettori posizionati su una griglia. La densità della griglia controlla il numero di vettori presenti e la distanza tra loro. Ogni vettore in un campo vettoriale punta in una direzione specifica. Questa direzione può essere completamente casuale oppure allineata in modo da formare motivi e percorsi distinti.
Quando le particelle interagiscono con un campo vettoriale, la loro direzione di movimento cambia per adattarsi al vettore più vicino presente nel campo. Man mano che una particella si avvicina al prossimo vettore nel campo, cambia direzione per adattarsi alla direzione di tale vettore. La velocità della particella dipende dalla lunghezza del vettore.
Come gli attrattori a scatola, gli attrattori a campo vettoriale hanno una regione di influenza a forma di scatola. Le loro dimensioni si controllano tramite la proprietà Extents, dove un valore di (X=1.0,Y=1.0,Z=1.0) crea una scatola con una regione di influenza larga 2 metri per ogni lato. La proprietà Texture accetta una texture 3D in cui ogni pixel rappresenta un vettore e il colore del pixel è interpretato come direzione e dimensione del vettore.
Nota
Quando una texture è utilizzata come campo vettoriale, ci sono due tipi di conversione di cui è necessario essere a conoscenza:
Le coordinate della texture corrispondono ai limiti dell'attrattore. L'immagine sottostante mostra quale parte della texture corrisponde a quale parte del volume del campo vettoriale. Ad esempio, la metà inferiore della texture influenza la metà superiore dell'attrattore del campo vettoriale perché
+Ypunta verso il basso nello spazio UV della texture, ma verso l'alto nello spazio mondo di Godot.I valori di colore dei pixel corrispondono a vettori di direzione nello spazio. L'immagine sottostante fornisce una panoramica. Poiché le particelle possono muoversi in due direzioni lungo ciascun asse, la metà inferiore dell'intervallo di colori rappresenta valori negativi di direzione, mentre la metà superiore rappresenta valori positivi di direzione. Quindi un pixel giallo
(R=1,G=1,B=0)corrisponde al vettore(X=1,Y=1,Z=-1), mentre un grigio neutro(R=0.5,G=0.5,B=0.5)non risulta in alcun movimento.
Per creare un attrattore a campo vettoriale, aggiungi un nuovo nodo figlio alla scena e seleziona GPUParticlesAttractorVectorField3D dall'elenco dei nodi disponibili. Puoi animare la posizione dell'attrattore o aggiungerlo a un nodo mobile per effetti più dinamici.
Suggerimento
Se non hai strumenti esterni per creare texture di campo vettoriale, è possibile utilizzare un oggetto NoiseTexture3D con una Color Ramp allegata come texture di campo vettoriale. La Color Ramp si può modificare per regolare quanto ciascuna coordinata viene influenzata dal campo vettoriale.
Due sistemi di particelle sono influenzati dallo stesso attrattore a campo vettoriale. Clicca qui per scaricare la texture 3D.