updated zip file to contain the preset files.
These should go into $home/.nuke to make the preset buttons work
This is a little pet project of mine which I meant to take a bit further before posting but I might not have much time to work on it now, so I thought I'd post what I have in case it's already useful for people.
Particles.gizmo is actually a group node that is using external tcl scripts to drive it's internal tree.
You will need ObjVPos.tcl, SaveParticlePresets.tcl and LoadParticlePresets.tcl installed in Nuke's plugin location (these are all included in the zip file).
some features are:
- different types of particles (spheres, cubes, cylinders, sprites, obj)
- 'birth' and 'death' control (shrink, grow fade in and out)
- inherit parent velocity
- saving/loading presets
- camera/axis facing sprites
Trail following animated emitter axis
Particles is a 3D object so you will need to attach a Render node...
...to get a 2D image:
To get cards that are facing another object (i.e. camera or axis), set type to "sprites" and plug the recpective object into the "look at" pipe:
Keep in mind to check out the tool tips for each knob to get immediate help!
type - chose between spheres, cubes, cylinders, sprites and objs
resolution - change the resolution of spheres and cylinders
particle geo - load an obj and set the type knob to "obj" to use custom geo for the particle shape
start emission - the first frame a particle is emitted
stop emisison - the first frame at which no particles are emitted anymore.
emission rate - how many particles are emitted per frame
life span - how long a particle lives before it disappears
If any of the knobs on the Global tab are changed you will need to hit the generate particles button to get correct results.
size - basic size of the particles
generate particles - regenerate the groups internal nodes. Do this every tim eyou change knobs in the Global tab
size variation - Randomizes the particle size for each particle. This is a percentage so a value of 1 should randomly scale by +- 100% of what is set as particle size.
seed - Changes the appearance of the size randomness
grow for - Number of frames that a particle grows for after it is born before it reaches the set particle size
shrink for - Number of frames that a particle shrinks for before it dies
fade in for - Number of frames that a particle fades in for after it is born
fade out for - Number of frames that a particle fades out for before it dies
speed - particles' speed
speed variation - Randomizes the particle speed for each particle. This is a percentage so a value of 1 should randomly affect each particle by +- 100% of what is set as particle speed.
seed - Changes the distribution of the speed randomness
inherit velocity - Picks up the emitter's animation. 0 will make the particles independant of the emitter right after they are born. 1 will make the particles stick to the emitters motion even all the time.
orientation - Initial orientation of the particles.
rotation - Speed at which each particle rotates over one frame (this is in degrees/frame)
rotation variation - Randomizes the rotation for each particle. This is a percentage so a value of 1 should randomly scale the set rotational speed by +- 100%
seed - Changes the distributionof the rotational speed randomness
spread xz - Randomizes the partciles' direction effectively spreading out the particle stream over x and z plane. This is in degrees, a value of 180 will spread out 180 degrees into both directions
spread yz - Randomizes the partciles' direction effectively spreading out the particle stream over y and z plane. This is in degrees, a value of 180 will spread out 180 degrees into both directions
seed - Changes the appearance of the spread randomness
gravity - uses an exponential curve to simulate gravity
wind - uses an exponential curve to fake wind. same as gravity but with control over the three axes. Kinda cheap but I have no idea of the proper math
drag - This doesn't work yet but this is what it should do: Forces the particles to slow down over time
drag falloff - This doesn't work yet but this is what it should do: Forces the particles to slow down over time
preset name - enter a new name under which you want to save the current settings
save preset - this will write the current settings to disk with the specified name. Right now this is hard coded to $HOME/.nuke/
presets - once a preset is saved to disk you can add a new button here via the "Manage User Knobs" menu. See tool tip for more help on this.