Difference between revisions of "User:Daemonika Nightfire/Scripts/Daes Particle"

From Second Life Wiki
Jump to navigation Jump to search
(Created page with '==Dae's Particle== I never use a particle generator. This Particle-Script serves me as a Basis for all of my Particle-Effects. <LSL> /*/|/ ╔══════════...')
 
Line 90: Line 90:
         Particle(); // startet hier das oben angepasste Particlesystem
         Particle(); // startet hier das oben angepasste Particlesystem
// zum loeschen der particle, einfach hier im state_entry den befehl "Particle();" mit "llParticleSystem([]);" austauschen.
// zum loeschen der particle, einfach hier im state_entry den befehl "Particle();" mit "llParticleSystem([]);" austauschen.
    }
}
</LSL>
==*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 Script erst in ein LSL Script kopieren.
<LSL>
/* //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
     }
     }
}
}
</LSL>
</LSL>

Revision as of 03:37, 1 September 2011

Dae's Particle

I never use a particle generator. This Particle-Script serves me as a Basis for all of my Particle-Effects. <LSL> /*/|/

   ╔════════════════════════════════−−−−−−−−−→
   ║ Dae's Particle by Daemonika Nightfire
   ╚═══════════════════−−−−−−−−−→
   target und flags nur bei den oberen 9 variablen einstellen!
   wenn die particle dauerhaft laufen sollen, loesch das script anschliessed raus, der prim braucht es dann nicht mehr!
   weniger laufende scripte auf der Sim bedeutet, weniger Lag!
  • /

//* // mit dem key target richtest particle auf ein ziehl key target = ""; // moegliche werte: "Avatar-Key" | "owner" | "self" | "root" | "child"

//** // mit den flags steuerst das verhalten der particle integer flags; // moegliche werte: TRUE (ja) oder FALSE (nein) integer glow = TRUE; // bei FALSE sind die particle nachts auch dunkel integer bounce = FALSE; // bei TRUE fallen sie nicht durch den boden integer color = TRUE; // farbwechsel, bei FALSE ignoriert es PSYS_PART_END_COLOR integer size = TRUE; // groessenaenderung, bei FALSE ignoriert es PSYS_PART_END_SCALE <x,y,z> ("2D" z wird nicht beruecksichtigt) integer wind = TRUE; // reagiert auf den Wind, bei FALSE hat der wind keinen einfluss auf die particle integer source = FALSE; // muss ich mir noch was einfallen lassen :) integer vel = TRUE; // beeinflusst die textur orientierung

//*** // folgende pattern aendern das erscheinungsbild der particle // Beispiel: PSYS_SRC_PATTERN_EXPLODE ist eine rundum explusion // such dir eine aus indem du die zwei // vor den befehlen entfehrnst oder setzt (wirst sehen, gibt nette effecte) integer pattern = PSYS_SRC_PATTERN_EXPLODE; //integer pattern = PSYS_SRC_PATTERN_DROP; //integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY; //integer pattern = PSYS_SRC_PATTERN_ANGLE_CONE; //integer pattern = PSYS_SRC_PATTERN_ANGLE;

Particle() { // dieser block benoetigt keinerlei aenderungen

   flags = 0;
   if (target == "owner") target = llGetOwner();    // ziehl = besitzer
   if (target == "self")  target = llGetKey();      // ziehl = der prim indem das script liegt
   if (target == "root")  target = llGetLinkKey(1); // ziehl = der rootprim wenn das script in einem child liegt ((1) ist immer root)
   if (target == "child") target = llGetLinkKey(2); // ziehl = ein child prim egal in welchem prim das script liegt, mit der nummer waehlst den prim aus (ab (2) fortlaufend)
   if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK;      // erlaubt das ziehl setzen
   if (glow)         flags = flags | PSYS_PART_EMISSIVE_MASK;        // wie bei prims das "ganz hell"
   if (bounce)       flags = flags | PSYS_PART_BOUNCE_MASK;          // springen auf dem boden und fallen nicht durch
   if (color)        flags = flags | PSYS_PART_INTERP_COLOR_MASK;    // erlaubt den farbwechsel
   if (size)         flags = flags | PSYS_PART_INTERP_SCALE_MASK;    // erlaubt die groessenaenderung
   if (wind)         flags = flags | PSYS_PART_WIND_MASK;            // particle folgen dem wind
   if (source)       flags = flags | PSYS_PART_FOLLOW_SRC_MASK;      // startet die particle versetzt, hebt radius auf
   if (vel)          flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; // richtet die "obenseite" einer textur aufs ziehl
   

// hier beginnt das Particlesystem und kann frei gestaltet werden

   llLinkParticleSystem(LINK_THIS,[              // waehlt im Linkset den Prim wo die Particle austreten sollen.
   PSYS_PART_MAX_AGE,          2.0,              // lebensdauer jedes einzelnen particles
   PSYS_PART_FLAGS,            flags,            // siehe oben **
   PSYS_SRC_PATTERN,           pattern,          // siehe oben ***
   PSYS_SRC_TARGET_KEY,        target,           // siehe oben *
   PSYS_PART_START_COLOR,      <1.0,1.0,1.0>,    // farbe beim austreten aus dem prim      benoetigt (integer color = TRUE;)
   PSYS_PART_END_COLOR,        <0.0,0.0,0.0>,    // farbe am ende for dem verschwinden     
   PSYS_PART_START_SCALE,      <0.10,0.10,0.00>, // groesse beim austreten aus dem prim    benoetigt (integer size = TRUE;)
   PSYS_PART_END_SCALE,        <0.05,0.05,0.00>, // groesse am ende for dem verschwinden   
   PSYS_SRC_BURST_RATE,        0.5,              // "rate" abstabd in secunden zwischen jedem austritt
   PSYS_SRC_ACCEL,             <0.00,0.00,0.02>, // zwingt die particle in eine richtung (Global)
   PSYS_SRC_BURST_PART_COUNT,  10,               // anzahl der austretenden particle pro "rate"
   PSYS_SRC_BURST_RADIUS,      0.05,             // Radius die groesse des effects (0.50 = 1 meter kreis)
   PSYS_SRC_BURST_SPEED_MIN,   0.01,             // minimale geschwindigkeit der einzelnen particle
   PSYS_SRC_BURST_SPEED_MAX,   0.10,             // maximale geschwindigkeit der einzelnen particle
   PSYS_SRC_ANGLE_BEGIN,       0.00,             // innerer abstand zum startprim
   PSYS_SRC_ANGLE_END,         0.00,             // aeusserer abstand zum startprim
   PSYS_SRC_OMEGA,             <1,1,1>,          // Rotation des gesamt effects <x,y,z>
   PSYS_SRC_MAX_AGE,           0.0,              // zeit bis das particle system selbststaendig aufhoert (0.0 = dauerbetrieb)
   PSYS_SRC_TEXTURE,           "",               // Asset-UUID einer textur fuer poofer zwischen die "" eintragen
   PSYS_PART_START_ALPHA,      1.0,              // transparenz zu begin
   PSYS_PART_END_ALPHA,        0.0               // transparenz am ende
   ]);

}

// hier beginnt das eigentliche script default {

   state_entry()
   {
       Particle(); // startet hier das oben angepasste Particlesystem

// zum loeschen der particle, einfach hier im state_entry den befehl "Particle();" mit "llParticleSystem([]);" austauschen.

   }

} </LSL>


*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 Script erst in ein LSL Script kopieren.

<LSL> /* //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
   }

} </LSL>