Использование циклов для создания лестницы. Самоучитель по Maya для продвинутых

Задача смоделировать лестницу возникает довольно часто, ведь готовые 3d-модели всегда отличаются по своим параметрам, поэтому такой вариант, как «скачать и вставить» здесь не прокатит. Созданная вами лично и именно для вашего проекта винтовая (спиральная) лестница придаст изюминку проекту, или станет основным элементом декора интерьера. Новичкам может показаться, что моделирование лестницы — сложная работа. На самом деле все намного проще, когда есть готовые инструменты и пошаговая инструкция. Итак, приступим к делу.

В 3Ds max есть встроенные стандартные инструменты, которые отвечают за создание лестниц. Выбираем Spiral Stairs перейдя на вкладку Create/Geometry/Stairs.

После этого нам будет доступны настройки.

Параметры

Type

В разделе Type доступны три вида лестницы:

  1. Open;
  2. Closed;

3 типа основы винтовой лестницы

Generate Geometry

В параметрах Generate Geometry можно добавить или убрать элементы лестницы:

  • Stringers (Тетива);
  • Carriage (Косоур);
  • Center Pole (Центральная стойка);
  • Handrail (Перила);
  • Rail Path (Путь ограждения).

Layout

  • CCW и CW меняют ориентацию лестницы на правостороннюю или левостороннюю;
  • Radius (Радиус);
  • Revs (Степень закрученности);
  • Width (Ширина ступеней).

Rise

  • Overall (Высота лестницы);
  • Riser Ht (Высота ступени);
  • Riser Ct (Количество ступеней).

Steps

  • Thickness (Толщина ступени);
  • Depth (Глубина ступени);
  • Segs (Скругление ступени путём добавления сегментов).

Дополнительные параметры

В свитках параметров Carriage , Railings , Stringers , Center Pole , доступны настройки после добавления этих элементов в пункте Generate Geometry.

После ознакомления с параметрами продолжаем построение модели. Выберем для примера открытый тип лестницы Open. Ставим галочки напротив параметров Carriage, Center Pole, и Rail Path (Outside). Регулируем характеристики (высоту, ширину, смещение) добавленных элементов. Rail Path надо опустить до уровня ступеней.

Созданный Rail Path позволит нам быстро создать перила для лестницы. Для этого переходим в раздел Create/Geometry/AEC Extended и нажимаем Railing. Кликаем по кнопке Pick Railing Path и выбираем сплайн (Rail Path). Добавляем сегментов (Segments) для плавного изгиба ограждения. Редактируем параметры Top Rail (Перила), Lower Rail (s) (Дополнительные перила), Posts (Столбы), Fencing (Ограждение, например стекло).

Если вы хотите создать ограждение со своими элементами, например, используя готовую модель балясины, то для этого используйте инструмент Spasing Tool .

На вкладе Tools выбираем Align/Spacing Tool… (или нажимаем Shift+I на клавиатуре).

Выбираем нужную модель, нажимаем Pick Path и кликаем по сплайну (Railing Path), или по любому созданному сплайну, по которому будут располагаться объекты. В параметре Count задайте число объектов. Нажмите Apply, что бы сохранить результат.

Скорее всего придётся немного выровнять высоту расположения объектов, но зато объекты будут расположены с одинаковым шагом.

Для наложения материалов придётся конвертировать лестницу в Editable Poly. Но прежде сохраните копию 3d-модели, чтобы в случае каких-то изменений параметров не пришлось создавать ее заново. Ведь операция конвертации в Editable Poly безвозвратная. После конвертирования все элементы (ступени, перила, косоур…) будут доступны для выделения в режиме Elements. Назначаем , настраиваем текстуру на объектах с помощью UVW map, выставляем свет и рендерим.

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

Возьмите в качестве исходных для лофт-объекта элементов звезду с четырьмя лучами и две окружности с большим числом секций (рис. 1), проведите лофтинг (команда Surfaces=>Loft) и для лучшего обзора разверните лофт-объект на 45° вокруг оси X и на 90° вокруг оси Y (рис. 2). Теперь нужно закрыть торцы объекта. Для этого вначале на основе окружности инструментом Planar смоделируйте плоскую поверхность (команда Surfaces=>Planar — Поверхности=>Планарный) и закройте ею тот конец объекта, у которого в сечении находится окружность. Затем получите плоскую поверхность уже на базе звезды и закройте ею противоположный торец (рис. 3). Объедините лофт-объект и его торцы в группу и назначьте ей деформатор Twist. Разверните деформатор на 45° вокруг оси X и на 90° вокруг оси Y, чтобы направление его воздействия соответствовало направлению объекта (рис. 4). Настройте параметры деформатора так, чтобы добиться нужной степени скручивания (рис. 5), и после рендеринга вы увидите примерно такое же сверло, как представлено на рис. 6.

Рис. 1. Исходные элементы лофт-объекта

Рис. 2. Начальный вид лофт-объекта

Рис. 3. Закрытие торцов

Рис. 4. Разворачивание деформатора

Рис. 5. Скручивание лофт-объекта

Рис. 6. Сверло

Попробуем применить деформацию скручивания при моделировании винтовой лесенки, правда ограничимся для нее лишь ступеньками. Создайте первую ступеньку лестницы, воспользовавшись полигональным кубом с фасками, полученными путем полигонального сглаживания при помощи команды Poligons=> Smooth (Полигоны=>Сглаживание) — рис. 7. Смоделируйте следующие четыре ступеньки посредством дублирования исходной ступеньки со смещением ее по осям X и Y — щелкните на квадратике справа от команды Edit=> Dublicate (Редактирование=>Дублировать), задайте параметры дублирования в соответствии с рис. 8 и кликните по кнопке Apply (рис. 9). Назначьте четырем выделенным верхним ступеням деформатор Twist и увеличьте для него параметр End Angle примерно до 100 (рис. 10).

Рис. 7. Первая ступенька

Рис. 8. Настройка параметров первого дублирования

Рис. 9. Появление первой группы ступенек

Рис. 10. Результат скручивания первой группы ступенек

Выделите самую верхнюю ступеньку и продублируйте ее с параметрами как на рис. 11 (обратите внимание, что направление смещения по оси X изменилось на противоположное) — это приведет к появлению следующих четырех ступенек (рис. 12). Назначьте четырем выделенным верхним ступеням деформатор Twist и установите для него параметр EndAngle равным -60, отрегулируйте положение деформатора (то есть оси, вокруг которой осуществляется скручивание) по осям X и Z так, чтобы данная ось находилась не в центре скручиваемых объектов, а на некотором расстоянии от них (рис. 13). Создайте путем дублирования еще четыре ступеньки, точно так же сместив их по осям X и Y — направление по оси X вновь должно измениться на противоположное (рис. 14). Опять назначьте четырем выделенным верхним ступеням деформатор Twist с параметром EndAngle, равным -100 (рис. 15). Проведите рендеринг, возможный результат которого представлен на рис. 16.

Рис. 11. Настройка параметров второго дублирования

Рис. 12. Появление второй группы ступенек

Рис. 13. Результат скручивания второй группы ступенек

Рис. 14. Появление третьей группы ступенек

Рис. 15. Результат скручивания третьей группы ступенек

Рис. 16. Винтовая лесенка

Смоделируем развевающийся на ветру флаг, что можно сделать гораздо быстрее, если применить деформаторы. Создайте NURBS-плоскость с десятью вертикальными и горизонтальными изопармами и поверните ее на 90° вокруг оси Z (рис. 17). Выделите ее, назначьте деформатор Flare (с его помощью мы сожмем противоположный конец полотнища), поверните его на 90° вокруг осей X и Z и настройте в соответствии с рис. 18. Придайте полотнищу эффект колыхания на ветру, последовательно добавив к нему деформаторы Sine и Twist — оба деформатора развернуты на 90° вокруг осей X и Z и имеют указанные на рис. 19 и 20 настройки. Добавьте к полотнищу древко.

