Animation Nodes and Particles - Into the Void

This is a WIP Development thread for improvements to Animation Nodes (AN) Particle options. Currently I’m working on extending the available options we have for modifying, editing and using particle systems.

Just a few disclaimers before we get started:

  1. Particle Settings cannot be animated. Animation nodes does not fix this. Blender 2.8 may feature animate-able particle settings such as “count”, “start frame”, velocity, etc.

  2. The nodes featured are Works in Progress

  3. I’d like to avoid having this thread turn into a flame war. If there is a feature from another particle system or DCC that you’d like to see implemented, feel free to mention it. But please let’s avoid comments like “Particular is better than Blender, blender particles are broken and suck”, because while some of these comments are facts of life, more often than not they’re just opinions.

  4. The goal is to work with what we currently have. For proposals regarding Blender 2.8 and Particles, please head over to that thread.


Get Particle Settings: - This node retrieves the specific particle settings of a connected particle system. I created a new socket that holds "Particle Settings" data. You need this node to actually have any Particle Data to work with.

Particle Settings Output:
- This node essentially takes most of the features and buttons from the Particle Settings property window and drops them into the node editor for you. Using this node you can move the sliders and they will update in the Particle Settings window at the same time. (Currently these sliders are not animatable, and if you try to feed them an animated property, the simulation will break).

Particle Settings Input:

  • This node reads Particle Settings and returns the settings for you into their own, respective sockets.

So what?

  • Now you can take a particle system and use various parts of it’s settings for another particle system.
  • You can use particle system settings as parameters for other node inputs, animations, object instancing, a generative property, or pretty much anything you like.

Next steps:

  • A “Particle Settings List” socket that allows you to combine all the particle settings from various particle systems into a list
  • A “Set Particle Settings” node that allows you to feed any of your particle settings into another particle system.


Set Particle Settings Node:

You can now take particle settings from one object, change/drive the values in the node editor, and then output those new particle settings to a different particle system on a different object.

Workflow Scenario/Case Study: LAZORS!

  • Import a previously created object, like a spaceship or a gun, that has a Particle System on it that fires lasers
  • Create a new object, such as a second spaceship or gun.
  • Instance this object as many times as you like to create a firing range, use the object instancer node
  • Create a loop subprogram that looks like this:

You want an iterator that is all of your instanced objects, and then you want a parameter that references your base object…

Get the Particle Systems from the base object, then get it’s particle settings. Use the Particle Settings Output node to control your settings just like you would in the Particle Properties Panel.

Last step is to grab the active particle system of all of your instances. Finally, use a Set Particle Settings node to set the particle settings for all each instanced object’s active particle system.

wala… magic.

this looks like a really interesting project!

Will you be able to drive particles settings through textures (procedural or bitmaps) and using some math?

Bitmaps and textures are a bit beyond the scope of Animation Nodes. This mainly has to do with things like speed. However, I’m sure there are some workarounds for this, such as drivers or something. Not really sure.

You can DEFINITELY drive particle settings using math. For instance you may have a complex AN setup that you’ve crafted already, and want to extend with Particles. Arbitrary values that you have calculated (not animated) can be piped straight into the Particle Settings. The limitation of not being able to animate the particle settings is one that is bound to change when 2.8 releases. But that’s quite a ways off.

I think it would be cool to be able to use textures to drive values of the particles when emitted. Black and white maps that drive values like emission speed, or different viscosity for fluid particles… you name it! :slight_smile: I think it would be very useful. Of course I have no idea if something like this is possible right now in blender, so I am just giving my “ignorant” ideas! :slight_smile:

Looking forward for further developments!! Good luck with you work!