Freigeben über


Partikeleffekte

Von Feuerwerksraketen, die Rauch hinterlassen, bis zu Blasen, die aus einem Fischmaul kommen – Partikel sind eine hervorragende Möglichkeit, Inhalten in Minecraft: Bedrock Edition Spezialeffekte hinzuzufügen.

Bild, das Alex mit einem Zauberstab zeigt, der Funken und Effekte aussendet

In diesem Tutorial wird Folgendes beschrieben:

  • Erstellen benutzerdefinierter Partikeleffekte in Minecraft: Bedrock Edition
  • Erstellen eines neuen Partikeleffekts zur Verwendung in deiner Karte oder deinem Add-On

Voraussetzungen

Es wird empfohlen, vor Beginn dieses Tutorials Folgendes abzuschließen:

Einführung

Anwendungsfälle für Partikel

Partikel sind ein praktisches Hilfsmittel, um die visuelle Darstellung einer Karte oder eines Add-Ons zu verbessern. Sie können auf Objekte angewendet werden, um Umgebungseffekte wie Abgasrauch zu erzielen, oder für Angriffe wie Zaubersprüche und für andere Animationen verwendet werden. Partikel können auch für Umgebungseffekte in Karten wie beispielsweise herabfallende Blätter verwendet werden. Mit Partikeln lassen sich auch einfache 2D-Grafiken in deiner Welt platzieren. Darüber hinaus sind Partikel in der Regel leistungsfähiger als benutzerdefinierte Objekte, da sie vollständig clientseitig simuliert werden.

Benennung und Speicherort

Bedrock verwendet ein benutzerdefiniertes JSON-Format für Partikeleffekte. Dateien werden im Ordner particles deines Ressourcenpakets gespeichert. Ähnlich wie bei Modellen und Objekten wird auf Partikel durch ihren Bezeichner verwiesen. Das bedeutet, dass du die Datei in einem beliebigen Unterordner im Ordner particles speichern kannst, ohne dich um Verweise kümmern zu müssen.

Der Partikelbezeichner wird oben in der JSON-Datei angegeben. Genau wie bei Objekten sollte er aus einem Namespace und einem Namen bestehen, zum Beispiel compass:colored_smoke.

    "description": {
    "identifier": "compass:colored_smoke",
    },

Einheiten

Alle Werte in Partikeleffekten verwenden als Einheiten Meter (Blöcke) und Sekunden. Die Geschwindigkeit wird in Metern pro Sekunde (m/s) und die Beschleunigung in Metern pro Quadratsekunde (m/s²) angegeben. Drehungen verwenden Grad, sowohl für Drehungen als auch für trigonometrische Funktionen.

Snowstorm

Wir verwenden Snowstorm, um die Partikeleffekte in dieser Anleitung zu erstellen. Snowstorm kann als Web-App oder als Erweiterung für VSCode verwendet werden. Damit können wir die Partikeleffekte live in der Vorschau anzeigen, während wir Parameter ändern. Die Web-App kann für Anfänger nützlich sein. Wenn du jedoch an einem Projekt mit einer Reihe von Partikeleffekten arbeitest, bietet die VSCode-Erweiterung einen schnelleren Workflow.

Benutzeroberfläche

Wenn du Snowstorm öffnest, siehst du einen 3D-Vorschaubereich, eine Seitenleiste, die Menüleiste und die Ausdrucksleiste unter dem Menü.

Benutzeroberfläche von Snowstorm

Die Seitenleiste besteht aus einer Liste aller verschiedenen Parameter und Einstellungen, aus denen der Partikel besteht. Viele der Felder unterstützen MoLang. Das bedeutet, dass du statische Zahlen eingeben kannst. Wenn du jedoch mehr Kontrolle über den Wert haben möchtest, kannst du auch mathematische Ausdrücke unter Verwendung der MoLang-Sprache eingeben. Bewege den Mauszeiger über die einzelnen Felder, um die Beschreibungen dazu anzuzeigen.

Wenn du einen sehr komplexen MoLang-Ausdruck hast, kannst du ihn auch in der Ausdrucksleiste direkt unter dem Menü bearbeiten.

Ausdrucksleiste in Snowstorm

In der Menüleiste kannst du Dateien in die Web-App importieren und daraus exportieren, Beispiele laden oder Referenzen anzeigen.

Unterhalb der Ausdrucksleiste siehst du den Vorschaubildschirm. Du kannst über die linke und die rechte Maustaste sowie mithilfe des Mausrädchens im 3D-Raum navigieren, und du kannst die Schaltflächen unten verwenden, um die Vorschau zu starten oder anzuhalten. In der unteren rechten Ecke werden die FPS und die aktuelle Anzahl der Partikel in der Szene angezeigt.

Importieren und Exportieren

Wenn du die Web-App verwendest, müssen Dateien über das Menü Datei importiert und exportiert werden. Du kannst auch oben rechts zur Registerkarte Code wechseln, um eine Vorschau der generierten Datei anzuzeigen.

Registerkarte „Code“ in Snowstorm

Wenn du benutzerdefinierte Texturen verwendest, müssen diese einzeln im Abschnitt Texturen in der Seitenleiste geladen werden.

Texturauswahl in Snowstorm

Wenn du die VSCode-Erweiterung verwendest, erstelle eine neue Datei mit dem Namen <name>.particle.json im Ordner „Partikeleffekte“. VSCode öffnet sie dann automatisch mit dem Snowstorm-Editor. Du kannst auch in der oberen rechten Ecke auf Code öffnen klicken, um eine Vorschau des generierten Codes in einer neuen Registerkarte anzuzeigen. Du kannst den Code hier auch direkt bearbeiten.

Erstellen eines Partikeleffekts

In dieser Anleitung erstellen wir Schritt für Schritt einen farbigen Raucheffekt. Öffne zunächst Snowstorm und suche den Abschnitt „Meta“ in der Seitenleiste. Gib den Bezeichner des Partikeleffekts ein – wir verwenden compass:colored_smoke.

Bezeichner in Snowstorm

Emitter

Endergebnis des erzeugten Partikels

Jetzt ändern wir den Emitter. Der Emitter ist das Kernstück des Partikeleffekts und für das Spawnen von Partikeln verantwortlich. Zuerst müssen wir den Abschnitt Rate öffnen und definieren, wie viele Partikel gespawnt werden. Wir behalten als Moduseinstellung Dauerhaft bei, was bedeutet, dass der Emitter ständig Partikel spawnt. Wir setzen die Rate auf 30 und das Maximum auf 100. Dies bedeutet, dass der Emitter während seiner Lebensdauer 30 Partikel pro Sekunde spawnt, solange nicht mehr als 100 Partikel von diesem Emitter in der Welt vorhanden sind.

Emitterrate in Snowstorm

Als Nächstes definieren wir die Lebensdauer des Emitters. Wir wollen diesen Partikeleffekt nur einmal wiedergeben. Wenn ein konstanter Emitter benötigt wird, kannst du ihn auf „Schleife“ einstellen. Wir setzen die Aktive Zeit auf 2, sodass der Emitter zwei Sekunden lang Partikel erzeugt.

Lebensdauer des Emitters in Snowstorm

Standardmäßig werden Partikel an einem einzigen Punkt in der Mitte des Emitters gespawnt. Das ist für unseren Partikeleffekt in Ordnung, sodass wir im Abschnitt Form nichts ändern müssen.

Partikelgröße

Wir wechseln nun zu den Partikeleinstellungen und konfigurieren die Darstellungseinstellungen. Alle Partikel sind eine 2D-Ebene mit einer darauf angewendeten Textur. In den Größeneinstellungen können wir die Breite und Höhe dieser Ebene definieren, wobei die Werte den Radius angeben. Wenn die Größe beispielsweise auf 1x1 festgelegt wird, hätten die Partikeleffekte beispielsweise eine Größe von 2x2 Blöcken. In diesem Beispiel verwenden wir 0,25x0,25.

Partikelgröße in Snowstorm

Bewegung und Physik der Partikel

Der nächste Schritt besteht darin, die Bewegungen der Partikel zu definieren. Im Abschnitt Bewegung lassen wir den Modus Richtung auf Nach außen eingestellt. Für Punktemitter bedeutet dies stets, dass sich die Partikel gleichmäßig in alle Richtungen ausbreiten.

Bewegung der Partikel in Snowstorm

Jetzt, da der Partikel eine erste Richtung hat, ändern wir die Geschwindigkeit. Im Abschnitt Bewegung legen wir die Geschwindigkeit auf math.random(2, 4) fest. Dabei handelt es sich um einen einfachen mathematischen Ausdruck, der stets eine zufällige Dezimalzahl zwischen 2 und 4 ausgibt. Die Geschwindigkeit wird nur einmal berechnet, wenn der Partikel gespawnt wird, sodass jeder unserer Partikel jetzt eine zufällige Startgeschwindigkeit hat.

Beschleunigung definiert Kräfte, die nach dem Spawnen auf den Partikel einwirken. Um beispielsweise die Schwerkraft auf der Erde zu simulieren, würden wir den mittleren Wert (Y-Achse) auf -9.8 setzen. Für unseren Rauch verwenden wir 0, 3, 0 als Beschleunigung, um eine langsame Aufwärtsbewegung zu erzeugen.

