Emitters and TP Question


I have an emitter as a subobject of a sphere. I then assigned that sphere to the PShape node for my TPs expecting the particles to include both the sphere and the emitter but it did not. So I placed the shere inside a null and assigned the null as the PShape and that did not work either. I’m guessing I’ll have to use TPs instead of a regular emitter? Or is there a way to do what I am describing?


I read in the manual that emitters can’t be used as particles. Does this apply to both the standard particles AND TP?


In TP an Emitter is not an Object. TP can use anything as an emitter, including particles. What you want is spawning. Have a look at my website www.bonkers.de in the TP examples section you will find a Rocket example that uses spawning to create the exhaust for particle rocktes.


Thanks Srek. Can I ask you another question that is related? In this same TP setup I am using a COFFEE node to create and place new spheres based on where my TPs collide with a target object. These new spheres are used as effectors for a proximal channel in the target object.

If I play the animation everything works as it should…the TPs collide with the target, the new spheres are created, and the texture on the target is properly effected by those spheres. However, when I render the animation no spheres are generated when the TPs hit the target and thus nothing happens to the target’s texture. Is there a COFFEE method that I am not calling in my node afer I create a sphere that I should be calling…something for when one is rendering and not actually playing the animation?

I wanted to ask this at the Plugin Cafe forum but for some reason I can’t log in from work.


Creating new objects during animation is a big nono. It can even lead to crashes. You should create all objects and only reposition them during animation.


Interesting. I haven’t had any crashes or wierdness. (Other than it doesn’t work when I render!) Can you dynamically instance an existing object during animation, or is that the same thing as creating a new one? And if so do you have a suggestion as to how I could solve my problem?

I could make the TPs themselves the effector of the proximal channel, but when they collide with the target I use PFragment on them. Therefore I would have to enable the setting in the PFragment node so that the orignal TPs remain in order for them to effect the proximal channel. The problem then becomes that the TPs will be visible and I don’t want them to be.

I don’t like the idea of having a bunch of hidden spheres waiting to be placed since I don’t know exactly how many I will need. That solution doesn’t seem very elegant. However, if it’s my only choice, then so be it!

Thanks for the help, Srek.


in the thiunking particles settings where all the particles groups are is ther setting set to show. because sometimes it resets for me and it doesn’t show the particles?


The Particles won’t be visible if they have no shape. After fragmentation put them in a different group and don’t assign them a shape. Alternatively you can use different particle geometry objects for each group and switch off the visibility for one of them.


Ahh! That sounds very good…nice, clean, elegant. I’m still learning TP so that hadn’t ocurred to me. I’m assuming I can assign a particle group as the effector in my proximal channels? Oh well, I figure it out. I can’t wait to get home so I can try it. I’ll post my results just in case anyone is interested.


Still slowly working on this project of mine and I’ve come to another point where I could use some help. When a particle hits the target I want it to stick to the spot where it hit and stay there relative to the target’s subsequent motion. Do I need to get the poly that the particle intersected with and then use it’s position to set the position of the particle? Or is there some other better way of doing it?

And a sub question…does it matter where a “stick textures” tag exists in the tag chain? I’m trying to get my applied textures to stay but that aren’t.



Create a vector data channel for the particles. On Impact switch the particle into a different group and read out the impact position. The position will be in global coordinates. Now you will need a bit of vector math.
To make this easier you can find some Xpresso presets here:
Store this in the \library\xnode folder of your CINEMA installation and a new X-Pool named Matrix becomes available in the Xpresso Pool.
Read out the global Matrix of the collission object and use the Local Point node from the matrix pool with it and the global collission position. It will translate the global position in a local position relative to the object. Make sure to set the particles velocity to zero. Also you need the “event only” option from PDeflector.
Now that the relative position of the stuck particle is known we only have to make sure that it stays there. For this you need a second PPass with only the stuck particles. Read out the impact position and use the Global Point node to calculate the new global position of the particle and then set it.
Thats it :slight_smile:

As usual a scene says more then thousand words, here it is:
and it looks like this:
Hope this helps


This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.