Following this question.
Since you can't use an array modifier on lamps, how can you create an array so that all lights are clones of the same original and can be edited as one?
Following this question.
Since you can't use an array modifier on lamps, how can you create an array so that all lights are clones of the same original and can be edited as one?
Start with a plane that has the proportions of your lamp, enter edit mode and do loop cuts CtrlR so you end up with as many vertices as you need lights.
Set instancing to Verts.
(for versions 2.79 or older) Set the duplication to Verts.
Add a spot lamp on the same place as your plane.
Select your lamp, then shift-select your plane and press CtrlP and select Parent to Vertex
You have now an array of lights!
To have the array follow your plane's rotation select the lamp and add a copy rotation constraint.
Note that the object doesn't necessarily have to be a plane, it can be any shape you want and it doesn't even need to have faces, as the lamps are controlled by vertices.
Valid for 3.1.
Lights must be anchored to an object, but you can use an array as well to create the anchors. The advantage is you can manage light locations and number using the array modifier parameters.
(With recent versions of Blender it's also possible to use geometry nodes to instance lights on vertices as explained in this Q/A.)
As the most simple anchor is a vertex, just create a mesh with a single vertex, then apply a modifier to create the array:
In the example above two arrays are used to create a grid of single vertex objects.
Then follow the process already explained in the currently selected answer, i.e.:
The distance between light origin and object origin will determine an offset for instances we're going to create. This offset is usually not desired, so move the light to the single vertex object location.
Parent the light to the object by last selecting the object (parent). Reminder for parenting: In object mode, Use Object
| Parent
| Object
(shortcut Ctrl p). You can also drag-drop the light object onto the parent in the Outliner:
None
to Vertices
. The child light is now instanced for each vertex of the parent (here only one vertex), and because the light is now part of the vertex, array modifiers duplicate it as well: