Particle Edit Tools

Particle Edit Tools

There is no easy way to do instancing in Cheetah, like you want to duplicate an object and position it without storing new geometry but just a link to the original.

The particle system does that but without control over individual instances.
We could make a guide mesh from vertices but that covers only position, not rotation.

But when you double-click on a particle system it turns into a base particle object that bakes in also the adjustments from the particle tag.
I assume this object stores each particle with an index number, position, rotation and scale data.

It should not be too difficult to make these accessible to the user by particle tools:

- a "new instance" tool that adds one more particle to the list
- a "delete instance" tool
- a "select instance" tool (that would be the most difficult if realized by clicking into the viewport)
- an "edit instance" tool that provides position, rotation and scale parameters

Or this could be realized by parameter boxes in the base particle object's properties, with selection via index number.
 
Last edited:
We just need proper instancing.

It would be nice if you could edit a particle base without turning off particles or moving it out of the particle system, but I imagine implementing that is probably the hard part of implementing instances properly.
 
The Cheetah particle system is basically an instancing system with randomization features but no manual access.

That's why I'm suggesting to start with the "base particle object" (so named in the help menu, could be renamed to "particle instance object") because the functionality is already there.
The physics system is ready to access the position and rotation parameters of a given particle system once it is turned into this "base particle object".

All we need is an editor within the object properties that allows to choose a particle instance by index number and provides the standard 3x3 parameter boxes plus "delete instance" and "new instance" buttons.
That's so easy it should be scriptable.

Or instead of placing the editor into the base particle object properties it could be done via an instance tag.

I imagine implementing that is probably the hard part of implementing instances properly.

The only hard part of instancing would be click-and-drag functionality in the viewport because there is currently no way to identify a single instance.
 
Last edited:
We just need proper instancing.

That could be implemented like this:

The base particle object is renamed as Particle Instance Object and becomes a new item in the particle menu besides Particle Array, Particle Mesh etc.

It comes with a single instance at the origin, parametric editor (and viewport click-and-drag functionality which would require more extensive coding) and buttons to create new instances or delete old ones.

Also each other particle system can be made an instance object just by double click.

So you call the PIO and drop an object onto it, drag where wanted, click "new instance" button (or use keyboard shortcut), drag to place (rotate, scale), repeat.

There needs to be an index counter to choose an existing instance in order to reposition or else.
 
Last edited:
I might be missing the point, but when I want to position multiple "instances" of an object using a Particle Mesh, I select Type: Polygon and Polygon Selection: 1 (rather than all). On my "guide" mesh, I then add or remove polygons to Selection #1 depending on where I want the "instances" to appear. If I want another star in the upper right corner, I just select the guide mesh, make it visible, choose Polygon Selection: 1, and shift-click a poly in the upper right corner. Then I switch back to Polygon Selection: 0 and hide the guide mesh again.

For random variations in where the "instances" appear, I assign the instance object a Particle tag and then make changes in the position, rotation, and scale variations. So far it's worked very well for me, but I guess it all depends on what you're trying to make! My goal is to make props for Poser, so I use Tools > Particle > Particle -> Polygon to spawn a single object from my Particle mesh (leaving it intact in case I want to make further adjustments).
 
Thanks @perpetualrevision and @Joel.

I'm aware of the possible workarounds and use them myself, but I was wishing for a solution more easily to handle.
But nowadays I'm not rendering much any more and if it is via Blender 2.81 and LuxCoreRender on my PC which requires setting up particles over there because there is no way to export them as instances from Cheetah.
 
Back
Top