I am trying to find a way to duplicate an object along an edge but the 3 different methods I can find either rotate the object; warp the object or give limited control. Here are images and descriptions of the tried methods as well as a manually made final result:

The first method I tried was to convert the edge to a curve and then use an array modifier and a curve modifier on the object to get it to array along the curve. The problem with this method is that It warps the object along the curve, see image below.


The second method I tried was to instance the object to a plane and array the plane along the curve, this way the plane got warped but the object would remain intact. The problem with this method is I want the objects to all to be rotated the same direction but when using this method it rotates the objects in the corners, see image below.


The third and final method I found was to instance the object along the vertices, while this neither rotates or warps the object, it gives me very little control over spacing and forces me to add an object on every corner or existing vertices on the edge. The amount of work to make sure there is even spacing between all the vertices and getting them placed where I want them would be just as much work if not more so than just manually duplicating and placing the objects, see image below.


Is there some way I can get my object to be duplicated along an edge that neither rotates or warps my object. For an example of intended result see image below.



Instead of arraying a plane along the curve, try arraying a simple vertex. Tweak the constant offset in the array modifier to get the desired offset.

enter image description here

Then create the object you want to instance. Set its parent to the "Arrayed vertices" object. Go to the parent object and in the object properties. Set the instancing to "Verts". enter image description here

Don't forget to add a high enough resolution in the curve properties or else there may be unwanted interpolation.

enter image description here

  • 3
    $\begingroup$ Awesome. Better than particles for interactive visual feedback here, easier to work with. Congrats. Probably good to mention the Curve Resolution, they slides here too. $\endgroup$ – vklidu Feb 16 at 0:17
  • $\begingroup$ This works and is really convenient to work with, I would like to add that while increasing the curve resolution reduces how far off the path it still does slightly stray from the path, however, if you set the resolution to 1 it perfectly follows the curve. For example see: imgur.com/a/jBCMoTP $\endgroup$ – Joeyflodder Feb 16 at 15:13
  • $\begingroup$ I noticed the opposite ! Anyways, glad it helped $\endgroup$ – Gorgious Feb 16 at 18:30
  • $\begingroup$ While trying to replicate why it snapped to the corner better with the resolution at 1 I noticed it only works under specific circumstances. For an example of a curve where it's beneficial to use a resolution of 1 and an example of when it's not, see images: imgur.com/a/JRsntGS $\endgroup$ – Joeyflodder Feb 16 at 21:58
  • Particle system from single vertex
  • Particles Rendered as Object
  • Curve with Physics Properties > Force Field > Curve Guide

enter image description here

  • Distance can be adjusted by number of particles

Edit Note: increace Curve resolution in Data Properties > Shape > Resolution Preview U to max (64) to avoid sliding in corners

Or use Instances from Vertices seems to me as ideal solution for its even distribution. For more flexibility use Subdivision Surface modifier.

enter image description here

  • $\begingroup$ You can considerably improve (but no totally fix) corner accuracy by increasing curve object resolution (even if it has no visual effect) $\endgroup$ – Duarte Farrajota Ramos Feb 15 at 23:39
  • $\begingroup$ Yes, particles now goes cross corner. Thanks :) $\endgroup$ – vklidu Feb 16 at 0:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.