6
$\begingroup$

How to emit particles evenly from verts / faces within single particle setting?

For example, for the default cube, I want to emit 80 particles in 10 frames, in other words, each vertex should emit 1 particle together per frame. (Note that this is a simple case to show what I'm talking about, not a specific one)

$\endgroup$
  • $\begingroup$ If you have a method that is preferable to you, do you believe you should share it? Compare and contrast it? Working Blender file/script/nodes is always nice. Readers want to see the alternative. This is in reference to your comments on my proposed answer below. $\endgroup$ – atomicbezierslinger Feb 2 '16 at 7:02
  • $\begingroup$ Your visual sample would be nice to see. Blender is visual. $\endgroup$ – atomicbezierslinger Feb 2 '16 at 7:15
  • 1
    $\begingroup$ 1. I shouldn't have asked this question if I was satisfied with my current solution. Right? :) 2. I'm sure you got the point here, just... either your way or mine creates extra objects in order to do so, and it got some limits obviously. Now I may guess there wouldn't be any better solution, but still keep some hope on that. $\endgroup$ – Leon Cheung Feb 2 '16 at 8:17
  • $\begingroup$ Interestingly enough there was a question here at BSE recently where the author seemed to have an answer immediately after posing the question. I think many people could find that question if it actually merited the time. So I did not really understand how that question fit in the "I truly need a answer" model. It was more of "let me ask and answer my own question?. I thought it was humorous. So this is a light response to your question 1. You have the freedom to choose. $\endgroup$ – atomicbezierslinger Feb 2 '16 at 15:37
  • $\begingroup$ Your question 2. No I did not get any [point] prior to you writing the comment. So now I know your working state because you expressed it in a comment. $\endgroup$ – atomicbezierslinger Feb 2 '16 at 15:40
4
$\begingroup$

Blender Internal Render with Particle Info Node for Material Nodes

enter image description here

  • Image below. 16 Layers of Particles Systems modified with a Python Script. Vertices of a Cube.

enter image description here

  • Image Below. An image meant to be more readable with the particles placed in a plane. Pulsed and Batch alternating. Spiral motion is a typical consequence of the Particle System and very little effort of the Python Script.

enter image description here

  • Image Below. Particles with Turbulence. One Force example.

enter image description here

  • Image Below.

enter image description here

Technique

enter image description here

In the image above are 4 particle systems. You may use 10. Each Emitter particle system is copied via the Keystroke Shift+D. User preferences allows particle system to be duplicated with fresh unique copies. See user preferences Editing/Duplicate Data and enable Particle System Duplication. Of course an object can have multiple particles systems. The script assumes 1 per object for no particularly sound reason.

  • If you can copy a mesh easily you can copy a mesh with a particle system easily.

  • The N particles system has the [Start] and [End Value] set to different numeric value M. M >= 0 and M < N in the simplest case. See Script below.

  • Copying Emitters and Manual modification of the values takes (log N + N ) steps.

  • Example is Verts emission. Faces emission is an easy switch.

  • Clearly if you wanted ((vertex or face) * large number) particles then a script could modify the particle system [Start] and [End] values. (frame_start, frame_end)

  • The Emitters are in a group for selection convenience.

Script

  • Use at your own risk. Standard Disclaimer. Please test and improve.

  • Select the group of Particle System emitters before running the script.

...

import bpy 
import datetime
import math

def delay_particles():
    print("Delay Particles")
    print(datetime.datetime.today())
    print(datetime.datetime.now())

    so = bpy.context.selected_objects
    limit = (len(so))
    n = 0
    for x in range(0,limit):  
        so[x].particle_systems[0].settings.frame_start = n
        so[x].particle_systems[0].settings.frame_end = n
        n = n + 1

delay_particles()
$\endgroup$
  • $\begingroup$ Thanks but what if the mesh contains thousands of verts? $\endgroup$ – Leon Cheung Feb 1 '16 at 7:07
  • $\begingroup$ The script should help you in that regard. Blender is powerful. I have not tested thousands of verts for your question. That requirement should be in you original question. Please change your original question. $\endgroup$ – atomicbezierslinger Feb 1 '16 at 7:18
  • $\begingroup$ You wrote verts above. Is that your intention? Did you intend to write particles? $\endgroup$ – atomicbezierslinger Feb 1 '16 at 7:28
  • $\begingroup$ Tested, it seems to set start and end to 0, then all particles emit in one frame, not batches. $\endgroup$ – Leon Cheung Feb 1 '16 at 7:38
  • $\begingroup$ I actually mean that how to emit particles from each elements in batches, instead of one after one or emit all in one frame. $\endgroup$ – Leon Cheung Feb 1 '16 at 8:06
0
$\begingroup$

Just select emit from verts under particle settings.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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