Рис. 17. Исходная плоскость

Рис. 18. Настройка параметров деформатора Flare

Рис. 19. Настройка параметров деформатора Sine

Рис. 20. Настройка параметров первого деформатора Twist

Для того чтобы полотнище казалось более естественным, потребуется дополнительная деформация на уровне вершин. Поэтому выделите полотнище, переключитесь в режим редактирования вершин (клавиша F8), выделите вершины в правой нижней части и измените их положение деформатором Twist. Данный деформатор повернут на 90° вокруг оси Z и имеет параметры как на рис. 21. Подкорректируйте вид поверхности полотнища вручную перемещением отдельных групп вершин — например так, как показано на рис. 22. Назначьте флагу и древку подходящие материалы. Для флага потребуется подготовить в любом графическом редакторе соответствующий растровый файл (рис. 23), и при создании на его базе материала добавить данный файл как текстуру на канале Color. Кроме того, для появления на материале полотнища теней, неизбежных при деформировании развевающейся ткани, установите на канале Bump текстурную карту Water (рис. 24). Возможно, в итоге будет получен примерно такой же флаг, как представлен на рис. 25.

Рис. 21. Настройка параметров второго деформатора Twist

Рис. 22. Окончательная корректировка вида полонища

Рис. 23. Растровое изображение для текстурирования флага

Рис. 24. Настройка материала для текстурирования флага

Рис. 25. Развевающийся флаг

Столик с металлическими украшениями

Попробуем решить более сложную задачу — смоделировать столик, боковая поверхность столешницы которого, равно как и ножки, украшены витым металлическим прутом, а ножки еще и эффектно изогнуты. Начнем с создания металлического прута. Сформируйте NURBS-окружность (команда Create=>NURBSPrimitives=>Circle) с числом секций (Sections), равным 20, и линейным вариантом соединения вершин (для параметра Degree вариант Linear) — рис. 26. Перейдите в режим редактирования вершин (клавиша F8), выделите все нечетные (или, наоборот, только четные) вершины и масштабируйте их так, чтобы получилась многоугольная звездочка (рис. 27). Создайте ее копию, переместите копию вверх по оси Y на достаточно большое расстояние, последовательно выделите обе звездочки, сформируйте на их основе лофт-объект (команда Surfaces=>Loft), а затем увеличьте число его секций в окне каналов до 150 (рис. 28). Поверните его на 90° по оси Z, назначьте лофт-объекту деформатор скручивания, также поверните данный деформатор вокруг оси Z на 90° и присвойте параметру Start Angle максимально возможное значение, а параметру End Angle — минимально возможное (рис. 29). Выделите скрученный лофт-объект, назначьте ему деформатор Bend, поверните деформатор по осям Y и Z на 90° (он должен быть расположен в горизонтальной плоскости) и подберите значение параметра Curvature (Кривизна) так, чтобы лофт-объект свернулся кольцом (рис. 30). Полученное витое кольцо при рендеринге будет выглядеть примерно так, как показано на рис. 31. Создайте столешницу из полигонального цилиндра и совместите ее с витым кольцом так, чтобы получилось единое целое (рис. 32).

Рис. 26. Параметры NURBS-окружности

Рис. 27. Результат масштабирования вершин

Рис. 28. Лофт-объект

Рис. 29. Скручивание лофт-объекта

Рис. 30. Сворачивание лофт-объекта кольцом

Рис. 31. Витое кольцо

Рис. 32. Столешница

Выделите витое кольцо, создайте его копию, разверните копию на -90° по оси Z, удалите у нее деформатор Bend — должен получиться вертикальный витой прут. Масштабированием уменьшите его длину так, чтобы она была соизмерима с длиной ножки стола. Рядом с прутом создайте полигональный цилиндр такой же длины и обязательно увеличьте число его разбиений в обоих направлениях как минимум до 20 — это будет заготовка для ножки (рис. 33). Объедините оба объекта в группу, назначьте ей деформатор Bend и настройте его так, чтобы оба объекта (витой прут и цилиндр) немного изогнулись (рис. 34). Примерный результат показан на рис. 35. Как видно из рисунка, верхняя и нижняя части ножки получились неровными, поэтому их следует обрезать. Создайте плоскость и поместите ее в месте предполагаемого верхнего разреза (рис. 36). Выделите сначала ножку, а потом плоскость и примените команду Polygons=> Booleans=> Intersection (Полигоны=>Булевы операции=>Пересечение) — основная часть ножки будет обрезана сверху (прут обрезан не будет, так как на него операция Booleans не распространяется) — рис. 37. Аналогичным образом обрежьте нижнюю часть ножки, отрегулируйте масштабированием высоту прута и добавьте ножке еще один декоративный элемент — шар. Вид полученной в итоге ножки стола показан на рис. 38.

Рис. 34. Изгибание элементов ножки

Рис. 35. Изогнутая заготовка для ножки

Рис. 36. Размещение плоскости для обрезания верхней части ножки

Рис. 37. Результат булева пересечения

Рис. 38. Готовая ножка стола

Для удобства работы объедините все элементы ножки в группу и продублируйте (команда Edit=> Dublicate) ее с параметрами как на рис. 39 — появится вторая ножка, которая будет находиться как раз напротив исходной. Теперь нужно создать сразу две ножки, образующие вторую пару, — для этого воспользуйтесь дублированием, но уже с другими параметрами: Rotate X = 180, Rotate Y = 0, Rotate Z = 180, Number of Copies = 2. Разместите ножки требуемым образом, назначьте материалы элементам стола (для витых элементов желательно создать металлический материал, например под бронзу), визуализируйте сцену и получите примерно такой же результат, как представлен на рис. 40.

Рис. 39. Настройка параметров дублирования

Рис. 40. Готовый столик с инкрустацией

Откидной календарь

Воспользуемся возможностью анимирования деформаторов для создания анимации пролистывания листов откидного календаря, при которой каждый лист по очереди должен отгибаться примерно на половину. Для ускорения процесса ограничимся тремя листами. Создайте плоскость (ее размер должен соответствовать размеру предполагаемого календарного листа) и в окне каналов увеличьте для нее число разбиений в каждом направлении до 15. Под плоскость подложите полигональный куб — он будет имитировать стопку лежащих друг на друге листов, а под куб — вновь плоскость, которая в нашем демонстрационном примере заменит столешницу стола (рис. 41).

Рис. 41. Исходный вид сцены

Выделите верхнюю плоскость, назначьте ей деформатор Bend, в окне каналов поверните последний на 180° вокруг оси X и на 90° вокруг оси Z, а в окне атрибутов установите нижнюю границу воздействия деформатора (LowBound) равной нулю. В итоге направление деформатора совпадет с направлением листа, а сам деформатор будет располагаться в его нижней части (рис. 42). В окне Outliner выделите плоскость календарного листа вместе с Bend-деформатором, объедините их в группу и создайте две копии данной группы: первая копия будет соответствовать второму листу, а вторая — третьему. Выделите Bend-деформатор верхнего листа, в режиме анимации с ручным созданием кадров активируйте первый кадр и откройте редактор атрибутов. При выделенном деформаторе нажмите в поле Curvature (там по умолчанию установлено нулевое значение) правую кнопку мыши и создайте ключ, выбрав из контекстного меню команду SetKey (рис. 43). Перейдите по временной шкале на 30-й кадр, увеличьте кривизну так, чтобы лист отогнулся примерно наполовину, и опять создайте ключ в поле Curvature (рис. 44). Выделите Bend-деформатор среднего листа, активируйте 31-й кадр и создайте в поле Curvature ключ при нулевом значении параметра. Затем перейдите в 50-й кадр, увеличьте значение кривизны и создайте ключ для данного параметра. Аналогичные операции проведите в отношении Bend-деформатора нижнего листа, с той лишь разницей, что первый (при нуле) ключ нужно будет создать в 51-м кадре, а второй — в последнем.

