Винтовые лестницы. Методика моделирования

Читать дальше

Приветствую всех профессионалов и любителей компьютерной графики.

     Сегодня я хочу Вас познакомить с нестандартной техникой построения всевозможных криволинейных (и не очень) объектов в программе 3ds Max. На примере винтовой лестницы мы пошагово разберём  "монтаж" непосредственно её самой, а так же всех необходимых атрибутов: перил, балясин и даже кованных ограждений.

Приступим помолясь.


Файл с примером

Время от времени у многих коллег по цеху возникает необходимость создания лестниц различной формы и не всегда она (форма) отличается своей простотой. Как правило, столкнувшись со спиралевидными, зигзагообразными и любыми другими сложно-геометрическими конструкциями у многих возникают затруднения в их реализации. Решить подобную задачу в 3ds Max можно различными способами. Сегодня мы познакомимся с универсальной методикой построения криволинейных лестниц.

   Урок условно разделим на две части, двигаясь от простого к более сложному:

    -- В качестве «Быстрого старта» познакомимся с основным принципом пропагандируемой методики, а также разберём вариант аккуратного и точного позиционирования кованных ограждений на примере уже существующей лестницы;


   -- Во-второй части закрепим навыки, создав сложную спиралевидную лестницу и тезисно выделим основные преимущества данной методики.


     Наверное, каждый, кто даже на начальном уровне владеет инструментарием программы 3ds Max, может без особых затруднений создать самый обычный лестничный марш. А это уже половина успеха! Дело остаётся за малым – загнуть его в нужную форму. Рассматриваемый ниже принцип демонстрирует нам, насколько простым и в тоже время интересным может быть этот процесс. Роль главной скрипки во всём этом «безобразии» будет исполнять модификатор «Skin Wrap». Являясь в своей основе модификатором анимации, он остаётся достаточно гибким инструментом, позволяющим осуществлять деформацию одного объекта, посредствам низкополигональной геометрии другого.


     Поскольку представленный инструмент интегрирован в программу как модификатор анимации, то и терминологию целесообразно было бы использовать соответствующую. Так, например, формообразующий объект будем именовать как «Драйвер формы» или просто «Драйвер», а деформируемый объект «Базовым». Итак, давайте разберём следующий пример лестницы: 

 В своей основе это прямой лестничный марш, созданный стандартными инструментами программы с последующим искривлением: 

   1. В одном из видов проекции создаём элемент лестницы - ступень.  Сразу текстурируем его и распределяем по высоте на заданное количество ступеней:

   2. Тоже самое проделываем с ограждением по обе стороны марша:

За использование готовых моделей ограждений спасибо пользователю «arsa35»  

  3. Далее нам необходимо создать так называемый «Драйвер формы».  В виде «Top» из начала координат строим окружность «Circle» --> «Editable Spline» и на уровне подобъектов «Vertex» делаем разбивку первой вершины («Brake»);

   Важное замечание: место разбивки вершин задаёт начальную и конечную точки «Драйвера». Затем следует нормализация сплайновой формы («Normalize Spline») и её экструдирование («Extrude»). Значение «выдавливания» определяет высоту лестницы, в нашем случае с учётом ограждения;

   4.Укладываем полученный«Драйвер» в плоскость (копируем канал карты «1:map» в канал геометрии «Mesh») Это очень похоже на магию;

 5. Следующим шагом в нашем пособии для волшебников будет привязка всей лестницы (предварительно сгруппировать все элементы) к уже плоскому «Драйверу». С помощью дополнительного модификатора «Edit Poly» (без него объект не воспримет изменение своего положения) и инструментов перемещения, выравниваем плоскость «Драйвера» по центральной оси лестницы (чем ближе «Драйвер формы» располагается к «Базовому объекту», тем меньше будут искажения!);

   6. «Привязываем» лестницу к телу «Драйвера», посредствам модификатора «SkinWrap» (в его настройках не забываем поставить галку напротив параметра «Weight All Points»). Лестница воспримет форму драйвера, но визуально это никак не проявится; 

7. Для того, чтобы увидеть волшебство в действии (деформацию лестницы по заданной форме), остаётся сущий пустяк - отключить пару модификаторов в стеке объекта «Driver» и срыть его с глаз долой (не удалять!!!):

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

