3
$\begingroup$

Every tutorial offers this option - create an empty, add the array modifier to your object, choose object offset and select the empty. Then turn the empty and you get polar array.

However what I get is far from it. Each next copy in the array becomes exponentially larger and when I spin the empty the whole whatever I've got turns and it's far from the result I wanted. I've noticed that when scaling my object to 1, it sort of fixes it, but then its still very weird. My empty becomes the center of the 2nd object in the array and me turning it makes all the other objects curve relative to each other and in result the center point of my 'polar array' keeps shifting. I want the center to be where my empty is.

There must be something I'm missing... After all I'm new to blender.

$\endgroup$
3
  • 4
    $\begingroup$ For simplicity, working around world 0 this time, Ctrl-A > Apply the transforms (especially scale) of the array element and the empty at object-level before assigning the modifier, to give yourself a clean start. Any relative difference of transform between the empty and the element will be added to each iteration. $\endgroup$
    – Robin Betts
    Commented Jul 15, 2020 at 8:33
  • 1
    $\begingroup$ Thanks, that did it. I just dont understand why did this help. What did this command do? Nothing seem to have changed visually. Is there some kind of disconnect between real data and displayed data? $\endgroup$
    – Grey
    Commented Jul 15, 2020 at 8:39
  • 2
    $\begingroup$ I'll pop in an answer, unless someone else does first. $\endgroup$
    – Robin Betts
    Commented Jul 15, 2020 at 8:44

1 Answer 1

1
$\begingroup$

Glossing over some things a bit..

Every geometrical entity in Blender is made up of two parts: they are Objects, which contain Data.

In the case of a polygonal object, the Data is a representation of the Object's mesh - the location of all its vertices, which vertices constitute which edges and faces,and so on. The vertex locations in the Data are not measured in World Space, but in the space of their Object. You can see the space of an Object by switching on 'Axis' in the Object > Properties > 'Viewport Display' panel.

enter image description here

The top face of the default 2x2x2 cube on the left is at Z = 1, in its object's space. Because the object has no transform, the top face is also at Z = 1 in World Space. The cube next door has been scaled in Z, and the one on the right rotated, too. As far as the Data are concerned, the top faces of those cubes are still at Z = 1, in their object's spaces. They are then given their object's transform, which puts them at different locations and rotations in the world.

In Edit Mode, you are transforming elements of the mesh in their object's space. In Object Mode, you are transforming the object (i.e its space, along with the vertices in it.)

When you Apply the transforms of an object, the World transform of the object is given to all of its vertices in their object's space, and, to compensate, the inverse of the transform is given to the object itself. That results in the mesh remaining where it was in the world, and the object's transform being returned to 0 translation, 0 rotation, 1 scale...

enter image description here

Counting from 0, an object-targeted Array modifier gives each iteration of the mesh [iteration-count] times whatever transform would would map the zeroth (original) arrayed object on to the target object. (The inverse of the arrayed object's transform in the target object's space.) The first copy's axes, if it had them, would always match the target's axes. Try it with some simple transforms, and the axes showing, to get the idea.

$\endgroup$
3
  • $\begingroup$ This is alot to take in, but this does clear some things up. Through experimentation i found that the origin of an object is not necessarily where the object is. And your answer explains why that is the case. $\endgroup$
    – Grey
    Commented Jul 17, 2020 at 8:02
  • $\begingroup$ @Grey I would put it a different way.. The location of an object is exactly where its origin is. The object's mesh could be anywhere. $\endgroup$
    – Robin Betts
    Commented Jul 17, 2020 at 8:05
  • $\begingroup$ Yeah, that is correct. I should stop mixing words object and mesh... $\endgroup$
    – Grey
    Commented Jul 17, 2020 at 8:07

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .