2
$\begingroup$

I'm trying to make a repetitive shape, with an array modifier and an empty object as a driver, but I can't scale it linearly.

When I scale my modifier driver, I got a curve as you can seen bellow. enter image description here enter image description here

And I want a linear scale like the image bellow (made manually without the modifier). enter image description here

I would like to keep the modifier way to make it because I can also make animated rotation via the modifier, like this :

enter image description here

Is there a way to do this kind of scale with the array modifier ? is there any other options ?

Thank you in advance for your help :)

[Edit] I just forgot one thing to mention about what I want to do, I want also to offset the different layers like the image bellow. But Again, if I offset via the Array modifier driver, i get a strange curve. enter image description here

Here is what I want to get (if possible) : enter image description here

$\endgroup$
5
  • $\begingroup$ Hello and welcome :). You can do this easily using two Simple Deform modifiers instead of the empty. I could post a full answer if you're interested. $\endgroup$ Jan 7, 2020 at 12:51
  • 1
    $\begingroup$ Hello, And thank you very much for your help ! If you have the time to slightly details the way to do this with Simple Deform Modifier it would be awesome. $\endgroup$
    – Poulp
    Jan 7, 2020 at 13:03
  • $\begingroup$ Hello again :). The curved array can happen when your Empty has non-uniform scale. Make sure the X,Y,Z scale is the same - the array should be then linear. $\endgroup$ Jan 7, 2020 at 15:50
  • 1
    $\begingroup$ Thanks to point that out, the issue is that I want my shape to keep the same thickness but scale in the two other axis. $\endgroup$
    – Poulp
    Jan 7, 2020 at 15:57
  • $\begingroup$ You're right, of course, I just noticed that. Well, then it just matters which solution better fits your needs, as both have some limitations :). $\endgroup$ Jan 7, 2020 at 16:02

1 Answer 1

6
$\begingroup$

You can do this quite easily using two Simple Deform modifiers.

  1. Add an Array modifier to your mesh.

enter image description here

  1. Add a Simple Deform modifier, set to Taper.
    Use Deform Factor to control it.

enter image description here

  1. Add another Simple Deform modifier set to Twist.
    Use Deform Angle to control it.

enter image description here

$\endgroup$
5
  • 2
    $\begingroup$ One problem with this solution is that it introduces deformations on the object shape, unlike the array modifier, which may or may not be an issue for the OP. Still intrigued by what the array is not behaving linearly though, haven't been able to recreate. $\endgroup$ Jan 7, 2020 at 15:37
  • $\begingroup$ Thanks for pointing that out. I think I found out why the OP got the array curved curved - it happens when the empty has non-uniform scale. $\endgroup$ Jan 7, 2020 at 15:49
  • 1
    $\begingroup$ Thank you guys for all those informations, I'm learning so that kind of explanation is super useful. $\endgroup$
    – Poulp
    Jan 7, 2020 at 16:11
  • 1
    $\begingroup$ @Duarte ... This is the expected behaviour? Since each iteration of the array multiplies the Offset Object's transform matrix into the arrayed object's accumulated transform matrix, the progression is geometric, not arithmetic. Sure, you can get the array to have straight sides in X,Y, but only if the elements are also getting progressively further apart in Z. $\endgroup$
    – Robin Betts
    Jan 7, 2020 at 16:19
  • 1
    $\begingroup$ @RobinBetts Ok, I've been able to recreate it. Jachym was right, the empty must have non-uniform scale, in which case to solve the issue all that is required is simply scale it uniformly. $\endgroup$ Jan 7, 2020 at 17:13

You must log in to answer this question.

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