24
$\begingroup$

Is there a way to animate whether or not a particle emitter is emitting particles at a given point in time? I'm using the particle system to animate bullets, so basically I'm trying to find a way to say: at frame 150 the gun fires a burst until frame 170, at frame 240 it fires a burst until frame 265, and so on.

I've tried key framing the particle render setting between "object" and "none", but the problem with that is that the hidden particles are still there, so when the render setting switches to "object", the particles that were initially hidden suddenly appear.

I've also thought of putting a plane (not rendered) with a collision modifier in front of the emitter and then moving it when I want the emitter to start emitting particles.

Is there a better way?

$\endgroup$
4
  • 3
    $\begingroup$ I know you can do this by setting up multiple particle systems, each with their own start/end times, but that's a really clunky way to handle this. $\endgroup$
    – Gwen
    May 27, 2013 at 2:19
  • $\begingroup$ I was going to suggest the same thing as Gwenn. Multiple particle systems would give you a lot of control over what you are trying to achieve here. $\endgroup$ May 27, 2013 at 3:30
  • $\begingroup$ LOL Is this a joke? You cannot animate the Particles Number in Emission, that would provide an off-going? Instead have to make different Particle Systems with different Frame Start Ends. Thats ridicilous lol $\endgroup$
    – Gordon1fm
    Mar 14, 2023 at 21:34
  • $\begingroup$ Set a keyframe on the Render As dropdown box. Change the dropdown to None. $\endgroup$
    – ChrisJL
    Apr 29 at 5:10

6 Answers 6

18
$\begingroup$

The simplest way to handle this is to add a keyframe for the particle lifetime. To make the particles stop emitting, set the lifetime to zero.

If you have very fast-moving particles (such as bullets), you will also need to keyframe the initial velocity down to zero.

$\endgroup$
12
  • $\begingroup$ Thanks... That would definitely work - the problem is that it won't let me set a lifetime of less than 1. Any way around that? $\endgroup$ May 27, 2013 at 2:39
  • $\begingroup$ Lifetime 1 should be 1 frame; if you want to keep it from emitting at a certain time, keyframe the emission rate to 0. $\endgroup$ May 27, 2013 at 3:04
  • 1
    $\begingroup$ @AlexSchimp With a lifetime of 1, the particles shouldn't appear in the render (unless your particles are type "halo"), even though they appear in the 3D view. $\endgroup$
    – Gwen
    May 27, 2013 at 3:11
  • $\begingroup$ @KyleWilley I don't think there is a "rate" setting, although there is a "number" which can be set to zero. Unfortunately, it has the same problem as the OP's original solution in that it makes all of the previously emitted particles disappear when it is keyframed. $\endgroup$
    – Gwen
    May 27, 2013 at 3:13
  • 1
    $\begingroup$ @Gwenn If I keyframe the initial velocity along with the lifetime, it works great. I just turn the velocity down when the lifetime is set to 1. $\endgroup$ May 27, 2013 at 13:17
5
$\begingroup$

According to the comments here, it seems that keyframing (hovering over the value with mouse cursor and pressing I) the velocity of the particles, (Velocity panel, Emitter Geometry: Normal) is the best way to go.

enter image description here

You can also automate the curve with F-Curve Cycles modifier (Shift+E):

enter image description here

If it annoys you that the 0-velocity particles keep popping up, you can model a structure around the emitter:

enter image description here

$\endgroup$
1
$\begingroup$

You can keyframe the visibility of your emitting object in the outliner window. Just select the required spot on the timeline, find the name of your emmitter in the top right outliner window, then hover over the eyeball symbol next to it and press i on your keyboard. Visibilty can be toggled on or off as required and keyframed accordingly.

$\endgroup$
1
  • 3
    $\begingroup$ Please expand your answer, giving steps on how a user can do this. $\endgroup$ Feb 5, 2017 at 13:54
1
$\begingroup$

I just did this by having a kill particles collision cube jump in and out of the particle path, close to the particle generation point. A little clunky, but seems to work.

$\endgroup$
0
$\begingroup$

The best way I've found is to duplicate the particle system, make single user copy, then adjust each frame start/end to desired lengthsParticles System On/Off

$\endgroup$
1
  • $\begingroup$ It's a little lame that this answer is downvoted, because it's actually a practical answer that works just as OP asked. $\endgroup$
    – Marty
    Apr 12, 2023 at 14:46
0
$\begingroup$

I found the solution for me. Just animate mesh far far away in one frame and then return.

enter image description here

enter image description here

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .