Overview
The Uninstancer allows you to bake particle instances into geometry, animation, and blendshapes that can be modified and updated without messing around with dynamics and expressions.
Table of Contents
Installing
Windows and Linux
- Extract NimbleTools1.2_py.zip to the directory of your choice
- Open NimbleTools.txt in a text editor and change PATH_TO_INSTALL_DIRECTORY to point the NimbleTools directory.
Ex (Windows):
If C:/MyExtraPlugins/NimbleTools contains the extracted icons/, plug-ins/, and scripts/ directories, edit NimbleTools.txt to look like:
+ NimbleTools 1.2 C:/MyExtraPlugins/NimbleTools
Ex (Linux):
If /opt/NimbleTools contains the extracted icons/, plug-ins/, and scripts/ directories, edit NimbleTools.txt to look like:
+ NimbleTools 1.2 /opt/NimbleTools
- Copy NimbleTools.txt into the modules/ directory found either in your your local Maya preferences directory or in the Maya installation directory.
On Windows, for Maya 2008, this is by default:
C:\Documents and Settings\<username>\My Documents\maya\2008\modules
or
C:\Program Files\Autodesk\Maya2008\modules
On Linux, for Maya 2008, this is by default:
~<username>/maya/2008/modules/
or
/usr/autodesk/maya2008/modules/
If the modules/ directory does not exist, create it.
Mac
- Extract NimbleTools_py.zip to the directory of your choice
- Open NimbleTools.txt in a text editor and change PATH_TO_INSTALL_DIRECTORY to point the NimbleTools directory.
Ex:
If /Users/username/Documents/nimbletools contains the extracted icons/, plug-ins/, and scripts/ directories, edit NimbleTools.txt to look like:
+ NimbleTools 1.2 /Users/username/Documents/nimbletools
- Find the Maya executable package and right-click "Show Package Contents". By default the package is located here: /Applications/Maya2008/Maya.app
- Once the contents are shown, create a modules directory in the Contents folder.
- Copy NimbleTools.txt into this modules directory.
Loading
It's a good idea to restart Maya after installing Nimble Tools - this is to ensure that all of the newly added scripts are correctly picked up and registered.
To load Nimble Tools and get moving open the Plug-in Manager found under Settings/Preferences:
Scroll down through the list of plugins until you find an entry for Nimble Tools, check the “loaded” check box to load the plugin:
Optionally you can also check the “auto load” checkbox to have
Nimble Tools automatically loaded whenever Maya launches.
UI
Once loaded you should see a new Nimble menu in the main menu bar. And, if you installed the ‘RMB Scripts’ component, an Uninstance menu when your right-click on a instanced particle system.
Uninstancer Options
Bake Type

The Bake Type can be set to either “Geometry” or “Animation”.
Geometry: A copy of each instanced particle is made for every frame specified. If a range of frames are specified the Uninstancer will create multiple copies of each instance particle.
Animation: A single copy of each instanced particle is made regardless of how many frames are specified. Instead, for each frame, translate, rotate, scale, and visibility keyframes are set. If Particle Instancer Cycles are used (i.e. several objects are instanced to each particle), the different instanced objects will be baked into a blendshape and the blendshape weight will be keyed to match the cycling of the of the Particle Instancer.
NOTE: In order for the blendshapes to work properly, all of the instanced geometry should have its transformations frozen.
Copy as Instance
When enabled each copy of an instanced particle will be made as a DAG Instance (e.g. the “Copy as Instance” option in the Duplicate option box). This can greatly reduce the amount of memory required by an Uninstanced system.
This option is supported when baking as Geometry, as well as baking as Animation when either a given particle's object index does not change, or the Instancer uses "Sequential" object cycling.
Time Range
The Time Range can be set to “Current Frame”, “Timeline”, or “Manual”
Current Frame: Only the current frame is uninstanced. A single copy of each instanced particle will be created, with its translate, rotate, scale, and visibility determined by the current frame of the particle system simulation.
Timeline: The animation timeline will be used to determine the range of frames to uninstance.
Manual: The values set in the Start and End input fields will be used to determine the range of frames to uninstance.
Frame Step
When uninstancing a particle instancer over a range of frames, the Frame Step specifies how often the instanced particles should be baked. A Frame Step of 1 causes the instanced particles to be baked every frame - when Bake Type is set to Geometry this means a new copy is created every frame, when Bake Type is set to Animation a new keyframe is added every frame. A Frame Step of 2 causes the instanced particle to be baked every other frame, etc...
Example 1: Baking Geometry
In this example instanced particles have been emitted from a surface, giving the appearance of objects scattered over terrain.
Note that the visible trees are all particle instances, and can’t be manipulated as regular objects.
To turn the instanced particles into objects that can be manipulated independently of the particle system:
- Select the particle instancer (e.g. "instancer1").
- Open the Uninstancer Options
- Set the Bake Type to Geometry
- Set Copy As Instance as desired
- Set the Time Range to Current Frame
- Click Uninstance
Now each tree is an independently modifiable object, no longer dependent on the particle system or particle instancer.
Example 2: Baking Animation
In this example an animation of a butterfly flapping its wings has been instanced to a particle system using the standard technique of creating a new object for each frame of the animation. A turbulence field is applied to give the sense of butterflies flitting lazily about.
To turn the instanced particles into animated blendshapes that can be manipulated independently of the particle system:
- Select the particle instancer (e.g. "instancer1")
- Open the Uninstancer Options
- Set the Bake Type to Animation
- Set the Frame Range to either “Timeline” or “Manual”
- Set the Frame Step as desired
Each butterfly is now represented by one or more animated blendshapes. The animCurves controlling the switching of blendshape targets, as well as the translation, scale, rotate, and visibility can be modified using standard animation techniques. In this example the Frame Step is set to 1, meaning a keyframe was set for every frame that a particle was alive. If this produces too much animation data, you might try using a larger Frame Step.
Example 3: Baking Geometry Over a Range of Frames
This example is the same as the previous one, but with the maximum number of butterflies set to three to reduce clutter in the example.
Baking geometry over a range of frames can provide help in visualizing the behavior of the particle system over time. To do this:
- Select the particle instancer (e.g. "instancer1")
- Open the Uninstancer Options
- Set the Bake Type to Geometry
- Set the Frame Range to either “Timeline” or “Manual”
- Set the Frame Step as desired
Each butterfly is now represented by a series of copies generated by taking “snapshots” of that butterfly over time. In this example the frame step was set to 20 to keep the snapshots from overlapping.
Credits
Many thanks to
Seth Hall and
ossosso for their invaluable feedback and suggestions.
Thanks to Area user
magido for the Mac installation screenshots, as well as
Mamoru Chiba,
Christopher Loates, and
Chris Mills for their help in getting the Python version out the door.