2D Partikelsysteme¶
Einführung¶
Es wird ein einfaches (aber für die meisten Anwendungen flexibles) Partikelsystem bereitgestellt. Partikelsysteme werden verwendet, um komplexe physikalische Effekte wie Funken, Feuer, magische Partikel, Rauch, Nebel usw. zu simulieren.
Die Idee ist, dass ein "Partikel" in einem festen Intervall und mit einer festen Lebensdauer emittiert wird. Während seiner Lebensdauer hat jedes Partikel das gleiche Grundverhalten. Was jedes Partikel von den anderen unterscheidet und ein organischeres Aussehen bietet, ist die "Zufälligkeit", die jedem Parameter zugeordnet ist. Im Wesentlichen bedeutet das Erstellen eines Partikelsystems, dass physikalische Basisparameter festgelegt und dann Zufälligkeiten hinzugefügt werden.
Partikel-Nodes¶
Godot bietet zwei verschiedene Nodesfür 2D-Partikel, Particles2D und CPUParticles2D. Particles2D ist fortschrittlicher und nutzt die GPU zur Verarbeitung von Partikeleffekten, aber das beschränkt es auf höherwertige Grafik-APIs, und in unserem Fall auf den GLES3-Renderer. Für Projekte, die das GLES2-Backend verwenden, ist CPUParticles2D eine CPU-gesteuerte Option mit nahezu gleichen Funktionen wie Particles2D, aber geringerer Leistung. Während Particles2D über ein ParticlesMaterial (und optional mit einem benutzerdefinierten Smader) konfiguriert wird, werden die passenden Optionen über Knoteneigenschaften in CPUParticles2D bereitgestellt (mit Ausnahme der Trail-Einstellungen). Sie können einen Particles2D-Node in einen CPUParticles2D-Node umwandeln, indem Sie im Inspektor auf den Node klicken und im Menü "Partikel" der Symbolleiste "In CPUParticles2D umwandeln" wählen.

Im Rest der Anleitung wird das Particles2D Node benutzt. Als Erstes wird ein Particles2D Node zur Szene hinzugefügt. Nachdem Sie das Node hinzugefügt haben, werden Sie feststellen, dass nur ein weißer Punkt erstellt wurde, und im Szenen-Panel neben Ihrem Particles2D Node ein Warnungssymbol erschienen ist. In diesem Fall bedeutet dieses Symbol, dass das Node ein ParticlesMaterial benötigt, um zu funktionieren.
Partikel Materialien¶
Um ein ProcessMaterial zu Ihrem Partikel-Node hinzuzufügen, gehen Sie in Ihrem Inspektor zu Process Material
. Klicken Sie auf die Box neben Material
mit der Aufschrift [leer]
und wählen Sie aus dem Ausklappmenü Neues ParticlesMaterial
aus.

Ihr Particles2D-Node sollte jetzt weiße Punkte nach unten senden.

Textur¶
Ein Partikelsystem benutzt eine einzelne Textur (in der Zukunft könnte dies mit animierten Texturen über ein Spritesheet erweitert werden). Die Textur wird über die entsprechende Eigenschaft "Texture" festgelegt:

Zeitparameter¶
Lebenszeit¶
Die Zeit in Sekunden, in der jedes Partikel am Leben bleibt. Wenn die Lebensdauer endet, wird ein neues Partikel erstellt, um es zu ersetzen.
Lebensdauer: 0.5

Lebensdauer: 4.0

Einmalig¶
Wenn diese Option aktiviert ist, gibt ein Particles2D-Node alle seine Partikel einmal und dann nie wieder aus.
Vorbearbeitung¶
Partikelsysteme beginnen mit null emittierten Partikeln und beginnen dann zu emittieren. Dies kann eine Unannehmlichkeit sein, wenn eine Szene geladen wird und Systeme wie Fackel, Nebel usw. in dem Moment, in dem Sie eintreten, zu emittieren beginnen. Mit der Vorverarbeitung kann das System eine bestimmte Anzahl von Sekunden verarbeiten, bevor es beim ersten Mal tatsächlich gezeichnet wird.
Geschwindigkeitsskalierung¶
Die Eigenschaft Speed Scale
hat einen Standardwert von 1
und wird benutzt, um die Geschwindigkeit eines Partikelsystems einzustellen bzw. zu skalieren. Mit der Senkung des Werts werden die Partikel langsamer, wohingegen eine Erhöhung des Werts die Partikel schneller macht.
Explosivität¶
Wenn die Eigenschaft Lifetime
den Wert 1
hat und zehn Partikel vorhanden sind, bedeutet dies, dass jede Zehntelsekunde (0.1s) ein Partikel ausgesendet wird. Die Eigenschaft Explosiveness
beinflusst dies insofern, dass alle Partikel gleichzeitig ausgesendet werden. Folgende Spannbreite ist möglich:
0: Partikel in regelmäßigen Abständen emittieren (Standardwert).
1: Alle Partikel gleichzeitig emittieren.
Werte dazwischen sind ebenfalls zulässig. Diese Funktion ist nützlich, um Explosionen oder plötzliche Partikelausbrüche zu erzeugen:

Zufälligkeit¶
Alle physikalischen Parameter können zufallsbestimmt werden. Zufällige Werte reichen von 0
bis 1
. Die Formel um einen Parameter per Zufall zu bestimmen lautet:
initial_value = param_value + param_value * randomness
Feste FPS¶
Diese Einstellung kann verwendet werden, um das Partikelsystem so einzustellen, dass es mit einem festen FPS gerendert wird. Wenn Sie z. B. den Wert auf 2
ändern, werden die Partikel mit 2 Bildern pro Sekunde gerendert. Beachten Sie, dass dies das Partikelsystem selbst nicht verlangsamt.
Delta-Bruchteil¶
Dies kann verwendet werden, um Fract Delta ein oder auszuschalten.
Zeichnungsparameter¶
Sichtbarkeitsrechteck¶
Das Sichtbarkeits-Rechteck stellt die Sichtbarkeit von Partikeln ein. Wenn dieses Rechteck außerhalb des Viewports liegt, wird die Engine keine Partikel rendern.
Die W
und H
Eigenschaften des Rechtecks stellen die Breite und Höhe ein. Die X
und Y
Eigenschaften stellen die Position der oberen linken Kante des Rechtecks ein, in Relation zu dem Partikelemitter.
Mit der Toolbar über dem 2D-View kann ein Sichtbarkeits-Rechteck automatisch generiert werden. Dazu müssen Sie das Particles2D Node auswählen und auf Partikel > Sichtbarkeits-Rechteck generieren
anklicken. Godot simuliert dann die Partikel der Particles2D Node für einige Sekunden und skaliert dann das Rechteck auf die von den Partikeln eingenommene Fläche.
Sie können die Dauer der Emmitierung mit der Generation Time (sec)
Option einstellen. Der Maximalwert ist 25 Sekunden. Falls sie mehr Zeit für die Partikel brauchen, können Sie temporär die preprocess
Dauer der Particles2D Node ändern.
Lokale Koordination¶
Standardmäßig ist diese Option aktiviert. Dies bedeutet, dass der Raum, in den Partikel emittiert werden, relativ zum Node ist. Wenn der Node verschoben wird, werden alle Partikel mit verschoben:

Wenn diese Option deaktiviert ist, werden Partikel in den globalen Raum emittiert. Wenn der Node verschoben wird, sind bereits emittierte Partikel nicht betroffen:

Zeichenreihenfolge¶
Stellt die Reihenfolge ein, in der die Partikel gezeichnet werden. Index
bedeutet, dass Partikel nach ihrer Emmisionsreihenfolge (standardmäßig) gezeichnet werden. Lebensdauer
bedeutet dass die Partikel der Reihe ihrer Rest-Lebenszeit nach gezeichnet werden.
ParticlesMaterial Einstellungen¶
Richtung¶
Die Richtung, in welche Partikel emittiert werden. Der Standardwert ist Vector3(1, 0, 0)
, was bedeutet dass Partikel nach Rechts emittiert werden. Mit Standard-Schwerkrafteinstellungen werden sich die Partikel jedoch direkt nach unten bewegen.

Damit diese Eigenschaft eine Wirkung hat, brauchen Sie eine Anfangsgeschwindigkeit größer als 0. Hier setzen wir die Anfangsgeschwindigkeit auf 40. Sie werden feststellen, dass die Partikel nach Rechts emittiert werden, und sich dann durch die Schwerkraft nach unten bewegen.

Streuung¶
Dieser Parameter ist der Winkel in Grad, der zufällig in jede Richtung zur Basis Direction
addiert wird. Eine Streuung von 180
wird in alle Richtungen (+/- 180) emittieren. Damit die Streuung etwas bewirkt, muss der Parameter "Anfangsgeschwindigkeit" größer als 0 sein.

