...yeah, or you could right the code. I'll get you started :
heres an example expression :
float $offset = locator1.translateY;
ball2.translateX = getAttr -t (frame - $offset)ball1.tx
;
ball2.translateY = getAttr -t (frame - $offset) ball1.ty
;
ball2.translateZ = getAttr -t (frame - $offset) ball1.tz
;
ball3.tx = getAttr -t (frame - ($offset * 1.5) ) ball1.tx
;
ball3.ty = getAttr -t (frame - ($offset * 1.5) ) ball1.ty
;
ball3.tz = getAttr -t (frame - ($offset * 1.5) ) ball1.tz
;
...the locator's y axis used as an offset is a great interactive way of controlling the offset value...i.e. lossening or tightening up the flocking objects. You could add an attribute, but its more fun this way
Also, notice that I increment the offset value for each object. This can be a random figure if you like using the rand function. This way the objetcs aren't uniform and looks more like a flocking system. What I do is select all the objects or particles and load em into an array with a simple mell script that then applies the expression to every object in the array, as opposed to typing in by hand for each of maybe 1000 objects. To prevent the flocking objects from colliding you have to go a lot further into it, but this should get you started.
~Pootang~