Lamp Posts: correctly oriented instances on a 3D curve I'm trying to create a row of street lights, both the lamp pole and a spot light. Since i can't simply join these two and use an array + curve modifier to set this up (using an array modifier + a curve modifier always deforms the mesh) so i came to the conclusion that working with collections and instances would be my best bet. 

To get to my current result i parented the spot to the lamp mesh. Then i parented those two objects to a plane. after that i parented the plane (and so also the lamp mesh and the spot) to a curve that i converted to a mesh. I then activated Instancing for the curve with verts which resulted in something like this: 



As you can see the lamps all face the same direction, while i want them to be rotated inwards. There's an option for 'aligning the objects to vertex normal'

 

but enabling this exposes a multitude of problems:


Problem 1: it turns out there's two instances of every object. (i have no idea why)
Problem 2: the street light meshes get deformed.





Problem 3: the actual lights all face toward the same place



 (I drew over the lamp directions with blue arrows for visibility)

If anyone knows how i can get this to work i'd really appreciate it, but other techniques are welcome too.
You almost got it. You can do it by using an array + curve modifier, you just need to use the plane as an instancer.
Select the plane, add an array modifier and set the length to &quot;fit curve&quot;, and set your curve.
Add a curve modifier, set it to your curve again.
Make sure to parent the lamp post to your plane, then go to the plane's object properties and select &quot;Faces instancing&quot;. Here you go :

Note that this will not work well if you use a 3D curve.
How to tweak the workflow for a 3D curve :
Instead of using a simple plane for the array + curve combo, use an elongated plane in the Y axis.

Then after the Array and Curve modifiers, add a Weld modifier and tweak the distance until the vertices in the local X axis merge. You should now have a series of segments, with both vertices of each segment on the same XY plane. These segments follow the 2D curvature of the curve object.

Add a Screw modifier on the X axis, set the angle to 0°, the steps to 1 and the screw property to a small value.

Now enable instancing on faces.