1
$\begingroup$

I created a torus, stretched it (X=1.3), and added an Array modifier (n=5) with an Object Offset (an Empty that does nothing).

The effect is that the stretch is applied to the original copy. it's undone in the second copy and later copies are subsequently narrower. Needless to say this is not what I intend to do. To "fix" this I need to set the stretch values of the Empty to those of the torus.

Why is that necessary? doesn't make sense to me and smells like a bug, as I'd expect that adding a "no-op" Empty to an Array should not affect the result.

screenshot

$\endgroup$
5
  • $\begingroup$ Hello could you please share your file? $\endgroup$
    – moonboots
    Commented Dec 17, 2022 at 20:36
  • $\begingroup$ Apply the scale (Ctrl-A) to the torus. $\endgroup$
    – John Eason
    Commented Dec 18, 2022 at 0:17
  • $\begingroup$ @JohnEason Well that obviously fixes the immediate problem, but that doesn't tell me why adding an Empty which does nothing results in scaling things down. $\endgroup$ Commented Dec 18, 2022 at 13:16
  • $\begingroup$ @moonboots attached $\endgroup$ Commented Dec 18, 2022 at 13:19
  • $\begingroup$ The empty does not do nothing, whether the difference in transform comes from the arrayed object or the empty, there is still a relative difference between the two. If you want the empty to do nothing, set its X scale to 1.3 $\endgroup$
    – Gorgious
    Commented Dec 18, 2022 at 15:15

1 Answer 1

1
$\begingroup$

This is how Array Modifier is supposed to work. There is no bug or error. This is intended functionality and it should be like this. An array in object offset mode takes the transforms of the offset object and repeats them. Those are translation, rotation and scale. If the translation/location, rotation or scale values are different in the object repeated and the offset object, the difference is repeated in the array.

You have to apply the scale of your object with ctrl+a, or match the offset object's scale so there is no difference in them if you do not want to repeat that difference across your array. That's the whole point of object offset mode in array modifier - you can change not only location, but rotation and scale in arrays with it.

$\endgroup$

You must log in to answer this question.

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