At first we need to add a birth script node to replace the birth node already existing. Copy / Paste this script:
on ChannelsUsed pCont do
(
pCont.useposition = true
)
on Init pCont do
(
global pflowguide = $guide
)
on Proceed pCont do
(
if pflowguide != undefined do
(
t = pCont.getTimeStart() as float
NumVerts = getNumVerts pflowguide
if t < 0 do
(
for i = 1 to NumVerts do
(
pCont.AddParticle()
pCont.particleIndex = pCont.NumParticles()
pCont.particleposition = polyop.getVert pflowguide i
)
)
)
)
on Release pCont do ()
Replace the "§guide” with the name of your guides leaving the leading §-sign.
Short explanation: The script cycles through the vertecies of the mesh (§guide) and plants a particle at every vertex.
Replace the Shape node with a Shape Instance and pick the object you want to plant onto the guides we just created. In my case stadium chairs.
I added a Scale node as well to have full control about the scaling within particle flow. Maybe you want a more random scaling then you should increase the scale variation e.g.
TIP: Set the Display operator to "BoundingBox" so that you can see the actual direction without the need of calculating the entire geometry instances
If we want the shape instances to have different materials in a certain manner we should add a Material static node. If you don't add this node all particles will have the material assigned to the shape picked in the shape instance.
In my case I only wanted every fourth chair to have the same material so I picked a Multi/Sub Material with four submaterials in the material static node. I checked Assign Material ID and Show in Viewport to have visual response in the viewport. Because I wanted to the materials to cycle I selected cycle and entered 4 in the sub-materials type in. You should position the node UNDER the shape instance node other wise an applied material to the shape instance master will override your material static!