Винтовые лестницы. Методика моделирования
Сегодня я хочу Вас познакомить с нестандартной техникой построения всевозможных криволинейных (и не очень) объектов в программе 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 из предыдущего примера
______________________________________________________________________________
Ну и на закуску… Как и было заявлено в начале, в этой части урока смастерим деревянную винтовую лестницу. На этот раз не будет заострять внимание на идентичных с первыми двумя примерами действиях, а сконцентрируемся на некоторых нюансах при создании «Драйверов формы» для данного вида лестницы.
Виртуально креативить, как Вы уже догадались будем вот такой, реально существующий объект:
Путём нехитрых математических вычислений определяем радиус - 900мм, высоту - 3000мм и количество ступенек - 16, а может 18 (в любом случае красиво)
2. Создали сплайновую форму;
3. «Выдавили» объём;
4. Развернули в плоскость;
5. Выровняли по центральному элементу;
6. Задали объекту «Скос»;
7. Привязали «Базу» к «Драйверу»;
8. Последовательно отключив действие двух верхних модификаторов, наблюдаем, как центральный элемент лестницы принимает форму «драйвера». Напомню, что «Драйвер» — это спираль с двумя оборотами.
Важное замечание: Отключать модификаторы нужно последовательно сверху стека, включать - в обратном порядке:
Абсолютно тем же способом задаётся форма для винтообразной ленты, как и для балясин с периллами (всё привязывается к одному «Драйверу»):
И вот теперь мы с Вами подошли к завершающему этапу урока. Нам предстоит размещение самих ступеней. Есть два пути решения этой задачи. Самый быстрый и простой – это задействовать инструмент «Array» и в три клика размножить ступени. Но этот путь для слабаков, тем более что применительно к данной ситуации, массивы являются частным случаем. Мы же пойдём несколько иной дорогой, вернее рельсами и благодаря этому сможем в полной мере убедиться в гибкости и универсальности используемого подхода.
Но сначала стоит упомянуть о том, что исходная форма ступеней должна быть изменена с учётом будущей трансформации (Вот что «SkinWrap» животворящий делает):
Итак, о рельсах… Суть заключается в следующем:
Ступени, размноженные на плоскости по высоте лестницы (сделано это при помощи всё того же, нами пренебрежительно отвергнутого массива) привязываются к паре «Драйверов», которые мы использовали для формообразования двух несущих элементов конструкции (центральный элемент и винтообразная лента):
Привязав объекты таким образом к импровизированным рельсам, на выходе мы получим жуткую деформацию ступеней.
Связано это с некоторыми особенностями работы модификатора «SkinWrap». Поэтому для корректной привязки этой части лестницы к «Драйверам», нам потребуются услуги посредника – ещё одного вспомогательного «Драйвера», элементы которого будут располагаться в непосредственной близости от центра каждой ступени. Он из себя представляет сегментированную по числу привязываемых объектов плоскость, которая образует связь с основными «Драйверами», а у же непосредственно к ней самой привязываются ступени:
Таким образом, осуществляется корректная связь между «Драйвером формы» и «Базовым объектом». Не будем здесь разбирать структуру стека вспомогательного «Драйвера», она только выгляди громоздко, но на самом деле ничего «военного» там нет и ознакомиться с ней можно в файле с примером.
Нам лишь остаётся собрать лестницу в единую форму, по тому же принципу, который описан в предыдущей части урока
Вот такой, в чём-то очень простой, а местами и замысловатой, но очень гибкой методикой можно добиваться совершенно невообразимых результатов.
Подводя черту под всем вышеизложенным, хотелось бы кратко обобщить основные преимущества представленного метода:
1. Возможность моделирования всех составных элементов на ровной плоскости, что значительно облегчает процесс;
2. Удобное текстурирование объектов на начальном этапе работы;
3. Быстрая и наглядная развёртка любых элементов в плоскость, позволяет не только легко позиционировать объекты, но и образмеривать полученные конструкции в сторонних пакетах (САПР);
4. Комфортный доступ к первоначальной форме на любом этапе моделирования;
P.S. Использование описанной методики не ограничивается одним лишь созданием лестниц, данный алгоритм может быть с лёгкостью применён в 80% случаев моделирования.Спасибо за внимание!