Parenting multiple lights to an object with instancing

This album includes pictures that will help understand my problem (i have to use external images since as a first time poster i can only upload one) https://imgur.com/a/0xlmgRS

First i’ll explain what i have working already: I am trying to make street lights, in which i succeeded, but this with only 1 light source per light pole. The result looks like the first image in the album.

To achieve this result I first created a plane, to which i parented the light pole object. I then instanced the light pole onto the plane. Then i added an array and curve modifier to the plane, so I can easily create an array of lamps. The reason i need to use instancing is because i need to attach actual light sources to the poles, and it’s unfortunately impossible to simply parent light sources to an object. The problem i’m having now however is the following. I want to use 2 light sources per light pole like in the second picture in the album.

… but this doesn’t work when using a curve modifier because the lights are offset off the lamp post since the lights (which are parented to the light post) keep the same position relative to the light post instead of rotating with the mesh, like in the third picture in the album.

The reason this problem doesn’t occur with the 1 light source version is because the origin points of the light source and the light post model are on the same position, as is shown in the fourth picture in the album.

So how can i attach multiple light sources to an object and have them rotate correctly when using a curve modifier?

You did not indicate which Blender version you are using so I tried in 2.79 and 2.82. My solution is to:

  • Create the light pole and spot lights, and put them in a Collection (2.8+) or Group (2.79)
  • Add an Empty, and instance the Collection/Group
  • Add a Plane and parent the Empty to the plane; duplicate by face
  • Add the Curve
  • To the Plane, add an Array modifier and a Curve modifier

Result: