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?

  • 3
    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. – Gwen May 27 '13 at 2:19
  • 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. – A Wild RolandiXor May 27 '13 at 3:30
up vote 12 down vote accepted

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.

  • 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? – Alex Schimp May 27 '13 at 2:39
  • Lifetime 1 should be 1 frame; if you want to keep it from emitting at a certain time, keyframe the emission rate to 0. – Kyle Willey May 27 '13 at 3:04
  • 1
    @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. – Gwen May 27 '13 at 3:11
  • @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. – Gwen May 27 '13 at 3:13
  • 1
    @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. – Alex Schimp May 27 '13 at 13:17

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

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.

  • 3
    Please expand your answer, giving steps on how a user can do this. – Ray Mairlot Feb 5 '17 at 13:54

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.