Рис. 42. Настройка параметров деформатора

Рис. 43. Создание ключа для 1-го кадра

Рис. 44. Создание ключа для 30-го кадра

Проиграйте анимацию в окне Perspective, нажав комбинацию клавиш Alt+V, — если все сделано правильно, то листы будут последовательно отгибаться. Для большей эффектности откройте редактор материалов и настройте материалы для листов календаря и полигонального куба, имитирующего стопку листов. Подходящие для текстурирования изображения можно создать в любом графическом редакторе — в данном примере для текстурирования первого листа (остальные листы аналогичны — на них лишь другие даты) был использован рис. 45, а куба — рис. 46.

Рис. 45. Изображение для первого календарного листа

Рис. 46. Текстура для куба

Для сохранения полученной анимации откройте окно настройки параметров визуализации, щелкнув на кнопке RenderGlobals (Общие параметры визуализации) в правом верхнем углу экрана или последовательно применив команды Window=>RenderingEditors=>RenderView (Окно=>Редакторы визуализации=>Просмотр визуализации) и Options=>RenderGlobals (Параметры=>Общие параметры визуализации). Настройте параметры рендеринга в соответствии с рис. 47, указав имя файла (в данном случае animation01), формат расширения (AVI), введя номера первого и последнего кадров и проконтролировав, чтобы визуализировалось изображение в проекции Perspective. Закройте окно диалога RenderGlobals (Общие параметры визуализации). Для визуализации всех кадров анимации перейдите в режим Rendering (для перехода в этот режим можно нажать клавишу F5) и воспользуйтесь командой Render=>BatchRender (Визуализация=>Пакетная визуализация), что приведет к формированию AVI-файла, который по умолчанию будет помещен в папку Мои документы\maya\projects\default\images\. После сохранения проиграйте анимацию в окне Windows-проигрывателя (рис. 48).

Рис. 47. Настройка параметров визуализации

Рис. 48. Демонстрация анимации в окне Windows-проигрывателя

Волнующееся море

Деформаторы Sine и Wave нередко используются для моделирования водных поверхностей и для их анимации: Sine удобно применять для имитации волн, а Wave — для создания ряби на волнах. Мы ограничимся волнами, которые и попробуем анимировать. В качестве основы для моря создайте NURBS-плоскость с 30 вертикальными и горизонтальными изопармами. Выделите ее, активируйте инструмент SculptSurfacesTool, установите максимальный радиус равным 4, а максимальное смещение — 0,5, загрузите кисть Splat и в режиме Pull обработайте всю поверхность плоскости до нужного эффекта. Аналогичную операцию проведите в режиме Push, что приведет к получению довольно ровной водной поверхности (рис. 49).

Рис. 49. Деформированная плоскость

Для создания волн назначьте плоскости деформатор Sine и разверните его на 90° вокруг оси Z (рис. 50). Активируйте редактор атрибутов и измените параметры настройки деформатора в соответствии с рис. 51, причем для параметров Wavelength, Offset и Dropoff изменение значений завершите созданием ключей анимации. Не забудьте перед созданием ключей убедиться в том, что находитесь на первом кадре. Переключитесь на 20-й кадр, подходящим образом (оценить это можно лишь визуально) измените значения параметров Wavelength, Offset и Dropoff и вновь создайте для них ключи (рис. 52). И так далее — чем больше вы создадите ключевых кадров с разными вариантами настроек, тем интереснее и естественнее получится анимация. После создания очередного ключевого кадра проигрывайте анимацию в окне Perspective, чтобы оценить результат и при необходимости произвести коррекцию настроек.

Рис. 50. Установка положения деформатора

Рис. 51. Настройка параметров деформатора для 1-го кадра

Рис. 52. Настройка параметров деформатора для 20-го кадра

По окончании добавьте к сцене небо, для чего лучше воспользоваться NURBS-сферой — благодаря искривлению ее поверхности небо выглядит более правдоподобно. Создайте сферу очень большого диаметра и поместите ее на заднем плане сцены (рис. 53). Затем назначьте материалы. В качестве материалов для воды был использован Ocean Shader (цветовые оттенки его были изменены), а для оформления неба — растровое изображение (рис. 54). Для сохранения полученной анимации настройте параметры визуализации так же, как это было сделано в предыдущем задании, и проведите пакетный рендеринг (команда Render=>BatchRender). Проиграйте созданную анимацию (рис. 55). Только имейте в виду, что процесс генерации AVI-файла может оказаться длительным (это зависит от аппаратных ресурсов), поэтому, если вы не уверены в результате, при промежуточных рендерингах число кадров лучше ограничивать (параметры Start Frame и End Frame) только теми, которые действительно интересуют вас в данный момент.

Рис. 53. Добавление сферы

Рис. 54. Растровое изображение

Рис. 55. Демонстрация анимации в окне Windows-проигрывателя

Переходим в модуль «2D-моделирование». Строимоси и затем 2 окружности Ø100 и Ø1800. Как показанона Рисунке 1.

Теперь смоделируем контур ступеньки.
Для этого обрежем окружности ипрямыеи получим две дуги и два отрезка, соединяющие концы дуг. См. Рисунок. Используем при этом, инструмент обрезка. Это инструмент работает в 2 шага.
1. Выбираем все контуры, которые участвуют в обрезке.
2. Указываем часть контура, которую нужно обрезать.

Четыре полученных контура нужно объединить в один, чтобы получить в итоге эскиз-контур ступеньки.

Используя, созданный эскиз, мы в модуле 3D Моделирование позже создадим ступеньку. А сейчас мы сделаем еще контур для проектирования поверхности перила лестницы. Делаем прямоугольник размерами 70х30. В двух верхних углах делаем скругления радиусом 15. См. Рисунок.

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

Переходим в модуль «3D-моделирование».
Немного теории. Для построения лестницы мы используем универсальные функции 3-х мерного моделирования. А конечной целью этих функций является создание тела или поверхности. Тело представляет собой набор поверхностей, которые составляют замкнутое пространство. Поверхность может быть триммированной (обрезанной) или нет. При визуализации поверхность представляет собой набор кромок или сетку. Сетка считается с разной степенью детализации, в зависимости от масштаба сцены.
Выбор поверхности и тела происходит одинаково в зависимости от режима изображения поверхностей. При изображении поверхности в режиме проволока, ищется кромка, ближайшая к курсору.
Продолжим моделирование перила лестницы.
Повернем эскиз вокруг оси X на 90 градусов. А затем переместим вдоль оси на 900.

  • Получим такое положение как на рисунке.
    Преобразуем эскиз-контур в сплайн. Для это воспользуемся функцией из главного меню
    Преобразовать ->Кривую ->To Spline. Теперь размножим наш сплайн, используя для этого новую функцию копировать винтом. Дляее вызова нужно нажать кнопку в панели инструментов 3D. Вводим параметры в появившемся окне:
    Угол -30 град.
    Шаг по Z 200
    Числошагов 12
    И любуемся результатом. Как на картинке.

  • Примечание.
    Угол со знаком минус потому что мы делаем копию с поворотом по часовой стрелке, если
    смотреть со стороны оси Z. Все готово для построения поверхности. Наконец то.

