3D Studio MAX: первые шаги. Урок 19. Динамика в сцене

Светлана Шляхтина

Имитация динамики твердых и мягких тел

Рассыпаем кубик Рубика

Разбиваем бильярдную пирамиду

Имитация ткани

Набрасываем покрывало

Вешаем полотенце

Вешаем шторы

Имитация гибких тел

Натягиваем сетку

Имитация воды

Отправим медузу в плавание

Натягиваем сетку

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

 

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

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

 

Выделите все объекты, кроме сплайнов, и щелкните на кнопке CreateRigidBodyCollection, тем самым поместив выделенные объекты в коллекцию твердых тел. Создайте коллекции тканей и веревок (рис. 63). Выделите вторую плоскость, назначьте ей модификатор reactorCloth, в настройках модификатора установите флажок AvoidSelf-Intersections, а затем включите данную плоскость в коллекцию тканей. В окне SelectObjects выделите все четыре сплайна и нормализуйте их, применив команду Modifiers=>Patch/SplineEditing=>NormalizeSpline (Модификаторы=>Редактирование кусков/сплайнов=>Нормализовать сплайн) и указав для параметра SegLength (Длина сегментов) значение 3. Поочереди назначьте каждому из сплайнов модификатор reactorRope примерно с такими параметрами, как на рис. 64, а затем включите все сплайны в коллекцию веревок.

 

Рис. 63. Появление иконок коллекций

Рис. 63. Появление иконок коллекций

 

Рис. 64. Параметры настройки модификатора reactorRope

Рис. 64. Параметры настройки модификатора reactorRope

 

Теперь требуется закрепить ткань на созданных ранее ограничителях, а веревки привязать с одной стороны к вертикальным опорам, а с другой — к ограничителям. Выделите плоскость ткани, переключитесь на уровень редактирования вершин модификатора reactorCloth, выделите левый ряд вершин и щелкните на кнопке AttachToRigidBody (Присоединить к твердым телам). После чего щелкните на появившейся в списке строке AttachToRigidBody и укажите в качестве ограничивающего объекта левый цилиндр-ограничитель. Аналогичную операцию проведите в отношении правого ряда вершин, указав для него правый цилиндр-ограничитель (рис. 65). Выйдите из режима редактирования вершин.

 

Рис. 65. Привязка вершин плоскости-ткани к ограничителям

Рис. 65. Привязка вершин плоскости-ткани к ограничителям

 

Выделите первый сплайн, переключитесь в режим редактирования вершин модификатора reactorRope и свяжите граничные вершины сплайна с левым цилиндром-опорой и левым цилиндром-ограничителем, указав их как твердые тела (кнопка AttachToRigidBody), — рис. 66. Аналогичную операцию проведите в отношении трех других сплайнов. После этого вновь вернитесь к первому сплайну и, учитывая, что веревки сетки должны не свисать свободно, а все же быть натянуты, зафиксируйте центральную вершину сплайна, выделив ее и щелкнув на кнопке FixVertices (Зафиксировать вершины). То же самое выполните для других сплайнов. Выйдите из режима редактирования вершин.

 

Рис. 66. Привязка граничных вершин первого сплайна

 

Щелкните на кнопке Utilities и раскройте список свитков модуля Reactor. Выделите плоскость-землю и объявите ее вогнутым объектом, раскрыв свиток Properties и установив переключатель в группе SimulatuionGeometry в положение UseMesh. Откройте свиток Preview&Animation и включите режим предварительного просмотра кадров анимации (кнопка PreviewinWindow). Нажмите клавишу p для начала просчета динамики и остановитесь на наиболее привлекательном кадре, а затем воспользуйтесь командой MAX=>UpdateMAX и закройте окно Reactor. Возможный результат представлен на рис. 67.

 

Рис. 67. Сетка на опорах

Рис. 67. Сетка на опорах

В начало В начало

Имитация воды

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

Следует заметить, что на первый взгляд созданная в Reactor водная поверхность ничем особенно не отличается — подобную поверхность можно получить и другими способами, о которых уже шла речь. Однако отличие есть и весьма существенное — жесткие тела, погруженные в Reactor-воду, подвергаются воздействию вполне реалистичной выталкивающей силы, благодаря чему они могут тонуть, плавать на поверхности или находиться во взвешенном состоянии в толще воды, что реализуется автоматически в ходе просчета динамики.

