• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.

Ripples

This bundle is marked as useful / simple. Simplicity is bliss, low effort and/or may contain minor bugs.
Ripples from drops, looks good on water during rain.

The model is a particle emitter.
Width and Length are 64, the dimensions are just right for the ClickHelper (pink-black cube), so that it is convenient to adjust the particle scatter area by changing the scale.
It has 100 Stand animations with an EmissionRate set from 0 to 100, made to adjust the particle emission speed by changing the animation.


In the video, doodads were placed at 5x their size. All doodads of this type have the 'Stand - 100' animation set (this doesn’t trigger random 'Stand' animations but only plays the specified one):
  • Animation - Play the "Stand - 100" animation for all doodads of type <Doodad Type> within (Playable map area)
Keywords:
ripples drops rain raindrops water waterdrops waves
Contents

Ripples (Model)

Reviews
ILH
ILH
I couldn't get to make it play only the specific animation, even with the test map. But it is still very useful effect nonetheless. Works in-game. Approved!
Level 30
Joined
Jun 4, 2023
Messages
419
@ILH Try this, i have no Reforged.
  • Animation - Play the "a100" animation for all doodads of type <Doodad Type> within (Playable map area)
Why do you need to use the trigger?
I can't help but think there's another way of doing this without having 100 different animation sequences

ED:

Okay I see why you'd use trigger then to like.. set the intensity.
Maybe just 10 different types would be enough though lol.

I think as long as the sequence is set to loop then it should continue until turned off... When I gave my unit a spell sequence that wasn't set to non-loop, it would keep playing even after the spell was cast.

Another option might be using transformations, so the different intensities are label alternate, or ranks like with the Town Hall.
You'd have to do a lot of annoying stuff like make lots of dummy spells and units though.
 
Last edited:
Level 17
Joined
Jul 7, 2019
Messages
101
Why do you need to use the trigger?
I can't help but think there's another way of doing this without having 100 different animation sequences
Well, for 1.26a this is a working solution. Initially the idea was to be able to dynamically change the speed of particle appearance - the only working option is changing animations (or just making different models).
I don't know about Reforged, maybe there are other ways...
 
Level 17
Joined
Jul 7, 2019
Messages
101
@ILH You'd probably have to play the animation by index instead of by name.

For Reforged, special effect animation speed can be changed so only a few variations (if any) would be needed. That depends on how it'd look when sped up/slowed down through.
From my tests, changing animation speed doesn't affect EmissionRate. Have you tested this in Reforged?
 
Level 30
Joined
Jun 4, 2023
Messages
419
That's Refunded(tm) for you...

At least I've established:

  • You can choose the animation by renaming them (I called them bob, jeff, fred) and then choose with trigger.
  • the texture cycles much faster in the game. In the preview it looks like slow ripple outward, in game its just a quick wobble.
  • even if you make Emission rate 1, animation sequence 4 seconds long, it emits a bunch of them at once.
    • then sometimes it just doesn't emit for ages and I think it turned off?
    • sometimes one emitter would be a constant stream, another one would do none for 4+ seconds
I'm gonna try one last thing then going to bed.

edit:
OKAY I've established another thing, when I deleted all the other sequences except bob, it would behave better.
So it just had Stand 0 and Bob, and the emitter only enabled for bob.
My guess is it was still randomly jumping from bob, to jeff, and frede etc, so getting random spurts of ripples. (they still cycle really fast but thats prob just reforged being shitty).
 
Last edited:
Level 17
Joined
Jul 7, 2019
Messages
101
If you label the sequences:
Upgrade First
Upgrade Second
Upgrade Third

it will stick.
emission rate 1/s doesn't seem to be visible though (I did that for Upgrade First).
Second and Third worked fine, and could turn off by going back to Stand 0.
This gave me an idea.
We can use reserved animation tags to control the emission rate.

Such as:
One Two Three Four Five
First Second Third Fourth Fifth


And using their combinations:
Stand One First
Stand One Second
...
Stand Five Fifth


Then we can specify 5*5=25 Stand animation variations.
If the maximum emission rate is 100, then each such combination will give an increase of 100/25=4:
Stand One First (4 emission rate)
Stand One Second (8 emission rate)
...
Stand Five Fifth
(100 emission rate)

And the animation indices themselves (1,2,3...) can be used to randomize the appearance of particles, as it is done here.
Because now if we put a lot of models next to each other with a very low emission rate, we will see that particles appear at the same time.
 
Last edited:
Level 30
Joined
Jun 4, 2023
Messages
419
The biggest issue is that the emission rate isn't accurate in Reforged. Or it looks nothing like the previews.

Think about emission rate of 1 per second. I think it used to emit 1 thing regularly each second. Then for 2 per second, it would emit @ 0.0, emit another @ 0.5 then loop @ 1.0/0.0
For 3 per second it would be 1 @ 0.0 , 1 @ 0.333, 1 @ 0.666 and so on etc. etc.

But in reforged is seems to randomly spurt them out during the period. The emission isn't regular. for 10 per second, you might get 5 @ 0.4 then 4 @ 0.6, 1 @ 1.0/0.0.

Basically once you start emitting more than ~5 per second (I can't remember the exact :p) it starts too look very samey.
 
Level 17
Joined
Jul 7, 2019
Messages
101
Hm, i checked other thing.
The SetDoodadAnimationRectBJ function
  • Animation - Play the "Stand - 100" animation for all doodads of type <Doodad Type> within (Playable map area)
has this body (1.26)
JASS:
function SetDoodadAnimationRectBJ takes string animName, integer doodadID, rect r returns nothing
    call SetDoodadAnimationRect(r, doodadID, animName, false)
endfunction
and SetDoodadAnimationRect native has these params
JASS:
native SetDoodadAnimationRect takes rect r, integer doodadID, string animName, boolean animRandom returns nothing
Looks like animRandom=false prevents randomizing anims(?). Maybe in Reforged its defaults true?
 
Top