During animation from keyframe A to keyframe B, I would like to move many objects from their starting positions to the location of vertices in an object. Example: Start: End: Is there a way to assign them automatically, getting the shortest path for all and avoiding collisions / keeping a minimum distance? I would need to do this for dozens or hundreds of similar objects and several times, so manual is not an option.
You may be able to use particle systems to do this. The Harmonic force-field can set up a one-to one correspondence between particles in source and target systems. With damping set to 1, source particles stop at their target-partners locations.
- On the target, set up a particle system with no physics, [vertex-count] particles emitted from vertices, all at frame 1.
- In 'Force Field Settings', set the target system to generate a Harmonic field, with quite a high strength, and Damping of 1:
- Set up a source particle system, set the emission as for the target, this time from the source object, and in its 'Field Weights' set it to respond to the Harmonic field of the target.
So far, so good. The source system will be attracted to, and land on the target system (which you will be hide, in any render)
The remaining question is how to avoid collisions between the source particles on their journey to the target..
- Here, in the 'Force Field Settings' of the source system, I've given the particles a 'Charge'. This does, at least, seem to cause enough repulsion between particles to avoid interpenetration:
Options might include giving the source system 'Boid' rather than 'Newtonian' Physics, with an 'Avoid' rule, and plenty of 'Personal Space'. If the worst comes to the worst, you could have a third particle system with 'Keyed' physics, which would let you mix-and-match between other particle systems, picking the parts of their behaviours which work for you.
Have a play, anyway, it might be a starting-point.