Alles über Partikel im UnrealED

Partikeltutorial für UnrealEditor 4.0

Inhalt:
1. Was ist ein Partikel(-system)?
2. Erstellen eines Partikelmaterials
3. Erstellen eines Partikelsystems
a) Übersicht
b) Allgemeine Einstellungen
c) Ausblendung (Fading)
d) Lebenszeit (LifeTime)
e) Partikelgröße (Initial Size)
f) Drehung (Initial Rotation)
g) Geschwindigkeit (Initial Velocity)
h) Anziehungskraft (Acceleration)
i) Erscheinungsgebiet (Initial Location)
j) (Dreh-) Achsen festellen (LockAxis)
k) Wirbel (Orbit)
l) Kollision (Collison)
4. Partikelsystem in die Map einfügen
____________
5. Emitter mit Kismet steuern
6. Partikelsystem mit Kismet ansteuern
7. MeshEmitter
8. ParticleSubUV

zu 1. Was ist ein Partikel(-system)?

In den meisten Fällen besteht ein Partikelsystem aus einzelnen „Spritepartikeln“, im Endeeffekt wird auf einer 2-dimensionalen Platte ein Material dargestellt, genannt „Partikel“. Durch diese Technik lässt sich Feuer, Rauch, Nebel, Funken und vieles mehr realisieren. Im Gegensatz zur UnrealEngine 2 muss man in der neuen Engine nicht mehr bei jedem Emitter (also den Aussender der Partikelsysteme -> Emitter sind die Instanzen der PartikelSysteme in der Map) einzeln das PartikelSystem erstellen, sondern kann einfach im GenericBrowser wie ein Material auch ein PartikelSystem einem Package hinzufügen und dieses System einem Emitter in der Map zuordnen.

Zu 2. Erstellen eines Partikelmaterials

Dazu wird wie gewohnt ein neues Material erstellt und folgenden Grundeinstellungen vorgenommen:


TextureSample: Benutzte Textur
VertexColor: Der Vektor lässt sich aus dem PartikelSystem heraus ansteuern, sodass Farbänderungen und Fading möglich sind
DephtBiasedAlpha: Weicht den Übergang zwischen einem anstoßenden Partikel und dem Objekt auf

Zu 3. Erstellen eines Partikelsystems

a) Übersicht

Ein PartikelSystem lässt sich genauso wie ein Material im GenericBrowser erstellen:


Nun muss im System noch ein neuer SpriteEmitter hinzugefügt werden:


Fenstereinteilung:

1: Vorschaufenster
2: Emitterliste
3: Einstellungen
4: Graphenfenster

b) Allgemeine Einstellungen

Folgende Grundeinstellungen sich relevant:


Material: Hier wird das zu benutzende Material eingetragen
UseLocalSpace: Wenn der EmitterActor bewegt, werden die Partikel nur bei aktivierter Einstellung mitgezogen
MaxDrawCount: Maximale Anzahl an dargestellten Partikeln
SpawnRate: Anzahl der neuen Partikel pro Sekunde

Um die Partikel im Partikelsystem zu steuern und zu verändern muss auf verschieden Eigenschaftsblöcke wie zum Beispiel „Geschwindigkeit“ oder „Skalierung“ zurückgegriffen werden. Im Folgenden werde ich auf die wichtigsten Blöcke eingehen. Um einem Emitter einen neuen Block zuzufügen muss man in der Emitterliste unter dem jeweiligen Emitter einen rechten Mausklick betätigen und den gewünschten Block auswählen. Dieser Block erscheint daraufhin unter dem ausgewählten Emitter.

c) Ausblendung (Fading)


Anwendung: Damit die Partikel weder sofort aus dem Nichts erscheinen noch unschön verschwinden kann man mithilfe der Ansteuerung des Alpha Outputs der VectorColor im Partikelmaterial die einzelnen Partikel langsam ein- bzw. ausblenden lassen.

Anleitung: Um eine Ein- bzw. Ausblendung zu erstellen ist ein „Color“ -> „ColorOverLife“ Block vonnöten. Mit diesem Block lässt sich direkt die VectorColor im Material ansteuern. Da deren AlphaOutput in OpacityInput steckt muss auch nur der Alpha Kanal verändert werden.

Um den AlphaWert der VectorColor zu steuern muss zuerst einmal die richtige Steuerungsart ausgewählt werden (dazu auf den blauen Pfeil klicken), hier eine „DistributionFloatConstantCurve“, auf gut deutsch eine Funktion.


Damit diese Funktion auch im Graphenfeld auswählbar wird, muss dieses grüne Icon mit der Funktion drauf im Block aktiviert werden.


Daraufhin werden im Graphenfeld zwei Graphen eingeblendet, einmal der für den RGB-Output der VectorColor zuständig ist und zum anderen der für den AlphaOutput.


Da der RGB-Graph nicht benötigt wird kann man ihn durch einen Klick auf den gelben Knopf ausblenden. Nun ist nur noch der Alpha-Graph zu sehen. Zum Hinzufügen von Punkten muss der Graphabschnitt mit gedrückter STRG-Taste angeklickt werden. Auf der x-Achse ist die jeweilige Zeit abzulesen, relativ zur „LifeTime“ (also 0=> x <= 1). Auf der y-Achse werden die zugeordneten Werte angezeigt, beim Alphakanal schwanken diese zwischen 0 und 1. Verschoben werden die Punkte ebenfalls mit gedrückter STRG-Taste und dem Ziehen mit gedrückter Maustaste.

d) Lebenszeit (LifeTime)

Anwendung: Hiermit lässt sich die Lebensdauer der einzelnen Partikel festlegen.

Anleitung: Die Min/Max – Werte können einfach in den Einstellungen des Blocks geändert werden. Die Partikel bekommen dann automatisch eine Lebenszeit zwischen den beiden Werten.

e) Partikelgröße (Initial Size)

Anwendung: Hiermit lässt sich die Größe der Partikel festlegen.

Anleitung: Die Min/Max – Werte können einfach in den Einstellungen des Blocks geändert werden. Die Partikel bekommen dann automatisch eine Skalierung zwischen den beiden Werten.

Außerdem gibt es noch „Size by life“. Dieser Block ist dem „Color Over Life“ fast gleich, nur muss nach der Auswahl der Steuerungsart die Einstellung „LockedAxes“ auf „EDVLF_XYZ“ gestellt werden und die y-Achse ist für y>=0 definiert.

f) Drehung (Initial Rotation)

Anwendung: Hiermit lässt sich die Rotation der Partikel festlegen.

Anleitung: Die Min/Max – Werte können einfach in den Einstellungen des Blocks geändert werden. Die Partikel bekommen dann automatisch einen Anfangsdrehwert zwischen den beiden Werten. Bei positiven Werten dreht sich der Partikel mit, bei negativen gegen den Uhrzeigersinn.

Außerdem gibt es noch „Intitial RotRate“, diese ähnelt der „Initial Rotation“ von den Einstellungen sehr, nur wird hier die Drehung der Partikel pro Sekunde angeben.

g) Geschwindigkeit (Initial Velocity)

Anwendung: Hiermit lässt sich die Geschwindigkeit der Partikel festlegen.

Anleitung: Die Min/Max – Werte können einfach in den Einstellungen des Blocks unter „StartVelocity“ geändert werden. Dabei handelt es sich um Vektoren, d.h. die einzelnen Richtungen können eingeben werden. Die Einheit lautet Welteinheiten pro Sekunde.

h) Anziehungskraft (Acceleration)

Anwendung: Hiermit lässt sich eine Gravitation simulieren.

Anleitung: Die Min/Max – Werte können einfach in den Einstellungen des Blocks geändert werden. Dabei handelt es sich um Vektoren, d.h. die einzelnen Richtungen können eingeben werden.

i) Erscheinungsgebiet (Initial Location)

Anwendung: Hiermit lässt sich das Erscheinungsgebiet der Partikel ändern.

Anleitung: Die Min/Max – Werte können einfach in den Einstellungen des Blocks geändert werden. Dabei handelt es sich um Vektoren, d.h. die einzelnen Längen können eingeben werden.

Außerdem gibt es unter „Location“ in der Blockauswahl noch „Cylinder“ und „Sphere“ (Zylinder und Kugel). Statt einem quaderförmigen Erscheinungsgebiet stehen somit auch andere Formen zur Verfügung.

j) (Dreh-) Achsen festellen (LockAxis) (zu finden in der BlockAuswahl unter „Orientation“)

Anwendung: Hiermit lässt sich das Drehverhalten der einzelnen Partikel einstellen, z.B. um Bodennebel oder Wolken zu erstellen.

Anleitung: Unter „LockAxisFlags“ kann man die gewünschte Einstellung auswählen.

k) Wirbel (Orbit)

Anwendung: Hiermit lässt sich eine Verwirbelung der Partikel simuliert.

Anleitung: OffsetAmount: Ort des Drehmittelpunktes
RotationRateAmount: Drehrate

l) Kollision (Collison)

Anwendung: Hiermit lässt sich die Kollision der Partikel mit anderen Objekten aktivieren und einstellen.

Anleitung: DampingFactor: Steuert den Impuls. Wenn Min/Max =1 dann ist Geschwindigkeit(nachher)=-Geschwindigkeit(vorher)
DampingFactorRotation: Steuert den Rotationswert nach der Kollsion relativ zur Rotation vor der Kollision
MaxCollisions: Wie oft darf ein Partikel kollidieren? Wenn die Zahl der Kollisionen diesen Wert überschreitet verschwindet der Partikel. (0=unendlich bzw. bis Ende der Lebenszeit)
DelayAmount: Wie lange nach dem Start des Partikels ist der Partikel kollisionslos?

Zu 4. Partikelsystem in die Map einfügen

Das PartikelSystem muss im GenericBrowser ausgewählt werden und kann unter dem MenüPunkt „AddActor->AddEmitter:Name“ im PopUpMenü der Map hinzugefügt werden.
_________

Zu 5. Emitter mit Kismet steuern

Emitter (also die Instanzen der PartikelSysteme in der Map) können attached, getoogelt und über eine Matinee bewegt werden. Dabei ist zu beachten, dass es in den Einstellungen jedes Emitters auswählbar ist, ob er erst aktiviert werden muss oder gleich zu Beginn aktiviert ist (EmitterPropeties->Emitter->Component->ParticleSystemComponent->bAutoActivate).

Zu 6. Partikelsystem mit Kismet ansteuern

Im Gegensatz zur einfachen Emitteransteuerung durch Kismet ist auch eine Steuerung des PartikelSystems über einen Emitter, der dieses System nutzt, möglich.
Als Beispiel wird nun eine kismetgesteuerte Farbänderung an den Partikeln vorgenommen:
a) Um eine Farbänderung zu verwirklichen, muss der RGB-Output der VectorColor mit der Grundtextur multipliziert werden, damit die VectorColor einen direkten Einfluss auf die Farbgebung hat (siehe obere Abbildung des Partikelmaterials).
b) Im PartikelSystem wird ein „ColorParameter“ Block benötigt. Unter ColorParam muss ein Name für den Parameter eingetragen werden.
c) In Kismet wird ein „SetParticelParam“ benötigt, welcher den Parameter verändert. Folgende Einstellungen müssen vorgenommen werden:


Im Target muss der jeweilige Emitter aus der Map zugeordnet werden, nur dieser Emitter wird verändert! Bei mir ist der Parametername „Farbe“, diesen hab ich auch im „ColorParameter“ Block im PartikelSystem benutzt. „Der ParamType“ ist im diesen Falle ein ColorParameter, weshalb auch diese Einstellung gemacht werden muss.
Zu 7. MeshEmitter

Statt Sprites kann ein Emitter auch Meshs spawnen. Dazu muss nur die „TypeData“ für den Mesh hinzugefügt werden. In deren Einstellung lässt sich dann auch ein Mesh aus dem GenericBrowser zuordnen. Dabei ist zu beachten, dass im Gegensatz zu den Sprites auch die y- und z-Werte bei der Skalierung genutzt werden.

Zu 8. ParticleSubUV

Um eine Reihe von Einzelbildern hintereinander relativ zur Lebenszeit des Partikels auf dem Partikel anzuzeigen gibt es die ParticleSubUV. Dazu erstellt man eine Textur, welche in jedem Viertel ein Einzelbild vorweißt.


Diese Textur darf im Partikelmaterial nicht als normales „TextureSample“ verwendet werden sondern muss als „Particel SubUV“ Node eingebracht werden.
In den allgemeinen Einstellungen des SpriteEmitters im PartikelSystem muss die „InterpolationMethod“ auf „PSUVIM_Linear“ gestellt werden und unter „SubImages_Horizontal/Vertical“ jeweils „2“ angeben werden. Nun kann mit einem „SubImage Index“ Block (zu finden unter „SubUV“) über das Graphenfeld das Erscheinen der Einzelbilder relativ zur Lebenszeit angepasst werden.


Mit diesem Tutorial werden „nur“ die „SpriteEmitter“ und „MeshEmitter“ abgedeckt, außer diesen gibt es noch die „Trail- und BeamEmitter“.

Gruß unrealer2
CMS & Forum coded by Alexander 'EisWiesel' Rothenberg
:: Seitenaufbau: 0.051 Sekunden :: SQL Selects: 30, InUpDel: 1 ::



Portions of the materials used are ®, (tm),(mr), and/or (mc) Epic Games, Inc., and/or copyrighted works of Epic Games, Inc., in the United States of America and elsewhere. All rights reserved, Epic Games, Inc. This material is not official and is not endorsed by Epic Games, Inc.
Diese Webseite verwendet Cookies / This website uses cookies