Work in progress
The content of this page was not yet updated for Godot
4.5
and may be outdated. If you know how to improve this page or you can confirm
that it's up to date, feel free to open a pull request.
2D-Partikel-Systeme
Einführung
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 Nodes für 2D-Partikel, GPUParticles2D und CPUParticles2D. GPUParticles2D ist fortschrittlicher und nutzt die GPU zur Verarbeitung von Partikeleffekten. CPUParticles2D ist eine CPU-gesteuerte Option mit nahezu gleichen Funktionen wie GPUParticles2D, aber geringerer Performance bei der Verwendung großer Mengen von Partikeln. Auf der anderen Seite kann CPUParticles2D auf Low-End-Systemen oder in Situationen mit GPU-Bottlenecks besser performen.
Während GPUParticles2D über ein ParticleProcessMaterial (und optional mit einem benutzerdefinierten Shader) konfiguriert wird, werden die passenden Optionen über Node-Propertys in CPUParticles2D bereitgestellt (mit Ausnahme der Trail-Einstellungen).
Going forward there are no plans to add new features to CPUParticles2D, though pull requests to add features already in GPUParticles2D will be accepted. For that reason we recommend using GPUParticles2D unless you have an explicit reason not to.
You can convert a CPUParticles2D node into a GPUParticles2D node by clicking on the node in the scene tree, selecting the 2D workspace, and selecting CPUParticles2D > Convert to GPUParticles2D in the toolbar.
Es ist auch möglich einen GPUParticles2D Node in einen CPUParticles2D Node zu konvertieren, jedoch kann es zu Problemen kommen wenn Sie GPU-only Features nutzen.
Im Rest des Tutorials wird der Particles2D-Node benutzt. Als Erstes wird ein Particles2D-Node zur Szene hinzugefügt. Nachdem Sie den 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 der Node ein ParticlesMaterial benötigt, um zu funktionieren.
ParticleProcessMaterial
Um ein Prozessmaterial zu Ihrem Node hinzuzufügen, gehen Sie zu Prozessmaterial in Ihrem Inspektor-Panel. Klicken Sie auf das Feld neben Material und wählen Sie aus dem Dropdown-Menü Neues ParticleProcessMaterial.
Ihr GPUParticles2D-Node sollte nun weiße Punkte nach unten emittieren.
Textur
Ein Partikelsystem kann eine einzelne Textur oder ein Animations-Flipbook verwenden. Ein Flipbook ist eine Textur, die mehrere Bilder einer Animation enthält, die abgespielt oder während der Emission zufällig ausgewählt werden können. Dies ist gleichbedeutend mit einem Spritesheet für Partikel.
Die Textur wird über die Property Textur festgelegt:
Verwendung eines animierten Flipbooks
Partikel-Flipbooks eignen sich für die Darstellung komplexer Effekte wie Rauch, Feuer und Explosionen. Sie können auch verwendet werden, um zufällige Texturvariationen einzuführen, indem man für jedes Partikel eine andere Textur verwendet. Sie können bestehende Partikel-Flipbook-Bilder online finden oder sie mit externen Tools wie Blender oder EmberGen vorrendern.
Beispiel für ein Partikelsystem, das eine Flipbook-Textur verwendet
Die Verwendung eines animierten Flipbooks erfordert eine zusätzliche Konfiguration gegenüber der Verwendung einer einzelnen Textur. Zu Demonstrationszwecken verwenden wir diese Textur mit 5 Spalten und 7 Zeilen (klicken Sie mit der rechten Maustaste und wählen Sie Speichern unter...):
Quelle: JoesAlotofthings (CC BY 4.0)
Um ein Animations-Flipbook zu verwenden, müssen Sie ein neues CanvasItemMaterial im Abschnitt Material des Nodes GPUParticles2D (oder CPUParticles2D) erstellen:
Erstellen eines CanvasItemMaterials am unteren Rand des Partikel-Node-Inspektors
Aktivieren Sie in diesem CanvasItemMaterial die Partikelanimation und setzen Sie H Frames und V Frames auf die Anzahl der Spalten und Zeilen, die in Ihrer Flipbook-Textur vorhanden sind:
Konfigurieren des CanvasItemMaterials für die Beispiel-Textur des Flipbooks
Sobald dies geschehen ist, wird der Animationsabschnitt in ParticleProcessMaterial (für GPUParticles2D) oder im CPUParticles2D-Inspektor wirksam.
Tipp
Wenn Ihre Flipbook-Textur einen schwarzen statt einen transparenten Hintergrund hat, müssen Sie auch den Blending-Modus auf Hinzufügen statt Mischen einstellen, damit die Textur korrekt angezeigt wird. Alternativ dazu können Sie die Textur in einem Bildbearbeitungsprogramm so verändern, dass sie einen transparenten Hintergrund hat. In GIMP kann dies über das Menü Farbe > Farbe zu Alpha erfolgen.
Zeitparameter
Lebensdauer
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, emittiert ein GPUParticles2D Node alle seine Partikel einmal und dann nie wieder.
Vorverarbeitung
Partikelsysteme beginnen mit null emittierten Partikeln und beginnen dann zu emittieren. Dies kann eine unpraktisch sein, wenn eine Szene geladen wird und Systeme wie Fackel, Nebel usw. in dem Moment, in dem Sie eintreten, zu emittieren beginnen. Die Vorverarbeitung wird verwendet, um das System eine bestimmte Anzahl von Sekunden verarbeiten zu lassen, bevor es tatsächlich das erste Mal gezeichnet wird.
Geschwindigkeitsskalierung
Die Geschwindigkeitsskalierung hat einen Standardwert von 1 und wird verwendet, um die Geschwindigkeit eines Partikelsystems anzupassen. Ein niedrigerer Wert macht die Partikel langsamer, während ein höherer Wert die Partikel viel schneller macht.
Explosivität
Wenn die Lebensdauer 1 ist und es 10 Partikel gibt, bedeutet das, dass alle 0,1 Sekunden ein Partikel ausgestoßen wird. Der Parameter Explosivität ändert dies und erzwingt, dass alle Partikel zusammen emittiert werden. Die Bereiche sind:
0: Partikel in regelmäßigen Abständen emittieren (Defaultwert).
1: Alle Partikel gleichzeitig emittieren.
Werte dazwischen sind ebenfalls zulässig. Diese Funktion ist nützlich, um Explosionen oder plötzliche Stöße von Partikeln zu erzeugen:
Zufälligkeit
Alle Physikparameter können randomisiert werden. Zufällige Werte reichen von 0 bis 1. Die Formel für die Randomisierung eines Parameters 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.
Bemerkung
Godot 4.3 does not currently support physics interpolation for 2D particles. As a workaround, disable physics interpolation for the particles node by setting Node > Physics Interpolation > Mode at the bottom of the inspector.
Delta-Bruchteil
Setting Fract Delta to true results in fractional delta calculation,
which has a smoother particles display effect.
This increased smoothness stems from higher accuracy.
The difference is more noticeable in systems with high randomness or fast-moving particles.
It helps maintain the visual consistency of the particle system,
making sure that each particle's motion aligns with its actual lifespan.
Without it, particles might appear to jump or move more than they should in a single frame
if they are emitted at a point within the frame.
The greater accuracy has a performance tradeoff,
particularly in systems with a higher amount of particles.
Zeichenparameter
Sichtbarkeitsrechteck
Das Sichtbarkeitsrechteck stellt die Sichtbarkeit von Partikeln ein. Wenn dieses Rechteck außerhalb des Viewports liegt, wird die Engine keine Partikel rendern.
Die W und H-Propertys des Rechtecks stellen jeweils Breite und Höhe ein. Die X und Y-Property stellen die Position der oberen linken Ecke des Rechtecks ein, relativ zum Partikelemitter.
Sie können Godot veranlassen, automatisch ein Sichtbarkeitsrechteck zu erzeugen, indem Sie die Symbolleiste oberhalb der 2D-Ansicht verwenden. Wählen Sie dazu den Node GPUParticles2D und klicken Sie auf Partikel > Generiere Sichtbarkeitsrechteck. Godot simuliert den Particles2D-Node, der einige Sekunden lang Partikel aussendet, und legt das Rechteck so fest, dass es auf die Oberfläche passt, die von den Partikeln eingenommen wird.
Sie können die Dauer der Emission mit der Option Erzeugungszeit (s) steuern. Der maximale Wert ist 25 Sekunden. Wenn Sie mehr Zeit für die Bewegung Ihrer Partikel benötigen, können Sie die Dauer der Vorverarbeitung im Node Particles2D vorübergehend ändern.
Lokale Koordinaten
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 mitverschoben:
Wenn diese Option deaktiviert ist, werden Partikel in den globalen Raum emittiert. Wenn der Node verschoben wird, sind bereits emittierte Partikel nicht betroffen:
Zeichenreihenfolge
Dies steuert die Reihenfolge, in der einzelne Partikel gezeichnet werden. Index bedeutet, dass die Partikel in der Reihenfolge ihrer Emission gezeichnet werden (Default). Lifetime bedeutet, dass sie in der Reihenfolge ihrer verbleibenden Lebensdauer gezeichnet werden.
Particle Process Material Settings
For information on the settings in the ParticleProcessMaterial see this page.