Flachheit¶
Diese Eigenschaft ist nur für 3D-Partikel nützlich.
Schwerkraft¶
Die Schwerkraft, die auf jedes Teilchen angewendet wird.

Anfängliche Geschwindigkeit¶
Die Anfangsgeschwindigkeit ist die Geschwindigkeit mit der Partikel emittiert werden (in Pixeln pro Sekunde). Geschwindigkeit wird womöglich (wie unten beschrieben) von Schwerkraft oder anderen Beschleunigungen beeinflusst.

Winkelgeschwindigkeit¶
Die Winkelgeschwindigkeit ist die anfängliche Winkelgeschwindigkeit, die auf Partikel angewendet wird.
Spin-Geschwindigkeit¶
Die Spin-Geschwindigkeit ist die Geschwindigkeit, mit der sich Partikel um ihr Zentrum drehen (in Grad/Sek.).

Orbitgeschwindigkeit¶
Die Umlaufgeschwindigkeit wird verwendet, um Partikel dazu zu bringen, sich um ihr Zentrum zu drehen.

Lineare Beschleunigung¶
Die lineare Beschleunigung, die auf jedes Teilchen angewendet wird.
Radiale Beschleunigung¶
Wenn diese Beschleunigung positiv ist, werden Partikel vom Zentrum weg beschleunigt. Wenn sie negativ sind, werden sie dazu angezogen.

Tangentiale Beschleunigung¶
Diese Beschleunigung verwendet den Tangentenvektor zur Mitte. Die Kombination mit Radialbeschleunigung kann schöne Effekte erzielen.

Dämpfung¶
Dämpfung erzeugt Reibung auf den Partikeln, was sie zum anhalten zwingt. Dies ist praktisch für Funken oder Explosionen, welche üblicherweise mit hoher Anfangsgeschwindigkeit schnell wieder abklingen.

Winkel¶
Bestimmt den Anfangswinkel des Partikels (in Grad). Dieser Parameter wird meistens zufällig genutzt.

Skalierung¶
Bestimmt den anfänglichen Maßstab der Partikel.

Farbe¶
Wird verwendet, um die Farbe der emittierten Partikel zu ändern.
Farbtonvariation¶
Der Variation
-Wert stellt den Anfangs-Farbton der Partikel ein. Der Variation Random
-Wert stellt ein, mit wie viel Zufälligkeit der Anfangs-Farbton generiert wird.
Emissionformen¶
ParticlesMaterials stellt eine Emmisionsmaske ein, welche die Fläche und Richtung der Partikelemitter beeinflusst. Die Maske kann von einer Textur im Projekt generiert werden.
Stellen Sie sicher, dass ParticlesMaterial eingestellt und das Particles2D Node ausgewählt wurde. In der Toolbar sollte dann ein "Partikel" Menü erscheinen:

Öffnen Sie es und wählen Sie "Emissionsmaske laden":

Wählen Sie dann die Textur aus, die Sie als Maske verwenden möchten:

Ein Eingabefenster mit diversen Einstellungen wird erscheinen.
Emissionsmaske¶
Aus einer Textur können drei Arten von Emissionsmasken erzeugt werden:
Feste Pixel: Partikel erscheinen aus jedem Bereich der Textur, ausgenommen transparente Bereiche.

Grenzpixel: Die Partikel werden von den äußeren Rändern der Textur erzeugt.

Gerichtete Randpixel: Ähnlich wie Border Pixels, fügt aber zusätzliche Informationen zur Maske hinzu, um Partikeln die Möglichkeit zu geben, von den Rändern weg zu emittieren. Beachten Sie, dass eine
Initial Velocity
gesetzt werden muss, um dies zu nutzen.

Emissionsfarben¶
Capture from Pixel
bewirkt, dass die Partikel die Farbe der Maske an ihren Spawnpunkten erben.
Mit klicken auf "OK" wird die Maske generiert und auf das ParticlesMaterial unter dem Abschnitt Emission Shape
gesetzt:

Alle Werte in diesem Abschnitt wurden automatisch durch das "Load Emission Mask"-Menü generiert. Grundsätzlich sollten sie nicht verändert werden.
Bemerkung
Ein Bild sollte nicht direkt zur Point Texture
oder Color Texture
hinzugefügt werden. Es sollte immer das "Load Emission Mask"-Menü benutzt werden.