В главной панели инструментов переключаемся на закладку поверхностей. И ищем кнопкудля создания поверхностей по сечениям.

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

Самую сложную деталь мы замоделировали. Переместим ее вдоль оси Z на дистанцию 600 мм.

Теперь сделаем ступеньку.
В главной панели инструментов переключаемся на закладку твердотельного моделирования. Для создания ступеньки используем кнопкупрофиль
из эскиза.

Функция предлагает нам указать эскиз-контур для образования тела. Эскиз мы уже построили ранее. Указав эскиз-контур, в появившемся окне вводим нужную нам
толщину ступеньки.

Получаем ступеньку, которую нам нужно размножить.

Но, перед этим мы покрасим ступеньку с помощью такого атрибута поверхностей, как материал. В редакторе материалов создадим новый материал

Немного теории про материал.
В новом документе нет материалов и все поверхности изображаются с помощью материала по умолчанию. В редакторе материалов изображаются только материалы главной части документа. Но в документе может быть много частей. Например, если вы импортировали стол из.wrk файла, то все содержимое файла будет располагаться в части со всеми примитивами, слоями, материалами, частями и таблицей параметров. Это пока для общего развития, не пугайтесь.
Один материал может быть активным, он изображается немного большим чем все остальные. Свойства активного материала можно назначить поверхности или всем предварительно телам. Для этого и служат соответственно две кнопки - Face и Apply. В первом случае, нажав кнопку Face, вы указываете на поверхность, к которой нужно применить материал, во втором случае, нажав кнопку Apply, свойства выбранного материала применяются к всем поверхностям всех выбранных тел.
К активному материалу можно применить свойства другого материала из библиотеки материалов. Для этого служит кнопка Library. Свойства (параметры) активного материала можно сохранить в виде файла. Для этого есть кнопка Export. К активному материалу можно применить свойства другого материала, которые хранятся в
виде отдельного файла. Кнопка Import.
После того, как мы применили нужный материал к поверхностям ступеньки, ее можно скопировать. Используемдля этого новую функцию копировать винтом. Для ее вызова
нужно нажать кнопку в панели инструментов 3D. Мы это уже делали, когда моделировали поверхность перила.
Вводим параметры в появившемся окне:
Угол -30 град.
Шаг по Z 200
Число шагов 12.
И любуемся результатом.

Теперь нам нужно сделать центральную трубу. Используем для этого функцию Цилиндр, в диалоге вводим параметры: Диаметр 100 и Высота 2000.
Стойки делаем с помощью функции Профиль. А потом их размножаем с помощью функции копировать винтом. И получаем в результате нашу лестницу.

Итак, теперь давайте добавим в нашу работу немного логики. Начну с небольшой хитрости. Я собираюсь загрузить фрагмент скрипта, для того, чтобы нам было с чего начать. Открываем Script Editor, нажимаем Load Script (загрузить сценарий), затем выбираем Desktop, оттуда направляемся в папку Exercise Files, выбираем Chapter 2. В этой папке мы найдем файл 02_05_Step.mel. На самом деле, это повтор скрипта, который мы создали ранее, когда мы работали с переменными.

Этот скрипт позволяет нам создать параллелепипед. У нас установлены переменные для высоты, ширины и глубины, которые применяются при создании фигуры. Мы возьмем ее за основу для лестницы, которую собираемся создавать. Поэтому я назвал ее ступенькой (Step). Если мы выделим команды и нажмем Execute, то получим симпатичную прямоугольную фигуру. Но нам нужно создать несколько подобных фигур и разместить их так, чтобы они напоминали лестницу. Что мы и сделаем.

