AddEffect=
Syntax: AddEffect=Id, EffectType (ADD_), FlagsEffect (FADD_), JointType (JOINT_), DispX, DispY, DispZ, DurateEmit, DuratePause, Extra param array
Bereich im Script: [Level]
Maximale Einträge pro Level: 99
Der AddEffect= ist wohl ursprünglich dazu gedacht, um mit Animcommands im Wadmerger bzw. WadTool Gegner bzw. Moveables nur in bestimmten Frames (Momenten) Partikel wie Blut, Rauch, usw, hinzuzufügen. Aber man kann auch generell diese Partikel zu Moveables und Statics hinzufügen.
Leider ist der Befehl etwas angsteinflößend bzw. verwirrend. Gehen wir mal die Parameter im einzeln durch.
Id
Hier vergeben wir eine Nummer, damit wir den AddEffect= später mit einem Trigger starten oder stoppen können, oder einem anderen Script Befehl bzw. Animcommand zuordnen können. Zahlen gehen hier laut Paolone bis zu 127.
Trigger für Statics:
Action Trigger 83 : Statics. Apply on <#>static the (E)Add Effect from script file
Action Trigger 84 : Statics. Remove from <#>static the (E)Add Effect of script file
Trigger für Moveables:
48 : Effect. Add to <#>Enemy the (E)AddEffect from script.txt
49 : Effect. Remove from <#>Enemy the (E)AddEffect from script.txt
Anmerkung:
Enemies können hier auch Moveables wie PUZZE_ITEMS, KEY_ITEMS und sogar Lara sein.
Zusätzlich zu dem ADDEFFECT Trigger müssen einige Moveables auch noch vorher getriggert werden, damit der Effekt sichtbar wird z.B. PUZZLE_ITEMS. Andere wiederum nicht wie z.B. der JEEP.
EffectType (ADD_)
Hier legen wir fest, was für einen Effekt wir zuweisen wollen.
ADD_...
ADD_BLOOD
Fügt Blutspritzer hinzu
ADD_SMOKE
Fügt Rauch hinzu
AddEffect=1, ADD_SMOKE,FADD_SMOKE_EXHAUST,JOINT_SINGLE_MESH,0,-400,0,0,0,IGNORE
AddEffect=2, ADD_SMOKE,FADD_NONE,JOINT_SINGLE_MESH,0,-400,0,0,0,IGNORE
ADD_FLAME
Fügt Feuerflammen hinzu
Extra Parameter für ADD_FLAME, die man an den Schluss setzt
Extra1
Intensität der Flamme
Ohne FADD_FIRE_STRIP Flag
Werte von 0, 1, oder 2
Mit FADD_FIRE_STRIP (Flammenwerfereffekt)
Werte von +1000 bis -8000. Ein vernünftiger Wert ist -4000
Extra2
1 = Lara verbrennt bei Berührung
2 = Kein Schaden für Lara
Extra3
Nur mit Verwendung mit FADD_FIRE_STRIP
0 = horizontaler Feuerstreifen
1 = vertikaler Feuerstreifen (wie bei einem Vulkanausbruch)
AddEffect=1, ADD_FLAME,FADD_FIRE_STRIP+FADD_CONTINUE_EMIT+FADD_ROTATE_180,JOINT_SINGLE_MESH,0,-200,-300,0,0,-8000,1,0
AddEffect=2, ADD_FLAME,FADD_FIRE_STRIP+FADD_CONTINUE_EMIT+FADD_ROTATE_180,JOINT_SINGLE_MESH,0,-200,-300,0,0,-6000,1,0
AddEffect=3, ADD_FLAME,FADD_FIRE_STRIP+FADD_CONTINUE_EMIT+FADD_ROTATE_180,JOINT_SINGLE_MESH,0,-200,-300,0,0,-4000,1,0
AddEffect=4, ADD_FLAME,FADD_FIRE_STRIP+FADD_CONTINUE_EMIT+FADD_ROTATE_180,JOINT_SINGLE_MESH,0,-200,-300,0,0,-2000,1,0
ADD_LIGHT_BLINK
Fügt Blinklicht hinzu ähnlich wie bei den Magnesiumfackeln
ADD_LIGHT_FLAT
Fügt ein normales Licht hinzu, was man farblich anpassen kann. Es ist ohne Spot ähnlich einer Glühbirne.
Man kann bei DurateEmit und DuratePause field ein Blinken erzeugen, dass allerdings im Gegensatz zu ADD_LIGHT_BLINK nicht zufällig ist sondern immer schön gleichmäßig an- und ausgeht wie bei elektronischen Geräten.
ADD_LIGHT_GLOVE
Fügt ein Licht in Form einer Kugel hinzu. Es ist nicht durchsichtig.
ADD_LIGHT_SPOT
Fügt ein Licht wie Lichtfleck hinzu. Es erzeugt einen Lichtkegel, der in eine bestimmte Richtung geht wie die Scheinwerfer des Beiwagens.
Die Richtung folgt zunächst dem des Objektes (Moveables) dem man es zufügt. Man kann die Richtung mit einem FADD_... Flag ändern.
Anmerkung:
Hat man schon den Jeep oder Boot oder ein Fahrzeug welches die Scheinwerfer nutzt im Level kann es zu Problemen kommen, da die Licht Ressourcen die gleichen sind.
Man nimmt hier am besten einen sehr hohen Wert um die 200 herum.
Man kann die Gelb_Weiße Farbe nicht ändern.
Extra Parameter für ADD_LIGHT..., die man an den Schluss setzt
Extra1
Intensität des Lichtes. Hat Auswirkungen bei ADD_LIGHT_BLINK und ADD_LIGHT_FLAT. Je höher, desto intensiver.
Richtwerte: Intensität einer Magnesiumfackel =16.
Extra2
Maximale Entfernung beim ADD_LIGHT_SPOT. Das Scheinwerferlicht des Motorrades mit Beiwagen hat 20 Sektoren als Standardwert. Setzt man hier IGNORE, wird ein Wert von 12 Sektoren genommen.
Extra3
Farbe des Lichts. Hier man die Flags von MIST_COL.... nehmen.
MIST_COL_BLUE
MIST_COL_GREEN
MIST_COL_PURPLE
MIST_COL_RED
MIST_COL_WHITE
MIST_COL_YELLOW
AddEffect=1,ADD_LIGHT_BLINK,FADD_NONE,JOINT_SINGLE_MESH,0,0,0,30,60,16,IGNORE,MIST_COL_BLUE
AddEffect=2,ADD_LIGHT_FLAT, FADD_CONTINUE_EMIT,JOINT_SINGLE_MESH,0,0,0,0,0,16,IGNORE,MIST_COL_RED
AddEffect=3,ADD_LIGHT_GLOVE, FADD_NONE,JOINT_SINGLE_MESH,370,-500,0,0,0,IGNORE,IGNORE,MIST_COL_PURPLE
AddEffect=4,ADD_LIGHT_SPOT,FADD_CONTINUE_EMIT,JOINT_SINGLE_MESH,0,0,0,0,0,400
ADD_MIST
fügt eine Art Sprühnebel hinzu wie beim Waterfall Mist Objekt.
Verwendet man diesen Flag gibt es 4 zusätzliche Felder in der Syntax und lautet wie folgt
Syntax: AddEffect=Id, EffectType (ADD_), FlagsEffect (FADD_), JointType (JOINT_), DispX, DispY, DispZ, DurateEmit, DuratePause, Extra1 SizeMistBall, Extra2 NumberOfMistBalls, Extra3 ColorMist, Extra4 PersistenceOfMist
Extra Parameter für ADD_MIST..., die man an den Schluss setzt
Extra1
Größe der Sprühregen Kugel. Standardgröße ist 12.
Extra2
Anzahl der Sprühregen Kugeln
Standard ist 1. Man kann maximal 4 Kugeln setzen. Die Kugeln verteilen sich in Richtung in der das Objekt nach vorne zeigt. Man kann es ändern indem man Rotate Flags nimmt.
Extra3
Farbe des Sprühregens. Mit MIST_COL.. kann man die Farbe setzen.
MIST_COL_BLUE
MIST_COL_GREEN
MIST_COL_PURPLE
MIST_COL_RED
MIST_COL_WHITE
MIST_COL_YELLOW
Extra4
Zeit in der sich der Sprühregen ausbreitet. Standardwert ist 6. Größere Zahlen bedeuten längere Zeit bis zur Ausbreitung.
AddEffect=1, ADD_MIST, FADD_CONTINUE_EMIT,JOINT_SINGLE_MESH,0,0,0,0,0,12,1,MIST_COL_BLUE,6
AddEffect=2, ADD_MIST, FADD_CONTINUE_EMIT,JOINT_SINGLE_MESH,0,0,0,0,0,16,1,MIST_COL_RED,12
AddEffect=3, ADD_MIST, FADD_CONTINUE_EMIT,JOINT_SINGLE_MESH,0,0,0,0,0,20,1,MIST_COL_GREEN,24
AddEffect=4, ADD_MIST, FADD_CONTINUE_EMIT,JOINT_SINGLE_MESH,0,0,0,0,0,24,1,MIST_COL_YELLOW,32
FlagsEffect (FADD_)
FADD_...
FADD_CONTINUE_EMIT
Durch diesen Flag werden die Werte in DurateEmit und DuratePause ignoriert. Es entsteht ein gleichmäßiger Austritt oder eine gleichmäßige Ausströmung. Eignet sich z.B. bei Flames (Flamen) und Mist (Sprühnebel)
FADD_NONE
Möchte man keine FADD_... Flags verwenden, kann man einfach FADD_NONE eingeben. Ich denke IGNORE geht aber auch.
FADD_FIRE_STRIP
Dieser Flag wird im Zusammenhang mit "ADD_FLAME" verwendet. Standardmäßig zeigt der ADD_FLAME Effekt Flammen wie z.B. an einer Fackel an. MIt dem Flag FADD_FIRE_STRIP bekommt man horizontale Feuerflammen, wie z.B. bei einem Drachen. Mit FADD_ROTATE_180 Flag kann man gegebenfalls die Richtung (von vorne oder nach hinten) einstellen.
FADD_SMOKE_EXHAUST
Dieser Flag wird im Zusammenhang mit "ADD_SMOKE" verwendet. Standardmäßig gibt es zwei Smoke Emitter Typen. Standard ist ein Rauch, der nach oben steigt und sich schnell auflöst. Möchte man einen Effekt wie Abgase, die man beim JEEP oder beim Sidecar in TRIV sieht, setzt man "FADD_SMOKE_EXHAUST".
FADD_IGNORE_STATUS
Bei den meisten Moveables muss man diese vorher triggern, damit der Effekt angewendet wird. Also z.B. auch PUZZLE_ITEMS. Mit diesem Flag wird der Effekt immer angewendet, egal ob das Objekt getriggert wurde oder nicht.
FADD_NO_SOUND
Dieser Flag deaktiviert Sound wie z.B. bei MIst oder Fire.
FADD_ROTATE_...
Diese Flags kann man dazu benutzen, die horizontale Ausrichtung eines Effektes schnell in 90 Grad Schritten zu korrigieren z.B. eine Feuerflamme, die mit FADD_FIRE_STRIP herausströmt.
FADD_ROTATE_90
Der Flag FADD_ROTATE_90 verändert die Richtung um 90 Grad im Uhrzeigersinn.
FADD_ROTATE_180
Funktioniert wie FADD_ROTATE_90, aber diesmal wird die Richtung um 180 Grad im Uhrzeigersinn verändert.
FADD_ROTATE_270
Funktioniert wie FADD_ROTATE_90, aber diesmal wird die Richtung um 270 Grad im Uhrzeigersinn verändert.
FADD_VORIENT_....
FADD_VORIENT_90/180/270 Flags fixen ein Problem mit der vertikalen Orientierung bei einigen Moveables, bei denen das Mesh, an dem wir den Effekt anwenden wollen bei "No Animation" eine andere vertikale Ausrichtung hat als bei der ersten Animation" (Ein Beispiel ist der Jeep). Dies kann man herausfinden, indem man dies im WadTool (No Animation sieht man im Skeleton Editor) oder im Wadmerger (No Animation) nachschaut, Bei Statics haben diese Flags keine Auswirkung.
Anmerkung:
Die Flags verändern nicht die Position des Effekts, der angewendet wird, sondern nur die Korrektur der vertikalen Position des Mesh, an dem wir den Effekt anwenden wollen.
FADD_VORIENT_90
Verändert vorübergehend die vertikale Orientierung des Moveable um 90 Grad im Uhrzeigersinn, bevor die Werte in DispX, DispY und DispZ berechnet werden.
FADD_VORIENT_180
Verändert vorübergehend die vertikale Orientierung des Moveable um 180 Gradim Uhrzeigersinn, bevor die Werte in DispX, DispY und DispZ berechnet werden.
FADD_VORIENT_270
Verändert vorübergehend die vertikale Orientierung des Moveable um 270 Grad im Uhrzeigersinn, bevor die Werte in DispX, DispY und DispZ berechnet werden.
FADD_DURATE_...
FADD_DURATE_STATEID
Bei diesem Flag bleibt der Effekt solange bestehen, bis das Moveable in einen anderen STATE ID geht als es beim Starten des Effektes hatte. Zeitangaben bei Triggern werden ignoriert.
FADD_DURATE_ANIMATION
Dieser Flag funktioniert ähnlich wie der FADD_DURATE_STATEID, aber in diesem Fall wird der Effekt aktiviert bzw. deaktiviert wenn sich die Animation Nummer ändert.
FADD_DURATE_SINGLE_FRAME
Dieser Flag führt den Effekt in einem einzigen Frame aus. Es gibt nur einen Effekt in diesem Frame und dann wird der Effekt deaktiviert. Anscheinend geht nur Blood mit diesem Flag.
JointType (JOINT_)...
Hier gibt man das Mesh des Objektes an, an dem der Effekt erscheinen soll.
Anmerkung:
Static Objekte haben imner nur ein Mesh, deswegen gibt man hier JOINT_SINGLE_MESH an.
Als Referenz dienen folgende Lara Joints:
Mesh | Nr. |
---|---|
MOVEABLE | |
JOINT_PUBIS | 0 |
JOINT_LEFT_THIGH | 1 |
JOINT_LEFT_KNEE | 2 |
JOINT_LEFT_ANCKLE | 3 |
JOINT_RIGHT_THIGH | 4 |
JOINT_RIGHT_KNEE | 5 |
JOINT_RIGHT_ANCKLE | 6 |
JOINT_ABDOMEN | 7 |
JOINT_NECK | 8 |
JOINT_LEFT_SHOULDER | 9 |
JOINT_LEFT_ELBOW | 10 |
JOINT_LEFT_WRIST | 11 |
JOINT_RIGHT_SHOULDER | 12 |
JOINT_RIGHT_ELBOW | 13 |
JOINT_RIGHT_WRIST | 14 |
Als Refenznamen dienen hier Laras Gelenke mit der Mesh Nummer. Wichtig ist hier vor allem die Mesh Nummer, diese können wir im Wadmerger im "Mesh Tree Editor" oder beim Wad Tool im "Skeleton Editor" finden. Im Skeleton Editor heißen die Meshes "bone".
Wir können nun entweder den JOINT_ Namen verwenden, sofern unser Moveable (Enemy, Lara usw.) die gleiche Mesh Nummer hat, oder einfach die Mesh Nummer. Die Mumie hat z.B. beim linken Knöchel das Mesh 3. Also können wir entweder die Zahl 3 setzen oder den JOINT_... Flag "JOINT_LEFT_ANCKLE".
Anmerkung:
Man ist eigentlich immer auf der sicheren Seite, wenn man einfach die Mesh Nummer angibt. Dann braucht man sich nicht mit dem JOINT_... Namen beschäftigen. Manche Gegner oder Moveables haben auch mehr Meshes als 14. Dann muss man sowieso die Mesh Nummer nehmen.
Möchte man z.B. die äußerste hängende Bandage bei der Mumie nehmen, muss man die Mesh Nummer 18 nehmen.
Beispiel: Wad Tool - Meshes heißen hier bone
DispX, DispY, DispZ
Diese 3 Werte geben die Position des Effektes an. Geben wir hier 3 mal 0 ein, befindet sich der Effekt genau in der Mitte (meist der Drehpunkt) des Meshes, den wir unter JOINT_... angegeben haben.
DispX
Horizonale Position
Negative Werte befinden sich rechts vom Objekt ausgesehen und links, wenn wir auf das Objekt schauen.
Positive Werte befinden sich links vom Objekt ausgesehen und rechts, wenn wir auf das Objekt schauen.
DispY
Vertikale Position
Negative Werte bewegen den Effekt nach oben.
Positive Werte bewegen den Effekt nach unten.
DispZ
Vorne bzw. hinten
Positive Werte bewegen den Effekt vor Lara.
Negative Werte bewegen den Effekt hinter Lara
Anmerkung: Gibt man keine Werte an, kann man entweder Nullen eintragen oder IGNORE.
Als Beispiel hier mal der Kopf der Mumie. Wir möchten, dass der Kopf brennt. Der Kopf hat bei der Mumie die Mesh Nummer 19. Da hier kein JOINT_... Name genommen werden kann, da die Referenz JOINT_... Namen nur bis Mesh 14 gehen, tippen wir einfach die Zahl ein.
Script-Befehl:
AddEffect=14, ADD_FLAME,FADD_CONTINUE_EMIT,19,0,0,0,0,0,0,1,IGNORE
oder
AddEffect=14, ADD_FLAME,FADD_CONTINUE_EMIT,19,IGNORE, IGNORE,IGNORE,IGNORE,IGNORE,0,1,IGNORE
Ergebnis:
DurateEmit und DuratePause
Bei einigen Effekten wie z.B. Smoke und Blood macht es Sinn, eine Zeit festzulegen, wo der Effekt stattfindet und dann pausiert.
Die Werte, die man hier angibt sind die Anzahl der Frames. Nimmt man z.B. bei DurateEmit 3 und bei DuratePause 10, wird der Effekt 3 Frames lang ausgeführt und pausiert für 10 Frames.
Fire und Smoke:
Der Flag FADD_CONTINUE_EMIT bewirkt, dass es konstantes Feuer bzw. konstanten Rauch gibt.
Blood:
Gut geeignet ist 1 Frame als Emit und 30 Frames für Pause.
Mist:
Für Mist kann ebenfals FADD_CONTINURE_EMIT benutzen. Möchte man einen Gischteffekt haben, kann man 1 als Emit und 3 als Pause angeben.
Anmerkung:
Auch hier kann man entweder Nullen eintragen oder IGNORE, wenn man keine Werte vergibt.
Extra param array
Hier können bei 3 ADD_ Effekten noch zusätzliche Einstellungen gemacht werden.
Siehe oben bei:
ADD_FLAME
ADD_LIGHT
ADD_MIST