Jump to content

CIrcling particle FX?


DulceDiva
 Share

You are about to reply to a thread that has been inactive for 502 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

Hello. I am using the Firestorm particle editor, trying to make an 'aura' like particle script. I can't get it to go in a circle motion, it will go sideways or one way but that's it.

Is there a specific script that generates it, or is it all about choosing the right pattern/values in order to define its motion? 🤔

Link to comment
Share on other sites

I'm not familiar with Firestorm's editor, but when it comes to particles, it's all about choosing the right parameters for the particle function - as that is ultimately what produces the effect. See the wiki page for all the parameters:  https://wiki.secondlife.com/wiki/LlParticleSystem

For in-world demos and visual guides, check out the Particle Laboratory: http://maps.secondlife.com/secondlife/Teal/194/54/301. The "Double Helix" or "Steam" example templates there may be helpful references.

Can you be more descriptive in what you intend this aura effect to look like?

Link to comment
Share on other sites

If you want to create a halo, you'll have to spend a bit of time experimenting.  You'll want particles to be emitted in an ANGLE_CONE pattern. The particles should be emitted at a distance from the source rather than right at the source, so look at the PSYS_SRC_BURST_RADIUS parameter.  Then, you'll want the emitted particles to have a very low velocity and a fairly short lifetime.  That way, they will not travel very far from where they are emitted, and they will persist as more particles are emitted behind them.  That should create a torus shape, I think. It will take quite a bit of experimenting.  You'll want to play with the EMISSIVE mask to make the particles glow, among other things.

Link to comment
Share on other sites

This quickie (using the Firestorm particle editor) creates a ring around the generating object. The essential items are the cone pattern, the begin and end angles, the burst radius and the (lack of) speed. Is this the sort of thing you're after?

default
{
    state_entry()
    {
        llParticleSystem(
        [
            PSYS_SRC_PATTERN,PSYS_SRC_PATTERN_ANGLE_CONE,
            PSYS_SRC_BURST_RADIUS,0.5,
            PSYS_SRC_ANGLE_BEGIN,1.5,
            PSYS_SRC_ANGLE_END,1.5,
            PSYS_SRC_TARGET_KEY,llGetKey(),
            PSYS_PART_START_COLOR,<1.000000,1.000000,1.000000>,
            PSYS_PART_END_COLOR,<1.000000,1.000000,1.000000>,
            PSYS_PART_START_ALPHA,1,
            PSYS_PART_END_ALPHA,0,
            PSYS_PART_START_GLOW,0,
            PSYS_PART_END_GLOW,0,
            PSYS_PART_BLEND_FUNC_SOURCE,PSYS_PART_BF_SOURCE_ALPHA,
            PSYS_PART_BLEND_FUNC_DEST,PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA,
            PSYS_PART_START_SCALE,<0.500000,0.500000,0.000000>,
            PSYS_PART_END_SCALE,<0.500000,0.500000,0.000000>,
            PSYS_SRC_TEXTURE,"",
            PSYS_SRC_MAX_AGE,0,
            PSYS_PART_MAX_AGE,2,
            PSYS_SRC_BURST_RATE,0.3,
            PSYS_SRC_BURST_PART_COUNT,10,
            PSYS_SRC_ACCEL,<0.000000,0.000000,0.000000>,
            PSYS_SRC_OMEGA,<0.000000,0.000000,0.000000>,
            PSYS_SRC_BURST_SPEED_MIN,0,
            PSYS_SRC_BURST_SPEED_MAX,0,
            PSYS_PART_FLAGS,
                0 |
                PSYS_PART_EMISSIVE_MASK |
                PSYS_PART_INTERP_COLOR_MASK
        ]);
    }
}


 

  • Like 1
Link to comment
Share on other sites

Aha!  What you're describing is quite different. You want to make a static particle that orbits your object. That's a two-part job.  First, a static particle is simply one that is created at a specific distance from the emitter (using the PSYS_SRC_BURST_RADIUS parameter) and has no velocity (so PSYS_SRC_BURST_SPEED_MIN and PSYS_SRC_BURST_SPEED_MAX are both zero and you have no acceleration). Then, for part two, you need to actually flip the emitter on its side (so the Z-axis is horizontal) and then spin it around the new vertical axis. That way, the emitter is creating its particles in the horizontal plane.  If you play with the number of particles and their lifetimes for a while and balance them against the speed that you are spinning the emitter, you should be able to get that static particle to keep regenerating itself quickly and looking like a single object that's orbiting.

  • Like 4
Link to comment
Share on other sites

1 hour ago, DulceDiva said:

a heart particle that circles around it. Smooth,gentle motion

A single particle? Orbiting around the rose like the Moon orbits around Earth?

Working with individual particles is tricky because once generated, a particle will generally not be affected by new influences beyond what was set in the emitter. So it's not really possible to make a particle follow a continuous circling path around something. When one wants fine control over the movement of individual particles, the typical approach is to spawn one with a longer lifespan, have them follow the (invisible) emitter, and then move the emitter itself around.