Для этого нам нужно взять одну из этих фигур и переместить её. Фигуру переместим по двум осям: по оси Z в глубину, и по оси Y в высоту. Это очень легко делается. Удалим обе фигуры и начнем работать с чистого листа. Но перед этим нам необходимо добавить еще одну переменную. Она будет определять количество ступеней. Это нужно для того, чтобы понять, из скольких ступеней будет состоять наша лестница. Мы пишем: Int, что означает Integer (целое число). Нам нужны именно целые числа, потому что, число ступеней не может быть дробным.

Затем мы создаем переменную с названием numSteps, ставим знак равенства, и затем количество ступеней. Наша лестница будет состоять из шести ступеней. Теперь у нас есть все необходимые переменные для создания скрипта. После этого мы создадим цикл For. Посмотрим, как это выглядит. Вначале пишется слово "FOR", затем в круглых скобках пишется начальное условие, потом через точку с запятой конечное условие и в конце, тоже через точку с запятой – выражение, которое будет обновлять счетчик после каждого выполнения цикла.

До тех пор, пока не выполнится конечное условие, мы будем двигаться в рамках цикла, после каждого выполнения цикла будет обновляться значение счетчика. Затем, в фигурных скобках мы напишем команды, которые будут повторяться в цикле. Именно они будут строить лестницу. Итак, вернемся к Maya и создадим цикл For. Пишем: For, затем открываем круглые скобки, затем создаем переменную. Нам нужно определить, какую переменную мы будем используем для счетчика.

Начнем с того, что напишем переменную $i, которую обычно используют для обозначения счетчика. Если мы собираемся начать с того, что $i будет равно 0, тогда нам нужно будет продолжить команду до тех пор, пока значение $i будет меньше, чем количество ступеней. Можно просто скопировать и вставить переменную для обозначения количества ступеней. Затем нужно задать выражение для увеличения значения переменной "i". По нашей задумке, это значение будет увеличиваться на одну единицу при каждом повторении цикла.

Мы можем сделать это, добавив в команду два знака "+", а затем название переменной $i. Закрываем круглые скобки. Затем открываем фигурные скобки. Maya имеет одну замечательную особенность: когда вы открываете фигурные скобки, затем нажимаете Enter, скобки автоматически закрываются. Таким образом, вы никогда не оставите их открытыми. В этих скобках мы будем писать нужные нам команды. Сейчас мы добавим команду для создания ступеньки polyCube.

Обратите внимание, что Maya автоматически делает отступ. Благодаря этому код становиться более удобочитаемым. Теперь посмотрим, как все это работает: выделяем команду, выполняем ее. Что-то произошло. Перед нами одна фигура. Однако, если вы откроете окно Outliner, то увидите, что на самом деле создано шесть фигур, их нужно прост передвинуть на нужные позиции.

Сейчас мы этим займемся. Выделяем фигуру, перемешаем ее вглубь, затем поднимаем вверх, чтобы это выглядело, как лестница. Когда мы перемещаем фигуры, то в истории команд появляются дополнительные записи. Например: Move -r, затем цифры. Их можно использовать в скрипте. Нажимаем Enter, затем печатаем Move -r. Далее нужно написать значения перемещения вдоль координат X, Y и Z.

Если мы выделим нашу фигуру, то увидим, что ось X обозначает ширину ступени. Я совсем не хочу перемещать фигуры по этой оси, так что поставим ноль. Далее, для оси Y, я хочу использовать переменную высоты ступеньки. Пишем: $stepH. Помещаем её в круглые скобки, так как у нас будет несколько ступеней. И каждую из ступеней нужно отодвинуть дальше и дальше.

Поэтому эта переменная должна быть умножена на номер текущей ступеньки, которую у нас обозначает переменная $i. Перейдем к оси Z, которая отвечает за глубину. Здесь нам нужно сделать то же самое, как и в предыдущем случае, однако это будет относиться к глубине расположения фигуры. Пишем: $StepD*$i. Убедитесь в том, что вы поставили точку с запятой в конце.

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

Это очень полезно для работы с различными вещами, в том числе для создания лестничных ступеней.