Home / Xpresso / Xpresso Anonymous / Emitter



There are a number of different ways to create emitters with Thinking Particles. One important thing first, a Thinking Particles emitter is never an object. Sounds odd ok, especialy when you see the TP presets that come with CINEMA. The simple reason for this is that objects can be used to define a number of parameters of the emitter (i.e. position, alignment, velocity, ...) which is often realy helpfull, but you don't depend on it.
Let's prove this by bulding an emitter that does not rely on an object for position and alignment.

Does not look to difficult, does it?
You can see from this that you can use practicaly everything to create an emitter from it. scene

Let's try for something more interesting.
How about an emitter that creates particles on an imaginary line between two points?
To calculate the positions we calculate the vector between the points by subtracting the positon of one point from the other. PBorn will give us not only the particles it creates but also their numbers. If 10 particles are created in one frame (Shot setting makes it easy to set this) the Birth Num output port will give us values between 0 and 9 for the created particles. Since we know the number of particles that will be created it's easy to calculate the progress of emission by dividing the Birth Num value by the number of particles per frame. This gives us a value between 0 and 1 for each particle in a frame.
Now we will use this factor and the difference vector we calculated previously to calculate a position for each particle.
By multiplying the difference vector with our factor we get a vector that is only partly the length of the original vector but points in the same direction.
Now we are adding this vector to our start point and we get an absolute position for our particles that is assigned to them. scene movie

Determining the position, alignment etc for a particle is important but there are other factors too. One of the most important is timing. Most of the TP generators give us three options Count, Rate and Shot.

There are two ways to determine when an emitter should produce particles.

The first is done in exactly the same way as any other animation in CINEMA 4D by creating appropriate keyframes for all the needed parameters, in the most simple case the animation of the enable property of the Xpresso tag or the On input port of the generator node.
When using events you will usualy controll emission by triggering the On input port of the generator node. This is a simple boolean value and can be the result of a wide variety of calculations. A common way would be to use compare nodes to make emitter activation dependent on i.e the distance to an object. scene
Note that in this simple example the particles are not emittet in a realy usefull way, they are just created with no velocity, shape etc.
Well, what did this all give us? We can create particles at any position we want, even depending on other particles positions and other properties (which is basicaly spawning) and under every condition we can define. Does not sound much, but it's flexible and powerfull as hell.

Back to Xpresso Anonymous