Schnee mit dem Visual Effect Graph

Wie erstellt man eigentlich Schnee in Unity? Dieser Beitrag bringt dich Schritt für Schritt dorthin, dass es in deinem Spiel schneit.

Schnee in Unity erstellen

Erstelle zu Beginn den Visual Effect Graph, um das Visual Effect Graph Asset zu erschaffen.

Dies funktioniert wie folgt: Rechte Maustaste–>Create–>Visual Effects –>Visual Effect Graph

Visual Effect Graph erstellen1

Öffne mit einem Doppelklick das Bearbeitungsmenü:

Bearbeitungsmenü Visual Effect Graph

Ändere den Simulationsraum, von Local zu World, da es nicht nur bei einem Objekt schneien soll, sondern in der Spielwelt (durchaus gibt es Merkwürdigkeiten, bei denen einzelne Menschen beim Spazierengehen eingeschneit werden, dies lassen wir jedoch erstmal im Raum der fiktiven Möglichkeiten stehen)

Umgestellt auf World

Als nächstes steigere die Spawnrate. Mit einer Schneeflocke lässt sich beim Wetter nicht viel anfangen. Setze die konstante Spawn Rate auf 4000.

Constant Spawn Rate

Setze die Kapazität auf 100.000.

Kapazität

Damit sagst du dem System, das 100.000 Partikel gleichzeitig existieren dürfen.

Füge die Angular Velocity from Curve hinzu. Angular Velocity steht für die Winkelgeschwindigkeit, in welcher sich die Partikel um die eigene Achse bewegen. Sie wird in Grad pro Sekunde angegeben.

Dabei stellst du dir die Kurve ein, wie du sie benötigst.

Add Angular Velocity

Wähle mit der rechten Maustaste Edit Key:

Edit Key

Setze den Wert auf 300.

Wert

Damit veränderst du die Kurve für die Geschwindigkeit der Partikel so, wie du sie für den Schnee benötigst. Bestätige mit Enter.

Die Kurve sieht danach folgendermaßen aus:

Kurve

Setze als nächstes die Lebenszeit der Partikel nach oben. Gebe für A den Wert 10 und für B den Wert 15 ein. Somit bleiben die Schneeflocken länger bestehen.

Lebenszeit von Partikeln

Erstelle eine Position Property mit dem Titel “Camera.” Dabei handelt es sich um Positionseinstellungen, welche Unity sagen, wo sich in der Spielwelt dein Asset befindet.

Position Property

Benenne es um (rechte Maustaste: Rename und gewünschten Namen eingeben).

Position Property umbenennen

Aktiviere im Untermenü “Exposed”. Damit belichtest du deine Partikel.

Exposed

Der Wert ist momentan noch auf Lokal gesetzt. Deswegen ändere ihn auf “World”.

Welt

Ziehe die Camera in dein Diagramm. Verbinde das Positionsbox-Center mit Camera im Diagramm.

Camera im Diagramm

Verändere jetzt die Größe (Size) auf die Größe, für die du den Schnee benötigst. Beispielsweise 5,5,5.

Größe verändern

Damit vergrößerst du deine Box, in welcher sich der Schnee bewegt.

Momentan sieht das ganze so aus:

Momentane Schneeflocken

Füge jetzt eine Set Scale-Komponente hinzu. Damit ermöglichst du zufällige Größenveränderungen für jeden Partikel.

Verändere die Werte oben von 0 auf: 0.5;0.5;0.5 und

unten auf 0.15;0.15 und 0.15

Anschließend sieht es schon etwas anders aus. Bis jetzt hast du im Initialize Particle-Fenster gearbeitet. Im kommenden Schritt ändert sich das.

Schneeflocken nach Skalierung

Füge jetzt Schwerkraft zu deinen Schneeflocken hinzu. Dafür benötigst du das Update Particle-Fenster. Setze sie auf 0.0, -0.75 und 0.0

Gravitation

Jetzt müssten die Partikel nach unten fallen.

Damit der Schnee etwas durcheinanderwirbelt, wenn er fällt, füge Turbulenzen hinzu.

Dafür benötigst du in Unity Turbulence Force.

Schnee mit Turbulenzen

Noch mehr umhergewirbelt wird der Schnee, wenn du Tile Warp Positions hinzufügst. Verbinde den Center der Tile / Warp Positions ebenfalls mit der Kamera. Vergiss nicht, die Größe anzupassen, wie du dies oben bereits bei der Boxgröße gemacht hast. Die Tile / Warp Positions bauen kleine Strudel ein, welche den Schnee noch mehr umherwirbeln.

Tile Warp

Setze den Uv Mode auf Flipbook (Daumenkino). Dadurch rieselt der Schnee langsamer hinab.

Uv Mode

Setze den Blend Mode auf Additive. Dies sorgt dafür, dass die Pixel deines angegeben Materials dem Hintergrund hinzugefügt werden. Der Alphamodus könnte flimmern.

Passe die Flip Book Size an deine Textur an. Dadurch kann der Schnee beispielsweise heller erscheinen.

Füge die Schneeflockentextur hinzu, die du möchtest. Dann füge einen Set Tex Index hinzu.

Erstelle eine Random Number Node und setze das Maximal auf 4. Dieser erstellt einen zufallsgenerierten Zahlenwert, der zwischen dem vordefinierten Minimal- und Maximalwert liegt. Verbinde dies mit dem Set Tex Index.

Random Node

Entferne anschließend Set over Lifetime.

Am Ende sieht es so aus:

Endergebnis

Der Schnee wird als “Child” der Main Camera in die Szene gebracht.

Beispielszene

Makiere im Hierarchiefenster den Schnee.

Füge über Add Component einen VFX Property Binder im Inspectorfenster hinzu.

Property Binder ermöglichen das Anhängen einer Visual Effect-Komponente an ein GameObject: Dadurch können Verbindungen zwischen Szenen- oder Gameplay-Werten und exponierten Eigenschaften für diese Visual Effect-Instanz hergestellt werden.

Property Binder

Wähle bei dem +Zeichen Transform–>Position aus.

Position Schnee

Ändere den Namen in Camera_position und ziehe die Main Camera aus der Szene bei Target hinein.

Main Camera Property

Fertig und viel Spaß mit deinem Schnee im Spiel!

 

 

 

Schlagwörter:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.