Having said that, I can think of a way that may approximate what you're looking for (assuming I understood your intent). The basic idea is that we configure the emitter to generate a single short-lived particle using the angle pattern. We use specific angle begin/end values to make the particles spawn at a single point away from the center of the emitter prim. Then, we specify an omega to spin the virtual emitter. This causes each new particle to generate slightly "ahead" of the last, and since the emitter is just rotating in place, it creates the effect of the particles slowly orbiting around the emitter. Lastly, we have to physically orient the emitter prim 90 degrees on the X axis. This is to make the particles generate at equator level relative to the emitter. Otherwise they would just appear directly above the emitter and not appear to orbit.

llParticleSystem([
    PSYS_SRC_TEXTURE, "",
    PSYS_PART_START_SCALE, <0.1,0.1,FALSE>,     PSYS_PART_END_SCALE, <0.1,0.1, FALSE>, 
    PSYS_PART_START_COLOR, <1.0,1.0,1.0>,       PSYS_PART_END_COLOR, <0.431,0.823,1.0>,
    PSYS_PART_START_GLOW, 0.0,                  PSYS_PART_END_GLOW, 0.0,
    PSYS_PART_START_ALPHA, 1.0,                 PSYS_PART_END_ALPHA, 1.0, 
    //=======Blending Patameters:
    //PSYS_PART_BLEND_FUNC_SOURCE,    0,
    //PSYS_PART_BLEND_FUNC_DEST,      0,
    //=======Production Parameters:
    PSYS_SRC_BURST_PART_COUNT, 1,               PSYS_SRC_BURST_RATE, 0.05,  
    PSYS_PART_MAX_AGE, 0.15,                    PSYS_SRC_MAX_AGE, 0.0,  
    //=======Placement Parameters:
    PSYS_SRC_PATTERN, 4, // 1=DROP, 2=EXPLODE, 4=ANGLE, 8=ANGLE_CONE,
    //=======Placement Parameters (for any non-DROP pattern):
    PSYS_SRC_BURST_SPEED_MIN, 0.0,              PSYS_SRC_BURST_SPEED_MAX, 0.0, 
    PSYS_SRC_BURST_RADIUS, 0.5,
    //=======Placement Parameters (only for ANGLE & CONE patterns):
    PSYS_SRC_ANGLE_BEGIN, 0,                    PSYS_SRC_ANGLE_END, 0,  
    PSYS_SRC_OMEGA, <0,0,0.5>,
    //=======After-Effect and Influence Parameters:  
    //PSYS_SRC_TARGET_KEY,      llGetLinkKey(llGetLinkNumber() + 1),
    PSYS_SRC_ACCEL, <0.0,0.0,0.0>,
    PSYS_PART_FLAGS, 0
        |PSYS_PART_INTERP_COLOR_MASK
        |PSYS_PART_INTERP_SCALE_MASK
        |PSYS_PART_EMISSIVE_MASK
]);

The faster the burst rate, the smoother the motion will appear - because we're faking that movement by spawning new particle in what is effectively a circular path. And be sure to rotate the emitter prim (which does not need to be the rose mesh itself) 90 degrees on the X axis, else the effect won't work.

Edit:  Ah, Rolig beat me to the punch.

Edited by Fenix Eldritch
  • Like 1
Link to comment
Share on other sites

@Rolig Loon @Fenix Eldritch Thank you both. Yess,you got it right! I have attached a visual of what I was describing :) I still cannot get it to work on my own (as in I cannot seem to get the values right manually in the Firestorm editor).Would you both mind if I use the script you provided me with in my creation? I will credit you in the description :) 

aura.gif

Link to comment
Share on other sites

On 12/18/2022 at 11:48 PM, DulceDiva said:

@Rolig Loon @Fenix Eldritch Thank you both. Yess,you got it right! I have attached a visual of what I was describing :) I still cannot get it to work on my own (as in I cannot seem to get the values right manually in the Firestorm editor).Would you both mind if I use the script you provided me with in my creation? I will credit you in the description :) 

aura.gif

I'm like 99% sure that you cannot create a particle that moves in a circular motion like this with llParticleSystem. You can cause particles to be generated in a ring, but not cause them to move along that ring. Technically it could be possible, we can even see an viewer-side effect like this when an object speaks. (You know, those white particles that rise in a spiral motion.) But that effect can't be replicated by scripts because we don't have the right parameters available.

As a workaround, you could make the emitter itself spin with llTargetOmega, and then work on the particle system. This method just has some caveats that complicate a general build.

Link to comment
Share on other sites

4 hours ago, Wulfie Reanimator said:

some caveats that complicate a general build

PSYS_PART_FOLLOW_SRC_MASK disables generating particles at any non-zero distance from the emitter, and only makes particles "source-follow" the absolute position of the emitter, not its local orientation.

So, the only way to make a particle "literally move" in a circle, as opposed to generating new particles for a "marquee lights" effect (spent too long searching for what those are called.. .) is to have the emitter prim offset from a llTargetOmega rotating root.

  • Thanks 1
Link to comment
Share on other sites

We're all describing versions of the same thing.  You have to spin the emitter itself. You can try doing it with the Omega parameter in the particle function, but i think you'll find that is best to do it with llTargetOmega or some other method that has nothing to do with particles. 

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 502 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...