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$
  • $\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$ – Jachym Michal Jan 7 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 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$ – Jachym Michal Jan 7 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 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$ – Jachym Michal Jan 7 at 16:02
4
$\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

| improve this answer | |
$\endgroup$
  • 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$ – Duarte Farrajota Ramos Jan 7 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$ – Jachym Michal Jan 7 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 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 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$ – Duarte Farrajota Ramos Jan 7 at 17:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.