bluelacroix Posted December 16, 2013 Share Posted December 16, 2013 Hi everyone, My first post here. I have many examples and went to the Particle Laboratory and enlisted the help of several people, but I still can't make a simple snow-fall particle script, even starting with a free one. I am making an ornament for a Christmas tree and wanted to have a few fluttering 'snow' particles descending from it. It is a small ornament, probably about half a meter around. I got all the free scripts from the Particle Laboratory and the one that seemed the best fit was "Snow" PARTICLE TEMPLATE. This script I have experimented with for 5 hours and still can't get it to work. The snow falls, but the particles are too fast. I want a very slow rate. I changed the PSYS_SRC_ACCEL many times but even at 0 it is too fast, and making negative or positive only seems to make it faster. I changed PSYS_SRC_BURST_SPEED_MIN and PSYS_SRC_BURST_SPEED_MAX various ways, but that seems to affect the radius of the particles - if I decrease the MAX, the particles come out all in a line, rather than being spread across a small area. Essentially the script below works for what I want, but the particles are moving about twice as fast as I want. Additionaly, the particles seem to emit from the south pole of the sphere (if you drop the script in a sphere) up to about the equator, and only on one side of the sphere. I would prefer it come out evenly all around the equator, but that is a much lesser concern than the speed. I'm guessing that it's the SL wind, but I believe that is turned off and it still goes fast. I can turn up gravity (I believe by making a negative number with the PSYS_SRC_ACCEL parameter) but that results in the snow paritcles going straight down, and still just as fast. If anyone could please help me I would be very thankful. ~Bleue //// "Snow" PARTICLE TEMPLATE v1 - by Jopsy Pendragon - 4/8/2008//// You are free to use this script as you please, so long as you include this line://** The original 'free' version of this script came from THE PARTICLE LABORATORY. **//// SETUP: Drop one optional particle texture and this script into a prim.// Particles should start automatically. (Reset) the script if you insert a// particle texture later on. Add one or more CONTROLLER TEMPLATES to any// prims in the linked object to control when particles turn ON and OFF.// Customize the particle_parameter values below to create your unique// particle effect and click SAVE. Values are explained along with their// min/max and default values further down in this script.string CONTROLLER_ID = "A"; // See comments at end regarding CONTROLLERS.integer AUTO_START = TRUE; // Optionally FALSE only if using CONTROLLERS.list particle_parameters=[]; // stores your custom particle effect, defined below.list target_parameters=[]; // remembers targets found using TARGET TEMPLATE scripts.default {state_entry() {particle_parameters = [ // start of particle settings// Texture Parameters:PSYS_SRC_TEXTURE, llGetInventoryName(INVENTORY_TEXTURE, 0),PSYS_PART_START_SCALE, <.1,.1, FALSE>, PSYS_PART_END_SCALE, <.1,.1, FALSE>,PSYS_PART_START_COLOR, <1,1,1>, PSYS_PART_END_COLOR, <1,1,1>,PSYS_PART_START_ALPHA, (float).7, PSYS_PART_END_ALPHA, (float).3,// Production Parameters:PSYS_SRC_BURST_PART_COUNT, (integer)1,PSYS_SRC_BURST_RATE, (float) 0.25,PSYS_PART_MAX_AGE, (float)5.0,PSYS_SRC_MAX_AGE,(float) 0.0,// Placement Parameters:PSYS_SRC_PATTERN, (integer)8, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,// Placement Parameters (for any non-DROP pattern):PSYS_SRC_BURST_SPEED_MIN, (float)0.0, PSYS_SRC_BURST_SPEED_MAX, (float)0.9,// PSYS_SRC_BURST_RADIUS, 0.0,// Placement Parameters (only for ANGLE & CONE patterns):PSYS_SRC_ANGLE_BEGIN, (float) 0.0*PI,//.33PSYS_SRC_ANGLE_END, (float) 0.0*PI,// PSYS_SRC_OMEGA, <0,0,0>,// After-Effect & Influence Parameters:PSYS_SRC_ACCEL, <0.0,0.0,-0.5>,// PSYS_SRC_TARGET_KEY, llGetLinkKey(llGetLinkNumber() + 1),PSYS_PART_BOUNCE_MASK, FALSE,PSYS_PART_FLAGS, (integer)( 0 // Texture Options:| PSYS_PART_INTERP_COLOR_MASK| PSYS_PART_INTERP_SCALE_MASK| PSYS_PART_EMISSIVE_MASK// | PSYS_PART_FOLLOW_VELOCITY_MASK// After-effect & Influence Options:// | PSYS_PART_WIND_MASK// | PSYS_PART_BOUNCE_MASK// | PSYS_PART_FOLLOW_SRC_MASK// | PSYS_PART_TARGET_POS_MASK// | PSYS_PART_TARGET_LINEAR_MASK)//end of particle settings];if ( AUTO_START ) llParticleSystem( particle_parameters );}link_message( integer sibling, integer num, string mesg, key target_key ) {if ( mesg != CONTROLLER_ID ) { // this message isn't for me. Bail out.return;} else if ( num == 0 ) { // Message says to turn particles OFF:llParticleSystem( [ ] );} else if ( num == 1 ) { // Message says to turn particles ON:llParticleSystem( particle_parameters + target_parameters );} else if ( num == 2 ) { // Turn on, and remember and use the key sent us as a target:target_parameters = [ PSYS_SRC_TARGET_KEY, target_key ];llParticleSystem( particle_parameters + target_parameters );} else { // bad instruction number// do nothing.}}}//============================= About Parameters =============================// There are 22-ish NAMED attributes that affect a particle display.// To customize a display you give each a VALUE.// For example: PSYS_PART_START_COLOR is a named attribute,// and <1.0, 0.5, 0.0> is a color VALUE (orange, in this case).//// As long as your 'names' and 'values' are paired up properly, they can// be in any order! Any you omit a pair, it reverts to a default value.//============================= Texture Parameters =============================//// TEXTURE, can be an "Asset UUID" key copied from a texture// that you have full permissions to, or the name of// a texture in the prim's inventory.//// SCALE, (size) 0.0 to 4.0 meters wide, by 0.0 to 4.0 meters tall. (default 1x1)// Textures are FLAT, so the 'z' part of the vector is ignored.// Values smaller than 0.04x0.04 may not get rendered at all.// Tiny particles vanish if the viewer is not near them.//// BEGIN_SCALE sets particle start size.// END_SCALE (end size) is ignored, if the INTERP_SCALE_MASK option is disabled.//// COLOR, < RED, GREEN, BLUE > from <0.00,0.00,0.00> (black) to <1.00,1.00,1.00> (white/default)// ALPHA, 1.0 = 100% visible(default), 0.0 = invisible. Less than 0.1 might not get seen.// START_COLOR and START_ALPHA set the color and transparency of newly created particles.// END_COLOR and END_ALPHA are ignored, if the INTERP_COLOR_MASK option is disabled.//============================= Production Parameters =============================//// BURST_PART_COUNT: quantity of particles per burst, 1 to 4096 (default 1),//// BURST_RATE: seconds to delay between particle bursts. 0.0 to 30.0 (default 0.1)//// PART_MAX_AGE: particle lifespan in seconds, 0.00 to 30.0 (default=10.0)// PART_MAX_AGE less than 0.5 might not be visible.//// The default total number of particles that can be seen is 4096, if one or more// emitters try to create more than that, many will not be seen, and it may cause// viewer lag. Use as few particles as you can for your effect:// AGE/RATE * COUNT will tell you approximately how many particles your emitter creates.//// SRC_MAX_AGE: emitter auto shut-off timer. 1.0 to 60.0 seconds. 0.0 = never stop. (default)//============================= Placement Parameters =============================//// PATTERN:// DROP, ignores all other placement settings.// EXPLODE, spray particles in all directions// ANGLE, sprays a flat "fan" shape defined by ANGLE_BEGIN and END values// CONE, sprays "ring" or "cone" shapes defined by ANGLE_BEGIN and END values//// RADIUS: 0.0 to 50.0? distance from emitter to create new particles// (RADIUS is disabled with DROP pattern and the FOLLOW_SRC & TARGET_LINEAR options)//// SPEED: 0.00 to 50.0? Sets min/max starting velocities for non-drop patterns. (default: 1.0)//// ANGLE_BEGIN & END: 0.00*PI (up) to 1.00*PI (down), (Only for ANGLE & CONE patterns)// (Values work much like the Sphere-prim's DIMPLE attributes.) (defaults: 0.0)//// OMEGA: <x,y,z> Sets how much to rotate angle/cone spray direction after// every burst. 0.0 to PI? (default: <0,0,0>)//======================== After-Effects & Influence Parameters ================//// ACCEL, x,y,z 0.0 to 50.0? sets a constant force, (affects all patterns)// Causes particles to drift up/down or in a compass direction.// Use ACCEL to create the illusion of (anti-)gravity or a directional wind.// (ineffective with TARGET_LINEAR option)//// TARGET_KEY, "key", (requires the TARGET option be enabled).// "key" can be a variety of many different things:// llGetOwner()// llGetKey() target self// llGetLinkKey(1) target parent prim// llGetLinkKey(llGetLinkNum() + 1) target next prim in link set//// WARNING: New copies of objects get new keys, you can't simply paste// a prim's key into your script and expect it to always work. Visit// the Particle Laboratory's section on TARGETS for a variety of ways// to dynamically find your target's key. There are different 'best ways'// depending on if your target is linked to your emitter or not.//============================= About Options =============================//// Each option may be ON/ENABLED (no leading // )// or OFF/DISABLED (by putting a // in front of it.)// Options are combined together in a special way, (using the | symbol).// This creates one single Parameter for PSYS_PART_FLAGS.//============================= Texture Options =============================//// EMISSIVE: identical to "full bright" setting on prims//// FOLLOW_VELOCITY: particle texture 'tilts' towards the direction it's moving//// INTERP_COLOR: causes particle COLOR and ALPHA(transparency) to change over it's lifespan//// INTERP_SCALE: causes particle SCALE(size) to change over it's lifespan//======================== After-Effects & Influences Options ================//// BOUNCE: particles bounce up from the z-altitude of emitter, and cannot fall below it.//// WIND: the sim's wind will push particles around//// FOLLOW_SRC: makes particles move (but not rotate) if their emitter moves, (disables RADIUS)//// TARGET_POS: causes particles to arrive at a some target at end of of their lifespan.//// TARGET_LINEAR: forces particles to form into an even line from emitter to target// and forces a DROP-like pattern and disables effects of WIND and ACCEL //========================================================================//======================== USING CONTROL TEMPLATES =======================//// Want to control when your particles turn ON and OFF? You can!//// Drop one (or more) of the CONTROL TEMPLATES from the particle laboratory// into your object containing this script. That's it!// Your controls should be effective immediately. (Some controllers can be// adjusted and tuned, open them and read the USAGE notes to see.)//// One control template can control several particle templates in the// same object. (keep in mind that each prim can only have ONE// particle effect active at a time).//// The 'particle_effect_name' value must be the same in both the control// and particle template to work. You can change that value and have// a controller for one effect, and a different controller for a different// effect in the same object.////======================================== END =============================== Link to comment Share on other sites More sharing options...
Xiija Posted December 16, 2013 Share Posted December 16, 2013 you can try this & mess with max & min speed, rate, radius, and push // Let it snow on Second Life// Particle Script 0.3// Created by Ama Omega// 10-10-2003 -boeh!// Retrieved from from Free SL Scripts on http://www.freeSLscripts.com or www.gendersquare.org/sl// Mask Flags - set to TRUE to enableinteger glow = TRUE; // Make the particles glowinteger bounce = FALSE; // Make particles bounce on Z plan of objectinteger interpColor = TRUE; // Go from start to end colorinteger interpSize = TRUE; // Go from start to end sizeinteger wind = FALSE; // Particles effected by windinteger followSource = FALSE; // Particles follow the sourceinteger followVel = FALSE; // Particles turn to velocity direction// Choose a pattern from the following:// PSYS_SRC_PATTERN_EXPLODE// PSYS_SRC_PATTERN_DROP// PSYS_SRC_PATTERN_ANGLE_CONE_EMPTY// PSYS_SRC_PATTERN_ANGLE_CONE// PSYS_SRC_PATTERN_ANGLEinteger pattern = PSYS_SRC_PATTERN_EXPLODE;// Select a target for particles to go towards// "" for no target, "owner" will follow object owner// and "self" will target this object// or put the key of an object for particles to go tokey target = "";// Particle paramatersfloat age = 100; // Life of each particlefloat maxSpeed = 0.2; // Max speed each particle is spit out atfloat minSpeed = 0.01; // Min speed each particle is spit out atstring texture; // Texture used for particles, default used if blankfloat startAlpha = 1; // Start alpha (transparency) valuefloat endAlpha = 1; // End alpha (transparency) valuevector startColor = <1,1,1>; // Start color of particles <R,G,B>vector endColor = <1,1,1>; // End color of particles <R,G,B> (if interpColor == TRUE)vector startSize = <.1,.1,.1>; // Start size of particlesvector endSize = <.1,.1,.1>; // End size of particles (if interpSize == TRUE)vector push = <0,0,-0.02>; // Force pushed on particles// System paramatersfloat rate = .1; // How fast (rate) to emit particlesfloat radius = .03; // Radius to emit particles for BURST patterninteger count = 5; // How many particles to emit per BURSTfloat outerAngle = 1.54; // Outer angle for all ANGLE patternsfloat innerAngle = 1.55; // Inner angle for all ANGLE patternsvector omega = <0,0,10>; // Rotation of ANGLE patterns around the sourcefloat life = 0; // Life in seconds for the system to make particles// Script variablesinteger flags;updateParticles(){ flags = 0; if (target == "owner") target = llGetOwner(); if (target == "self") target = llGetKey(); if (glow) flags = flags | PSYS_PART_EMISSIVE_MASK; if (bounce) flags = flags | PSYS_PART_BOUNCE_MASK; if (interpColor) flags = flags | PSYS_PART_INTERP_COLOR_MASK; if (interpSize) flags = flags | PSYS_PART_INTERP_SCALE_MASK; if (wind) flags = flags | PSYS_PART_WIND_MASK; if (followSource) flags = flags | PSYS_PART_FOLLOW_SRC_MASK; if (followVel) flags = flags | PSYS_PART_FOLLOW_VELOCITY_MASK; if (target != "") flags = flags | PSYS_PART_TARGET_POS_MASK; llParticleSystem([ PSYS_PART_MAX_AGE,age, PSYS_PART_FLAGS,flags, PSYS_PART_START_COLOR, startColor, PSYS_PART_END_COLOR, endColor, PSYS_PART_START_SCALE,startSize, PSYS_PART_END_SCALE,endSize, PSYS_SRC_PATTERN, pattern, PSYS_SRC_BURST_RATE,rate, PSYS_SRC_ACCEL, push, PSYS_SRC_BURST_PART_COUNT,count, PSYS_SRC_BURST_RADIUS,radius, PSYS_SRC_BURST_SPEED_MIN,minSpeed, PSYS_SRC_BURST_SPEED_MAX,maxSpeed, PSYS_SRC_TARGET_KEY,target, PSYS_SRC_INNERANGLE,innerAngle, PSYS_SRC_OUTERANGLE,outerAngle, PSYS_SRC_OMEGA, omega, PSYS_SRC_MAX_AGE, life, PSYS_SRC_TEXTURE, texture, PSYS_PART_START_ALPHA, startAlpha, PSYS_PART_END_ALPHA, endAlpha ]);}default{ state_entry() { updateParticles(); }} Link to comment Share on other sites More sharing options...
bluelacroix Posted December 16, 2013 Author Share Posted December 16, 2013 Hi Xiija, I will try yours as soon as I can - thank you so much! ~Bleue Link to comment Share on other sites More sharing options...
bluelacroix Posted December 19, 2013 Author Share Posted December 19, 2013 Well, I been sick for 3 days, just getting better now. I was finally able to try it, and wow, that script really did the trick! It started out with too much snow for what I wanted, but most people would prefer that amount. I found the setting to turn down (count, from 5 to 1) and messed with a few other settings too. Anyway it all turned out perfect! :catvery-happy: Thanks so much! ~Bleue Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now