Im Moment wird die Beschleunigung unsere Partikel exponentiell schneller machen. Damit sie nach kurzer Zeit langsamer werden und an einem Ort bleiben, fügen wir Luftwiderstand hinzu. Du kannst es dir als dicke Luft vorstellen, die die Beschleunigung sanft verlangsamt, wenn der Partikel seine Endgeschwindigkeit erreicht. Wir setzen dies vorerst auf 2.

Um den Luftwiderstand etwas abwechslungsreicher zu gestalten, werden wir diesen Wert randomisieren. Der Luftwiderstandsausdruck wird einmal pro Frame ausgewertet. Die Verwendung der mathematischen Zufallsfunktion funktioniert daher in diesem Fall nicht, da die zufälligen Werte sich gegenseitig aufheben würden, bevor überhaupt ein Effekt zu bemerken wäre. Stattdessen verwenden wir eine integrierte Variable. Jedem Partikel und jedem Emitter werden automatisch 4 zufällige Variablen zugewiesen, die während der gesamten Lebensdauer beibehalten werden. Die Variablen enthalten eine zufällige Zahl zwischen 0 und 1. Wir legen den Wert daher auf 2 + variable.particle_random_1 fest, um einen zufälligen Luftwiderstandwert zwischen 2 und 3 zu erhalten.

Lebensdauer der Partikel

Jetzt legen wir fest, wie lange die Partikel in der Welt existieren. Um einen langsamen Ausblendeffekt zu erzielen, werden wir diese Zahl erneut randomisieren. Da Max. Dauer nur einmal– beim Spawnen des Partikels– ausgewertet wird, müssen wir diesen Wert auf math.random(1, 3) festlegen.

Lebensdauer der Partikel in Snowstorm

Textur

Du kannst deine eigene Textur für Partikel erstellen und im Ordner „Texturen“ des Ressourcenpakets speichern. Der Einfachheit halber verwenden wir in diesem Beispiel den standardmäßigen Minecraft-Sprite für Partikel. Gib Texturen/Partikel/Partikeleffekte in das Feld Pfad im Abschnitt Textur ein, um auf diese Textur zu verweisen. Die Textur wird automatisch geladen und im Spiel angezeigt, auch wenn sie nicht im aktuellen Texturpaket enthalten ist, da sie standardmäßig die Vanilla-Version der Textur verwendet.

Partikeltextur und Animationsoptionen in Snowstorm

Die Partikeltextur, die wir verwenden werden, ist der größte Rauchpartikel. Da wir die Textur animieren möchten, um nach und nach kleinere Rauchpartikel zu erzielen, lege für UV-Modus die Option Animiert fest.

Die gesamte Texturkarte, die Texturen für alle Partikel enthält, hat eine Auflösung von 128 x 128 Pixeln. Die meisten einzelnen Stücke des Sprites haben eine Dimension von 8 x 8 Pixeln. Diese Werte werden jedoch um den Faktor2 skaliert. Die Texturgröße wird daher am Ende 16 x 16 Pixel betragen. Die verbleibenden Optionen basieren auf dieser Größe.

Das Startpixel des größten Rauchpartikels beträgt 56Pixel horizontal, skaliert um den Faktor 2 auf 112. Da die Texturgröße in diesem Kontext 16x16 beträgt, wird 112 durch 16 geteilt. Das Ergebnis 7 ist der Wert des Felds UV-Start. Alternativ kannst du die Anzahl der Texturen zählen, die vor der Textur angezeigt werden, mit der du beginnen möchtest (es gibt sieben Texturen, die vor dem größten Rauchpartikel angezeigt werden). Das manuelle Zählen von Texturen ist jedoch möglicherweise schwieriger, wenn viel leerer Platz vorhanden ist.

Da die Animation den Übergang zu kleineren Rauchtexturen beinhaltet, wird UV-Schritt auf -1 x 0 gesetzt. Dies bedeutet, dass horizontal eine Verschiebung um 16Pixel (basierend auf der Texturgröße) nach links im Vergleich zur vorherigen Textur und vertikal keine Veränderung eintritt. Wir setzen außerdem Max. Frame auf 7. Die Animation hat acht Frames, da es acht Texturen gibt. Die erste wird als „Frame0“ gezählt, sodass Frame7 der letzte Frame ist.

In diesem Fall möchten wir alle Frames gleichmäßig über die Lebensdauer des Partikels verteilen. Also lassen wir das Feld FPS leer und Schleife deaktiviert. Wir aktivieren jedoch Über Lebensdauer erstrecken. Jetzt verfügen wir über eine funktionierende animierte Textur.

Farbe

Jetzt möchten wir zufällige Farben auf die Partikel anwenden. Die Basistextur ist weiß, was einen guten Ausgangspunkt für das Einfärben von Partikeln darstellt.