Лестница «Перезапись» (Мюнхен)

Ссылка на источник

    Двигаемся дальше… Очень часто возникают ситуации, когда обычная деформация по заданной форме вызывает искажение объекта и как результат некорректное позиционирование всех его составных элементов. Но, как уже ране отмечалось, модификатор «SkinWrap» является очень гибким инструментом и с его помощью можно реализовывать широкий спектр задач.

   Рассмотрим пример, когда в уже существующей лестнице необходимо произвести замену ограждений. Для этого воспользуемся моделью из базы: 

Лестница

Пользователю ресурса 3ddd.ru «Art» большое спасибо! 

  Форма представленной лестницы довольно сложная, поэтому описанный выше алгоритм без соответствующей правки, не вполне способен обеспечить точную расстановку всех крепёжных стоек – искажения неизбежны! Для начала подготовим интересующий нас элемент ограждения (зададим примерно тот же угол наклона, что и у лестницы (FFD)):

Ограждение 

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

   1. В виде «Top» создаём «Драйвер формы», ориентируясь на край ступеней. Нормализуем его («Normalize Spline») и экструдируем («Extrude»). Как и в первом случае значение «выдавливания» определяется высотой лестницы с учётом перил и ограждений;

   2. У ступеней выделяем торцы, а остальную часть объекта скрываем;

    3. Через «SkinWrap» привязываем торцы к «Драйверу»;

    4. Сам «Драйвер» укладываем в плоскость (копируем канал карты «1:map» в канал геометрии «mesh»);

   И снова в ситуацию вмешивается диво дивное, в результате которого, мы получили те самые пространственные координаты ступеней, развёрнутые на плоскости. На развёртке чётко видно, что лестничные ступени не имеют равномерной диагонали, это и есть то самое искажение, о котором мы упоминали выше.

   Теперь же, правильно и точно расставить все элементы нового ограждения лестницы не составит никакого труда: Развёрнутые торцы ступенек послужат хорошим ориентиром на данном этапе работы:

   

Далее, повторяем пункт 7 из предыдущего примера

______________________________________________________________________________

    Ну и на закуску… Как и было заявлено в начале, в этой части урока смастерим деревянную винтовую лестницу. На этот раз не будет заострять внимание на идентичных с первыми двумя примерами действиях, а сконцентрируемся на некоторых нюансах при создании «Драйверов формы» для данного вида лестницы.

    Виртуально креативить, как Вы уже догадались будем вот такой, реально существующий объект:

Ссылка на источник фото

    И первое, на что стоит обратить внимание, это конечно же форма основных элементов. На первый взгляд здесь мог бы неплохо проявить себя инструмент «Helix». Однако, при более детальном анализе формы первые впечатления… они усиливаются! Да, «Helix» – это, пожалуй, лучшее решение. И поскольку форма всех элементов непрямолинейна, наиболее рационально было бы отмоделить их в плоском (прямолинейном) виде, а затем, с использованием всё тех же формообразующих «Драйверов» придать линиям желаемую плавность.

    Путём нехитрых математических вычислений определяем радиус - 900мм, высоту - 3000мм и количество ступенек  - 16, а может 18 (в любом случае красиво)

 2. Создали сплайновую форму;

   3. «Выдавили» объём;

   4. Развернули в плоскость;

   5. Выровняли по центральному элементу;

   6. Задали объекту «Скос»;

   7. Привязали «Базу» к «Драйверу»;

   8. Последовательно отключив действие двух верхних модификаторов, наблюдаем, как центральный элемент лестницы принимает форму «драйвера». Напомню, что «Драйвер» — это спираль с двумя оборотами.

   Важное замечание: Отключать модификаторы нужно последовательно сверху стека, включать - в обратном порядке:

     Абсолютно тем же способом задаётся форма для винтообразной ленты, как и для балясин с периллами (всё привязывается к одному «Драйверу»):

  И вот теперь мы с Вами подошли к завершающему этапу урока. Нам предстоит размещение самих ступеней.  Есть два пути решения этой задачи. Самый быстрый и простой – это задействовать инструмент «Array» и в три клика размножить ступени. Но этот путь для слабаковsmiley-dirol.gif, тем более что применительно к данной ситуации, массивы являются частным случаем. Мы же пойдём несколько иной дорогой, вернее рельсами и благодаря этому сможем в полной мере убедиться в гибкости и универсальности используемого подхода.

   Но сначала стоит упомянуть о том, что исходная форма ступеней должна быть изменена с учётом будущей трансформации (Вот что «SkinWrap» животворящий делает):

       Итак, о рельсах… Суть заключается в следующем:

   Ступени, размноженные на плоскости по высоте лестницы (сделано это при помощи всё того же, нами пренебрежительно отвергнутого массива) привязываются к паре «Драйверов», которые мы использовали для формообразования двух несущих элементов конструкции (центральный элемент и винтообразная лента):

   В результате, при деформации, ступени фиксируются между двумя рельсовыми направляющими. Но тут, есть один неприятный нюанс.

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

   Связано это с некоторыми особенностями работы модификатора «SkinWrap». Поэтому для корректной привязки этой части лестницы к «Драйверам», нам потребуются услуги посредника – ещё одного вспомогательного «Драйвера», элементы которого будут располагаться в непосредственной близости от центра каждой ступени. Он из себя представляет сегментированную по числу привязываемых объектов плоскость, которая образует связь с основными «Драйверами», а у же непосредственно к ней самой привязываются ступени:

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

   Нам лишь остаётся собрать лестницу в единую форму, по тому же принципу, который описан в предыдущей части урока

