Раскидка объектов по кривым в Blender

Рачинский Михаил
Портфолио

Загрузить материалы к уроку

В данном уроке мы рассмотрим три способа раскидки объектов по кривым, каждый способ имеет свои плюсы и минусы которые мы рассмотрим на простых примерах со стандартными объектами и на упрощенных производственных ситуациях. Этот урок будет полезен не только ювелирным и product дизайнерам, но и всем тем, кто профессионально занимается 3D графикой в Blender так как рано или поздно перед вами встанет подобная задача.

Способ первый: Array + Curve

Добавляем к объекту модификаторы Array и Curve, для Array указываем необходимое количество копий объекта Count и расстояние между копиями Offset, а для Curve указываем в поле Object кривую по которой будет деформироваться данный объект.

Добавляем модификаторы Array и Curve

Теперь когда у нас объекты деформированы по кривым мы видим что имеется некоторый offset между кривой и деформируемым объектом, это случается потому, что нулевая точка отсчета деформации по кривой рассчитывается от origin этой кривой, поэтому что бы такого offset не было, нам необходимо подвинуть объект либо геометрию объекта на место этого origin.

Подвинем объект на место origin кривой

Когда геометрия удачно деформирована мы можем заметить, что раскидываемый объект в разной степени деформируется, это не является ошибкой, это особенность данного способа которая и делает его применение желаемым в одном случае и недопустимым в другом. Для контроля раскидки у нас имеются параметры модификатора Array Fit Type, Fixed Count — создает указанное количество копий объекта, Fit Length — здесь указывается длина в которой будет размещено максимальное количество копий объекта с учетом их габаритов и расстояние между ними, Fit Curve — тоже самое что и Fit Length только здесь указывается кривая, длина которой берется для расчета количества создаваемых копий.

Параметры модификатора Array: Fixed Count, Fit Length, Fit Curve

У кривой также имеется параметр Stretch (который работает корректно исключительно совместно с параметром Bounds Clamp), этот параметр растягивает деформируемый объект таким образом что бы он занимал всю длину кривой в не зависимости от его изначальных габаритов. В некоторых случаях это приводит к сильной деформации объекта, а также если кривая замкнута начало и конец деформируемого объекта будут соприкасаться. Этого можно избежать используя буферную геометрию внутри деформируемого объекта.

Параметр Кривой Stretch

Данный способ лучше всего подходи в случае когда нам необходима данная деформация что-бы раскиданный объект выглядел более органично, здесь например расстояние между копиями объекта оставалось всегда одинаковым в любой точке деформации.

Объект выглядит более органично

Способ второй: DupliFrames

Делаем parent дублируемого объекта с кривой, выделяем объект, потом кривую, нажимаем сочетание клавиш Shift + P, и выбираем пункт Object в всплывающем меню.

Парентим объект с кривой

Далее в настройках кривой, в свитке Path Animation (Включаем свиток Path Animation если он отключен) включаем опцию Follow

Настройка кривой Follow

Сейчас объект деформируется по кривой с offset, но в этот раз что бы поставить его на место нам необходимо расположить его не на origin, а в начало кривой, вручную нам этого делать не придется, выделяем объект и нажимаем комбинацию клавиш Alt + O. После заходим в настройки объекта и активируем параметр Frames в свитке Duplication и отключаем опцию Speed. Наш объект успешно копируется вдоль кривой.

Настройки объета Frames в свитке Duplication, отключаем опцию Speed

Теперь что бы уменьшить количество копий заходим в настройки кривой и меняем параметр Frames до необходимого.

Настройка кривой параметр Frames

Данный способ лучше всего подходит для раскидывания объектов без деформации, когда их точное количество знать не нужно.

Базовая раскидка с помощью DupliFrames

Мы так же можем заметить что деформаций как при предыдущем способе не происходит, к тому же объект раскидывается по длине всей кривой изначально и нам не нужно прибегать к «буферной геометрии» как в предыдущем способе для создания расстояния между первой копией и последней при замкнутой кривой.

Способ третий: DupliFaces

Отодвигаем в сторону объект и в меню выбираем Object → Make Dupli-Face, оригинальный объект перемещается в центр глобальных координат, а на его месте появляется новый DupliFace объект.

Создание Dupli-Face объекта

В настройках DupliFace объекта отключаем параметр Scale т. к. это заставляет копируемый объект зависеть от размеров фейса который его дублирует (Inherit Scale — настройка для коррекции размера при включенной опции Scale).

Настройки DupliFace, параметр Scale

Далее мы просто добавляем к DupliFace объекту модификаторы Array и Curve, смысл в том, что бы с помощью модификаторов деформировать объект DupliFace деформации которого не влияют на дублируемый объект. Таким образом мы берём все самое лучшее от двух предыдущих способов. Мы получаем легкий для контроля, гибкий и параметризованный дублируемый объект. Камни раскиданные подобным способом автоматически считываются аддоном JewelCraft.

DupliFace + Array + Curve

С помощью этого способа мы с легкостью можем создавать сложные изделия за меньшее время.

Раскидка камней по Сфере с помощью DupliFace

Раскидка камней, волнистый узор с помощью DupliFace

Вывод

Каждый из представленных способов имеет свои особенности помогающие или мешающие в определенных ситуациях: * Первый способ: если необходима деформация копируемого объекта * Второй способ: если необходимо сохранить изначальную форму объекта и не нужно знать точное количество копий * Третий способ: если необходимо сохранить изначальную форму объекта, сложные деформации копируемого объекта и необходимо знать точное количество копий — идеально для раскидки камней