I'm trying to make an object be duplicated AND scaled along a bezier curve, however, the only ways I've found, namely using a lattice modifier or using an empty, both seem to distort my objects and I really need it to be scaled evenly, as in (1.0,1.0,1.0) per step.

Does anyone know of a solution for this?

Here's what I'm working on:

enter image description here

The image on the right, with pink arrows, show a distorted version I mocked in Photoshop just to illustrate how I want my objects to "shrink", but I don't want that kind of distortion. I need each objects to decrease scale evenly on all axis (I guess?). Thank you very much!

  • $\begingroup$ Use "set curve radius", available on the toolshelf of the curve in edit mode. $\endgroup$ – lemon Mar 6 '17 at 14:13
  • $\begingroup$ I don't think this is a duplicate of that question, the user was specifically asking about changing scale along path while causing no distortions, which the other answer doesn't seem to adress $\endgroup$ – Duarte Farrajota Ramos Mar 6 '17 at 19:18

Actually, the using and empty object as offset was right! I re-did all my steps and I got it to work exactly as I needed. Part of the answer to my question is here: Repeating objects along a path

While that answer above covers duplicating the object along a bezier curve, it doesn't address how to control the scale or rotation of each duplicated object, which I found somewhere else I can't remember. To acomplish the scaling effect however, you need to uncheck relative and/or constant offset in the array modifier and use an object offset instead. The object you need to use as offset is an Empty. The Empty object is the one you will scale, in my case, to create a correct (without distortion) transition from big to small, of each element in the array, across the bezier curve. The file below can be used as a reference!


enter image description here

There are some details in regard to where to position the empty object, the bezier curve and the object being duplicated. By default you must place the object and the empty at the origin of the bezier curve. From there, play around with the empty until you get the desired result! Important: make sure all rotation and scaling properties of the bezier curve, the object being duplicated and the empty are set to 0 (reset). To reset those properties just select each one of them and press "Ctrl/Cmd + A" and choose "Rotation and scale". Hope it helps!

| improve this answer | |

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.