_______________________________________________________________________________

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

   Подводя черту под всем вышеизложенным, хотелось бы кратко обобщить основные преимущества представленного метода:

     1. Возможность моделирования всех составных элементов на ровной плоскости, что значительно облегчает процесс;

     2. Удобное текстурирование объектов на начальном этапе работы;

     3. Быстрая и наглядная развёртка любых элементов в плоскость, позволяет не только легко позиционировать объекты, но и образмеривать полученные конструкции в сторонних пакетах (САПР);

     4. Комфортный доступ к первоначальной форме на любом этапе моделирования;

  P.S. Использование описанной методики не ограничивается одним лишь созданием лестниц, данный алгоритм может быть с лёгкостью применён в 80% случаев моделирования.Спасибо за внимание! 


723 0 850 6
9
2015-05-17
Отличный тутор)
2015-05-17
Интересный подход, неожиданный. Всегда делал подобное через path contstrain с последующей ручной доводкой, а как у вас даже удобнее.
2015-05-17
Спасибо за отзывы! [quote=Michael Black] Интересный подход, неожиданный. Всегда делал подобное через path contstrain с последующей ручной доводкой, а как у вас даже удобнее. [/quote]
Методика очень гибкая и достаточно универсальная. Ею можно пользоваться начиная от моделирования декоративных вензелей и заканчивая тряпками (Cloth);
2015-05-17
а не проще заюзать railClone2?
2015-05-18
[quote=Skif] а не проще заюзать railClone2? [/quote]
Можно и его.  А RailClone 2 с тряпками тоже работает? Плед уложен с применением той же техники: http://postimg.org/gallery/37c25yyb4/ http://postimg.org/image/eeusm75i3/
2015-05-18
[quote=Romaneus] А RailClone 2 с тряпками тоже работает? [/quote]нет не работает. для этого есть марвелус )) не. методика то прикольная. не спорю. но в случае лестницы все же рейл клон.
2015-05-18
Добрый день! Пост замечательный, но если вы хотите вести блог на render.ru, то ведите его здесь, а сейчас у вас запись в блоге, служит рекламой другого вашего блога, это запрещено правилами ведения Блогов №6: 6. Нельзя использовать блог для рекламы других пабликов/блогов/сайтов, если вы размещаете информацию, то она должна быть полной, а не вести на другой ресурс. Дополните уже его здесь полноценно, урок не такой большой и копипаст его займет едва ли большее 10-15 минут, заранее спасибо!
2016-08-10
народ а кто может поделиться этой моделью бесконечной лестнице!!! очень надо! спс
2022-08-31
Скажите как вам удалось добиться отсутствия искажения перил при их наклоне после применения ffd?
RENDER.RU