# Animate an array of objects in parallel paths

Hi everyone I am new at blender and i am trying to create a group of objects which are arrayed on parallel paths as shown in figure below

I have created this by using Array modifier--> curve modifier --> array modifier,

But I want to animate these objects on this path, i want an object to be created at starting point of the curve and should disappear at end point of curve, and this should be done in a loop.

I tried using particle system and curve guide, the system works fine as long as i do not change the curve, as soon as i try to modify the curve all particles start to flow in a bizzare manner.

Using a Unit object and Drivers.

Have used similar to drive midi notes along a music staff. The issue with using this method is making the object both follow and switch paths.

Test Setup.

A quick run down of the test setup illustrated.

• Added the default bezier curve, arrayed it 5 count in $$Y$$ using constant offset.

• Added an icosphere (at global origin default) and given it a follow path constraint targeting the bezier. Set to fixed position, ie offset is 0 at one end, 1 at the other.

• Added a driver on offset, to traverse single curve every 24 frames

(frame // 24)  % 1

Note since this goes from 0 to 1 its inverse (1 - value) could be used as scale driver for any or all of the scale factors.

• Added a driver on $$y$$ location to skip to the next arrayed curve. $$0.3777$$ is the constant array modifier $$y$$ offset, and 5 its count.

0.3777 * ((frame // 24)  % 5)

Next enhancement.

Since the modifier values are blender properties, could use them in the modifier instead

• Driver variables y and count.

• Normally to follow the path, and point in the direction of it can set the Follow Curve property to true. This however blows up here if set. Instead have added an empty that simply follows the unmodified base curve. A basic Rotation -> Rotation Transform constraint is used to set the rotation of our unit. (Using swing and twist input rotation)

Introducing our own props.

Using custom properties as driver variables.

Add a property to the scene to globally offset.

Add a property to the object to locally offset.

Using self in drivers lets introduce object properties into the question.

y * ((frame // 24 + self.get("prop", 3))   % count)