Partikelfarbe in Snowstorm

Wir verwenden eine Reihe verschiedener Farben und jeder Partikel nimmt einen zufälligen Wert an. Öffne zunächst den Abschnitt Farbe und Licht und wähle den Modus Farbverlauf aus. Wir werden nun einen schönen, einfachen Regenbogen konfigurieren. Du kannst einen Farbpunkt mit dem Symbol + hinzufügen, ihn verschieben und die Farbe der einzelnen Punkte ändern.

Der Standardfarbbereich liegt zwischen 0 und 1. Das bedeutet, dass wir jetzt einfach eine andere unserer integrierten zufälligen Variablen verwenden können, um eine zufällige Farbe auszuwählen. Wir geben variable.particle_random_2 in das Feld Interpolante ein. Jetzt wird jeder Partikel in einer zufälligen Farbe aus dem Farbverlauf spawnen.

Das Endergebnis sollte in Snowstorm in etwa wie folgt aussehen:

Endergebnis des erzeugten Partikels in Snowstorm

Verwenden des Partikeleffekts im Spiel

Es gibt drei Möglichkeiten, Partikeleffekte im Spiel wiederzugeben:

Befehle

Dies stellt die einfachste Möglichkeit dar, einen Effekt zu testen. Verwende den Befehl /particle, um einen Partikelemitter für die Welt zu erzeugen.

Hinweis

Da Partikeleffekte vollständig clientseitig sind und Befehle serverseitig ausgeführt werden, erkennt der Server die Partikeleffekte nicht. Das bedeutet, dass du keine Fehlermeldung erhältst, wenn du versuchst, einen Partikeleffekt wiederzugeben, der nicht vorhanden ist.

Hier ist ein Beispielbefehl: Die drei Tilden am Ende des Befehls zeigen die Position an, in diesem Fall die genaue Position, an der der Befehl ausgeführt wurde– d.h. die Fußposition des Spielers oder die Mitte des Befehlsblocks, der den Befehl ausführt.

/particle compass:colored_smoke ~ ~ ~

Animationen

Partikel können auch in Objektanimationen wiedergegeben werden. Dies ist ein zweistufiges Verfahren. Zuerst musst du den Partikeleffekt in der Client-Objektdatei verknüpfen und ihm einen Kurznamen geben. Dann kannst du diesen Kurznamen in einer Animation verwenden.

Füge deiner Client-Objektdatei im Beschreibungsobjekt Folgendes hinzu:

"particle_effects": {
    "smoke": "compass:colored_smoke"
}

Partikeleffekt-Keyframes können einer Animation in Blockbench hinzugefügt werden. Klicke auf die Schaltfläche Effekte animieren oberhalb der Zeitleiste, und füge dem Kanal Partikel einen Keyframe hinzu. Gib nun den Kurznamen (wie in der Client-Objektdatei definiert) in das Eingabefeld Effekt im Keyframe-Bedienfeld ein.

Du kannst auch einen Locator in der Objektdatei angeben, in dem der Partikeleffekt angezeigt wird. Darüber hinaus kannst du unter Skript eine Variable zuweisen, die später innerhalb des Partikeleffekts verwendet werden kann.

Beispiel:

variable.custom_size = 3.14;

Animationscontroller

Partikeleffekte können auch von Animationscontrollern wiedergegeben werden. Füge hierzu zunächst deiner Client-Objektdatei den Partikeleffekt hinzu, wie oben beschrieben. Füge als Nächstes einem spezifischen Status des Animationscontrollers einen oder mehrere Partikeleffekte hinzu, wie in diesem Beispiel gezeigt:

"particle_effects": [
    {
        "effect": "smoke"
    }
]

Wie geht es weiter?

Herzlichen Glückwunsch, du hast es bis zum Ende des (P)Artikels geschafft! Du kannst jetzt einen benutzerdefinierten Partikeleffekt erstellen, den Emitter konfigurieren, die Physik ändern sowie eine animierte Textur verwenden und einfärben.

Das Erstellen von Partikeleffekten hat viel mit Ausprobieren zu tun, was die Kombination verschiedener Einstellungen und die Verwendung von MoLang-Ausdrücken zum Unterstützen von Parametern angeht. Wenn du mehr erfahren möchtest, solltest du dir die Beispielpartikel und die Konfiguration ansehen. Dadurch erhältst du einen Einblick darin, wie verschiedene Werte und Ausdrücke verwendet werden können, um Effekte zu erzeugen. Außerdem empfehlen wir, einfach mit allen Parametern herumzuspielen, Spaß zu haben und zu sehen, welche Ideen du dir einfallen lässt.