User:Daemonika Nightfire/Scripts/Daes Particle
< User:Daemonika Nightfire
Jump to navigation
Jump to search
Revision as of 00:03, 11 May 2021 by Daemonika Nightfire (talk | contribs) (→*DS* Particle Wiki v4.0.03)
*DS* Particle Wiki v4.0.03 (2021-05-09 23:01:10 lsl2 script)
I never use a particle generator. This Particle-Script serves me as a Basis for all of my Particle-Effects.
/*
╔════════════════════════════════−−−−−−−−−→
║ Dae's Particle by Daemonika Nightfire
╚═══════════════════−−−−−−−−−→
http://wiki.secondlife.com/wiki/LlLinkParticleSystem#llLinkParticleSystem
*/
Particle()
{
llLinkParticleSystem(LINK_THIS,[
PSYS_PART_FLAGS, PSYS_PART_EMISSIVE_MASK // option ganz hell
//| PSYS_PART_BOUNCE_MASK // bleiben auf ebene
| PSYS_PART_INTERP_COLOR_MASK // erlaubt den farbwechsel
| PSYS_PART_INTERP_SCALE_MASK // erlaubt die groessenaenderung
| PSYS_PART_WIND_MASK // particle folgen dem wind
//| PSYS_PART_FOLLOW_SRC_MASK // Particle halten relative position zum Prim (!PSYS_SRC_BURST_RADIUS)
| PSYS_PART_FOLLOW_VELOCITY_MASK // Textur ausrichtung "Oben" zum ziehl
//| PSYS_PART_TARGET_LINEAR_MASK // auf direktem weg zum ziehl (!PSYS_SRC_ACCEL & !PSYS_SRC_BURST_RADIUS)
//| PSYS_PART_TARGET_POS_MASK // auf umweg zum ziehl
//| PSYS_PART_RIBBON_MASK // verbindet die particle zu einem Faden (!PSYS_PART_FOLLOW_VELOCITY_MASK)
,
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_EXPLODE // Explusion
//PSYS_SRC_PATTERN_DROP // Tropfen (!PSYS_SRC_BURST_RADIUS & !SYS_SRC_BURST_SPEED_MIN & !PSYS_SRC_BURST_SPEED_MAX)
//PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY // unvollstaendige Implementierung (NUTZLOS)
//PSYS_SRC_PATTERN_ANGLE_CONE // kugelfoermiger Effekt mit start und end Begrenzung
//PSYS_SRC_PATTERN_ANGLE // ringfoermiger Effekt mit start und end Begrenzung
,
PSYS_PART_BLEND_FUNC_SOURCE, //PSYS_PART_BF_ONE //
//PSYS_PART_BF_ZERO //
//PSYS_PART_BF_DEST_COLOR //
//PSYS_PART_BF_SOURCE_COLOR //
//PSYS_PART_BF_ONE_MINUS_DEST_COLOR //
//PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR //
PSYS_PART_BF_SOURCE_ALPHA // Standard
//PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA //
,
PSYS_PART_BLEND_FUNC_DEST, //PSYS_PART_BF_ONE //
//PSYS_PART_BF_ZERO //
//PSYS_PART_BF_DEST_COLOR //
//PSYS_PART_BF_SOURCE_COLOR //
//PSYS_PART_BF_ONE_MINUS_DEST_COLOR //
//PSYS_PART_BF_ONE_MINUS_SOURCE_COLOR //
//PSYS_PART_BF_SOURCE_ALPHA //
PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA // Standard
,
//PSYS_SRC_TARGET_KEY, "", // Particle zum Ziehl (UUID) | PSYS_PART_TARGET_LINEAR_MASK oder PSYS_PART_TARGET_POS_MASK
/**/PSYS_PART_MAX_AGE, 5.0, // Lebensdauer | max. 30.0 Sekunden
PSYS_SRC_MAX_AGE, 0.0, // Abschaldtimer | nicht mit Lebensdauer verwechseln (0.0 = dauerbetrieb)
PSYS_PART_START_COLOR, <1.0,0.0,0.0>, // Farbe Begin | <0.0,0.0,0.0> bis <1.0,1.0,1.0> PSYS_PART_INTERP_COLOR_MASK
PSYS_PART_END_COLOR, <0.0,0.0,1.0>, // Farbe Ende | <0.0,0.0,0.0> bis <1.0,1.0,1.0> ''
PSYS_PART_START_SCALE, <0.30,0.30,0.00>, // Groesse Begin <x,y,z> | min. = 0.03125 | max. = 4.00 | z = ungenutzt PSYS_PART_INTERP_SCALE_MASK
PSYS_PART_END_SCALE, <0.15,0.15,0.00>, // Groesse Ende <x,y,z> | min. = 0.03125 | max. = 4.00 | z = ungenutzt ''
PSYS_PART_START_ALPHA, 1.00, // Transparenz Begin | 0.0 bis 1.0 PSYS_PART_INTERP_COLOR_MASK
PSYS_PART_END_ALPHA, 0.00, // Transparenz Ende | 0.0 bis 1.0 ''
PSYS_PART_START_GLOW, 0.10, // Gluehen Begin | 0.0 bis 1.0 PSYS_PART_INTERP_COLOR_MASK
PSYS_PART_END_GLOW, 0.00, // Gluehen Ende | 0.0 bis 1.0 ''
/**/PSYS_SRC_BURST_RATE, 0.05, // Geschwindigkeit pro Sekunde | min. = 0.01
/**/PSYS_SRC_BURST_PART_COUNT, 1, // Particle Anzahl | Viewer Limit berechnen, /**/ _COUNT x _RATE x _MAX_AGE = Total
PSYS_SRC_BURST_RADIUS, 0.75, // Radius | max. = 50.0 meter Radius (!PSYS_PART_FOLLOW_SRC_MASK)
PSYS_SRC_BURST_SPEED_MIN, 0.10, // minimal Austrits-Geschrwindigkeit |
PSYS_SRC_BURST_SPEED_MAX, 0.25, // maximal Austrits-Geschrwindigkeit |
PSYS_SRC_ANGLE_BEGIN, 0.00, // innerer Abstand zum Zentrum | PSYS_SRC_PATTERN_ANGLE oder PSYS_SRC_PATTERN_ANGLE_CONE
PSYS_SRC_ANGLE_END, 0.00, // aeusserer Abstand zum Zentrum | ''
PSYS_SRC_OMEGA, <1,1,1>, // Rotation | Globale Achse <x,y,z>
PSYS_SRC_ACCEL, <0.00,0.00,0.10>, // Beschleunigung | Globale Ausrichtung <x,y,z>
PSYS_SRC_TEXTURE, "" // Textur UUID erforderlich | Beispiel: "b1d84ecb-2a83-d3c4-7bfb-592648dcb20d"
]);
}
// hier unten beginnt das eigentliche script
default
{
state_entry()
{
Particle(); // startet hier das oben angepasste Particlesystem
//llLinkParticleSystem(LINK_SET, []); // loescht die Particle
}
}
*DS* Particle Wiki v3.3 © by Daemonika Nightfire (daemonika.nightfire)
Dieses ist mein beforzugtes Format zum erstellen saemtlicher Particle-Effecte. Der Vorteil besteht darin, das sich diese Kurzfassung uebersichtlich in ein Script an die gewuenschte stelle einfuegen laesst.
INFO
Um die im Script angesprochenen Farben zu erkennen, muss man das komplette Script erst in ein LSL Script kopieren.
/* //start disabled code
╔════════════════════════════════−−−−−−−−−→
║ *DS* Particle Wiki v3.3 © by Daemonika Nightfire (daemonika.nightfire)
╚═══════════════════−−−−−−−−−→
2010-12-30 15:48:40 lsl2 script
Daemonika's Particle Wiki fuer Fortgeschrittene (extrem kurzfassung, Deutsch)
Nachfolgende Zeilen dienen ausschliesslich zur Information!
Dieses Script eignet sich hervorragend zum vorbereiten von Particle fuer ein entgueltiges Produkt.
[ Type (gruen) | Value-Zahl (schwarz) | Value-Text (blau) | Beschreibung (orange) ]
System Behavior
integer 0 = PSYS_PART_FLAGS // fuer folgende Befehle wichtig:
integer 0x004 = PSYS_PART_BOUNCE_MASK // bleiben auf ebene
integer 0x100 = PSYS_PART_EMISSIVE_MASK // option ganz hell
integer 0x010 = PSYS_PART_FOLLOW_SRC_MASK // ohne 0x010, Particle halten relative position zum Prim | deaktiviert (16)
integer 0x020 = PSYS_PART_FOLLOW_VELOCITY_MASK // Textur ausrichtung "Oben" zum ziehl
integer 0x001 = PSYS_PART_INTERP_COLOR_MASK // beeinflusst color und alpha
integer 0x002 = PSYS_PART_INTERP_SCALE_MASK // beeinflusst groesse
integer 0x080 = PSYS_PART_TARGET_LINEAR_MASK // auf direktem weg zum ziehl | deaktiviert (8) und (16)
integer 0x040 = PSYS_PART_TARGET_POS_MASK // auf umweg zum ziehl
integer 0x008 = PSYS_PART_WIND_MASK // particle folgen dem Wind
System Presentation
integer 9 = PSYS_SRC_PATTERN // fuer folgende Befehle wichtig:
integer 0x02 = PSYS_SRC_PATTERN_EXPLODE // Explusion
integer 0x08 = PSYS_SRC_PATTERN_ANGLE_CONE // Aura aehnliche Explusion
integer 0x04 = PSYS_SRC_PATTERN_ANGLE // Aura
integer 0x01 = PSYS_SRC_PATTERN_DROP // Tropfen
integer 0x10 = PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY // ?
Particle Parameter
integer 0 = // (System Behavior) Beispiel: 0, 0x100 | 0x004 | 0x001 | 0x002 | 0x020 | u.s.w.,
vector 1 = PSYS_PART_START_COLOR // Start_Farbe braucht 0x001 | <0.0,0.0,0.0> bis <1.0,1.0,1.0>
float 2 = PSYS_PART_START_ALPHA // Transparenz_Start '' | 0.0 bis 1.0
vector 3 = PSYS_PART_END_COLOR // End_Farbe '' | <0.0,0.0,0.0> bis <1.0,1.0,1.0>
float 4 = PSYS_PART_END_ALPHA // Transparenz_End '' | 0.0 bis 1.0
vector 5 = PSYS_PART_START_SCALE // Anfangsgroesse <x,y,z> braucht 0x002 | min. = 0.03125 | max. = 4.00 | z = ungenutzt
vector 6 = PSYS_PART_END_SCALE // Endgroesse <x,y,z> '' | min. = 0.03125 | max. = 4.00 | z = ungenutzt
float 7 = PSYS_PART_MAX_AGE // Lebensdauer | max. 30.0 secunden
vector 8 = PSYS_SRC_ACCEL // Globale Richtungsvorgabe | <x,y,z>
integer 9 = // (System Presentation) Beispiel: 9, 0x08,
10 = // deleted
11 = // deleted
string 12 = PSYS_SRC_TEXTURE // Textur UUID erforderlich | Beispiel: "b1d84ecb-2a83-d3c4-7bfb-592648dcb20d"
float 13 = PSYS_SRC_BURST_RATE // Geschwindigkeit pro secunde | min. = 0.01
14 = // not used
integer 15 = PSYS_SRC_BURST_PART_COUNT // Particle_Anzahl | mach nicht zuviele auf einmal
float 16 = PSYS_SRC_BURST_RADIUS // Radius des Effects | (0.50 = 1 meter kreis) max. = 50.0 meter
float 17 = PSYS_SRC_BURST_SPEED_MIN // Mindest_Austrits_geschrwindigkeit |
float 18 = PSYS_SRC_BURST_SPEED_MAX // Maximal_Austrits_geschrwindigkeit |
float 19 = PSYS_SRC_MAX_AGE // Abschaldtimer | nicht mit Lebensdauer verwechseln (0.0 = dauerbetrieb)
key 20 = PSYS_SRC_TARGET_KEY // Particle zum Ziehl | braucht 0x040 oder 0x080
vector 21 = PSYS_SRC_OMEGA // Particle_Rotation | Globale Ausrichtung <x,y,z>
float 22 = PSYS_SRC_ANGLE_BEGIN // Winkel Anfang (Aura) |
float 23 = PSYS_SRC_ANGLE_END // Winkel Ende |
Hier endet die Particle Wiki.
*/ //end disabled code
// ### Hier beginnt der Scriptbereich ###
// Im Scriptbefehl werden ausschliesslich die Value-Zahlen (schwarz) verwendet.
// Das dient der uebersichtlichkeit im eigentlichen Script
default
{
state_entry()
{
// Ungenutzte Value Constanten glaenzen durch abwesenheit.
// [ Value-Zahl,Wert, Value-Zahl,Wert, Value-Zahl,Wert, Value-Zahl,Wert, u.s.w.]
llLinkParticleSystem(LINK_THIS,[7,3.0, 0,0x100 | 0x001 | 0x002, 9,0x02,
1,<0.8,0.6,0.2>, 3,<1.0,0.0,0.0>, 5,<0.10,0.10,0.00>, 6,<0.05,0.05,0.00>, 8,<0.00,0.00,0.1>,
13,0.1, 15,2, 16,0.5, 17,0.01, 18,0.02, 22,0.0, 23,0.0, 21,<0,0,1>,
12,"b1d84ecb-2a83-d3c4-7bfb-592648dcb20d", 2,1.0, 4,0.5]);
// Die im Script verwendete Textur UUID darf nicht fuer eigene Zwecke verwendet werden © by Daemonika Nightfire
}
}