Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Smoke Rings

Ulrika Zugzwang
Magnanimous in Victory
Join date: 10 Jun 2004
Posts: 6,382
11-23-2004 17:53
At the Burning Life festival, I saw a Linden-made object which would poof out smoke rings vertically. The rings were not solid, rather they were made of a ring of particles traveling in the trajectory of a cone, giving the illusion of a ring.

I'm currently making a fun Christmas pipe for Neualtenburg and would like to integrate this ring into the object.

Does anyone know how to make a smoke ring or whom I might ask for assistance (including Lindens)? I'll post the results in the script forum, if I'm successful in procuring an open-source version.

~Ulrika~
_____________________
Chik-chik-chika-ahh
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
11-23-2004 19:10
Hmmm... probably using a particle script of type ANGLE, set to 360 degrees, with a constant low speed, and a force acting upwards on the particles. :)
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Ulrika Zugzwang
Magnanimous in Victory
Join date: 10 Jun 2004
Posts: 6,382
11-23-2004 19:47
From: Cross Lament
Hmmm... probably using a particle script of type ANGLE, set to 360 degrees, with a constant low speed, and a force acting upwards on the particles. :)
Yes but all eight (or so) particles would emit simultaneously in a cone. Could it be that there were eight prims, each pointing slightly off bore sight that emitted a single particle at once?

I say that because these eight (or so) particles emulated a perfect ring.

Is this truly as easy as you imply in the post above (I have my doubts) or is there something trickier going on?

~Ulrika~
_____________________
Chik-chik-chika-ahh
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
11-23-2004 19:50
I just built it as described above in world and it works fine, Ulrika. :D

Oh, I forgot a step... I set the max age to a very short interval, and kept re-calling the particle system with a timer. :D

Of course, then SL became a total fucktard and kicked me out and absolutely will not let me actually connect to anything.
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Toy LaFollette
I eat paintchips
Join date: 11 Feb 2004
Posts: 2,359
11-23-2004 20:10
couldnt PSYS_SRC_PATTERN_ANGLE_CONE be used as the pattern?
_____________________
"So you see, my loyalty lies with Second Life, not with Linden Lab. Where I perceive the actions of Linden Lab to be in conflict with the best interests of Second Life, I side with Second Life."-Jacek
Cross Lament
Loose-brained Vixen
Join date: 20 Mar 2004
Posts: 1,115
11-23-2004 20:25
Actually, Toy's method would be even easier, I think. :D

This is approximately what I used (it'll take tweaking):

CODE
updateparticles()
{
float rate = 0.1 ; // The delay between bursts of particles, in seconds
float age = 5 ; // How long each particle lives, in seconds
integer count = 20 ; // How many particles get created per burst

llParticleSystem( [
PSYS_SRC_PATTERN, PSYS_SRC_PATTERN_ANGLE,
PSYS_SRC_BURST_PART_COUNT,(integer) count, // defined above
PSYS_SRC_BURST_RATE,(float) rate, // defined above
PSYS_PART_MAX_AGE,(float) age, // defined above
PSYS_SRC_BURST_RADIUS,(float) 0.05, // How far from emitter new particles start,
PSYS_SRC_OUTERANGLE,(float) PI, // Angle defining ANGLE or ANGLE_CONE
PSYS_SRC_BURST_SPEED_MIN,(float) 0.2, // Minimum velocity for new particles
PSYS_SRC_BURST_SPEED_MAX,(float) 0.2, // Maximum velocity for new particles
PSYS_SRC_ACCEL,(vector) < 0, 0, 0.25 >, // Acceleration affecting particles
PSYS_PART_START_SCALE,(vector) < 0.2, 0.2, 0 >, // Start Size, (minimum .04, max 10.0?)
PSYS_PART_END_SCALE,(vector) < 0.4, 0.4, 0 >, // End Size, requires *_INTERP_SCALE_MASK
PSYS_PART_START_COLOR,(vector) < 0.8, 0.8, 0.8 >, // Start Color, (RGB, 0 to 1)
PSYS_PART_START_ALPHA,(float) 1.0, // StartAlpha (0 to 1),
PSYS_PART_END_ALPHA,(float) 0.0, // EndAlpha (0 to 1)
PSYS_SRC_MAX_AGE,(float) 0.2, // Maximum life of emitter ( 0 = forever )
PSYS_PART_FLAGS,
PSYS_PART_INTERP_SCALE_MASK | // Particles change size using *_END_SCALE
0
] );
}

default
{
state_entry()
{
llSetTimerEvent( 1 ) ;
}

timer()
{
updateparticles() ;
}
}
_____________________
- Making everyone's day just a little more surreal -

Teeple Linden: "OK, where did the tentacled thing go while I was playing with my face?"
Upshaw Underhill
Techno-Hobbit
Join date: 13 Mar 2003
Posts: 293
11-25-2004 16:02
I did one that looked ok IMHO, I just used a very slow inviso-bullet and a loop that increased my burst radius. This may not scale down well though if you're looking for a attachment version, mine was for my pet dragon so it was fairly large scale :)

L8r,
UU