Для примера создайте сцену с примитивами Plane (с большим числом разбиений по обеим осям) и TorusKnot (рис. 68). Щелкните на кнопке CreateWater панели Reactor и сформируйте деформацию, размеры которой совпадают с размерами плоскости. Выделите Water-деформацию и свяжите ее с плоскостью, воспользовавшись инструментом BindtoSpaceWarp, а затем выровняйте деформацию по плоскости по всем трем осям (рис. 69). Выделите плоскость и торус и щелкните на кнопке CreateRigidBodyCollection, тем самым поместив выделенные объекты в коллекцию твердых тел. Щелкните на кнопке Utilities и раскройте список свитков модуля Reactor. Выделите плоскость и объявите ее вогнутым объектом (флажок UseMesh).

 

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

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

 

Рис. 69. Появление Water-деформации

Рис. 69. Появление Water-деформации

 

Откройте свиток Preview&Animation, включите режим предварительного просмотра кадров анимации (кнопка PreviewinWindow) и нажмите клавишу p для начала просчета динамики. Поскольку по умолчанию торус имеет нулевую массу (параметр Mass), то он будет статичным и никаких водных эффектов при анимации наблюдаться не будет (рис. 70). Да и сама поверхность воды будет чрезмерно гладкой. Поэтому вначале выделите Water-деформацию и измените параметры воды примерно так, как показано на рис. 71. Затем выделите торус, раскройте в модуле Reactor свиток Properties и установите для параметра Mass, например, значение 20 — результат не замедлит сказаться: теперь торус будет плавать в воде, погружаясь в нее то одним, то другим боком, а на водной поверхности появятся круги (рис. 72). Хотя при рендеринге вид сцены не впечатлит, так как реальная водная поверхность дополнительно требует соответствующего обрамления и текстурирования.

 

Рис. 70. Вид сцены в окне PreviewinWindow

Рис. 70. Вид сцены в окне PreviewinWindow

 

Рис. 71. Настройка параметров Water-деформации

Рис. 71. Настройка параметров Water-деформации

 

Рис. 72. Вид водной поверхности с торусом в некоторых кадрах анимации

Рис. 72. Вид водной поверхности с торусом в некоторых кадрах анимации

В начало В начало

Отправим медузу в плавание

Воспользуемся созданной на прошлом уроке сценой с пейзажем и создадим на его основе анимацию перемещения медузы по водной глади. Смоделируйте медузу из обычной геосферы с такими параметрами, как на рис. 73. Для этого конвертируйте ее в редактируемый полигон, переключитесь в режим работы с вершинами и удалите указанную на рис. 74 вершину. Перейдите к работе с полигонами, выделите все нижние полигоны, выбирая их через два (принцип выделения показан на рис. 75), и переместите выделенные полигоны вниз, а затем примените к выбранным попарно нижним вершинам операцию Collapse, сформировав тем самым что-то наподобие щупалец медузы. Вернитесь к режиму работы на уровне объектов и назначьте геосфере модификатор MeshSmooth для сглаживания с параметрами по умолчанию, а затем уменьшите масштаб деформированной геосферы относительно оси Z — объект по форме станет напоминать медузу (рис. 76).

 

Рис. 73. Геосфера

Рис. 73. Геосфера

 

Рис. 74. Выделение удаляемой вершины

Рис. 74. Выделение удаляемой вершины

 

Рис. 75. Выделение полигонов

Рис. 75. Выделение полигонов

 

Рис. 76. Медуза

Рис. 76. Медуза

 

Внедрите в данную сцену всю сцену с пейзажем, воспользовавшись командой File=>XRef Scene (Файл=>Экспорт). Создайте плоскость с большим числом разбиений по обеим осям, а затем щелкните на кнопке CreateWater панели Reactor и сформируйте деформацию, размеры которой совпадают с размерами плоскости. Выделите Water-деформацию, свяжите ее с плоскостью (инструмент BindtoSpaceWarp) и выровняйте деформацию по плоскости по всем трем осям. Выделите плоскость и Water-деформацию и расположите их так, чтобы они оказались выше плоскости воды во внедренной пейзажной сцене, настройте параметры деформации в соответствии с рис. 77. Выделите плоскость и геосферу и щелкните на кнопке CreateRigidBodyCollection, что приведет к их включению в коллекцию твердых тел. Щелкните на кнопке Utilities и раскройте список свитков модуля Reactor. Выделите плоскость и объявите ее вогнутым объектом (флажок UseMesh). Выделите геосферу, раскройте в модуле Reactor свиток Properties и установите для параметра Mass значение 3. Щелкните на кнопке CreateAnimation (Создание анимации) и анимация будет создана. Проиграйте ее, и вы увидите, что медуза начнет свое плавание, а на водной поверхности появятся волны и круги (рис. 78).

 

Рис. 77. Настройка параметров Water-деформации

Рис. 77. Настройка параметров Water-деформации

 

Рис. 78. Вид сцены в некоторых кадрах анимации

Рис. 78. Вид сцены в некоторых кадрах анимации

В начало В начало

Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует