Самоучитель по 3dsmax 7

апельсиновые маффины рецепт с фото


Урок 11. Работа с reactor 2



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

Разработчику трехмерной графики очень трудно воссоздать такую картину. Динамика движений в сцене должна подчиняться законам физики, иначе картина будет нереалистичной. Из всего многообразия подобных задач можно выделить несколько основных: симуляция свойств материи, столкновение упругих тел и моделирование жидкостей. Алгоритм решения этих проблем настолько сложен, что его разработкой занимаются целые исследовательские институты. При моделировании сложных анимационных сцен удобно пользоваться встроенным в 3ds max 7 модулем reactor 2. Используя данный модуль при создании динамики в сценах 3ds max 7, можно моделировать сцены, в которых присутствуют упругие и гибкие тела, а также водные поверхности.

В этом уроке рассмотрим несколько примеров, связанных с созданием динамики в трехмерных сценах, и опишем, как можно решить поставленные задачи с использованием модуля reactor 2.

Падение тел



Попробуем создать падение тел при помощи модуля reactor 2. В этом примере будем работать с группами объектов Rigid Bodies (Твердые тела) и Soft Bodies (Гибкие тела). Несложно догадаться, что падающий объект будет гибким, а объект, на который он будет падать, — твердым. Для создания твердого тела используем объект Quad Patch (Четырехугольный фрагмент), для создания гибкого — стандартный примитив Teapot (Чайник).

Перейдите на вкладку Create (Создание) командной панели, в категории Geometry (Геометрия) выберите строку Patch Grids (Патч-поверхности) и нажмите кнопку Quad Patch (Четырехугольный фрагмент).

Переключитесь на вкладку Modify (Изменение) командной панели и установите для созданного объекта достаточные параметры Width (Ширина) и Length (Длина).

Создайте в окне проекции чайник, для чего перейдите на вкладку Create (Создание) командной панели, в категории Geometry (Геометрия) выберите строку Standard Primitives (Стандартные примитивы) и нажмите кнопку Teapot (Чайник). Расположите этот объект над поверхностью.

На панели инструментов reactor нажмите кнопку Create Rigid Body Collection (Создать группу твердых тел) (рис. 4.79). В настройках этого вспомогательного объекта нажмите кнопку Pick (Занести), а затем выделите объект Quad Patch (Четырехугольный фрагмент). Вы увидите, что объект занесен в список твердых тел (рис. 4.80).



Рис. 4.79. Кнопка Create Rigid Body Collection (Создать группу твердых тел) на панели инструментов reactor



Рис. 4.80. Свиток RB Collection Properties (Свойства группы твердых тел) настроек вспомогательного объекта Rigid Body Collection (Группа твердых тел)


СОВЕТ

Если перед нажатием кнопки Create Rigid Body Collection (Создать группу твердых тел) выделить объект Quad Patch (Четырехугольный фрагмент), то он будет занесен в список твердых тел автоматически.



Теперь преобразуем чайник в Soft Bodies (Гибкие тела). Выделите объект Teapot (Чайник), перейдите на вкладку Modify (Изменение) командной панели и выберите из списка Modifier List (Список модификаторов) модификатор FFD 4x4x4.

Это модификатор нужен для того, чтобы при падении чайник правильно деформировался (рис. 4.81).



Рис. 4.81. Чайник после применения модификатора FFD 4x4x4


Теперь применим к чайнику еще один модификатор — reactor SoftBody. Сделать это можно, выбрав модификатор из списка Modifier List (Список модификаторов) или же нажав кнопку Apply reactor SoftBody Modifier (Применить модификатор reactor SoftBody) на панели инструментов reactor.

В свитке Properties (Свойства) настроек модификатора задайте следующие значения: Mass (Масса тела) — 1, Stiffness (Жесткость) — 0,18, Damping (Амортизация тела) — 0,2, Friction (Коэффициент трения) — 0,5.

Установите переключатель в положение FFD Based (На основе FFD) (рис. 4.82).



Рис. 4.82. Настройки модификатора reactor SoftBody


ПРИМЕЧАНИЕ

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



На панели инструментов reactor нажмите кнопку Create Soft Body Collection (Создать группу гибких тел). В настройках этого вспомогательного объекта нажмите кнопку Pick (Занести), а затем выделите объект Teapot (Чайник). Вы увидите, что объект занесен в список гибких тел (рис. 4.83).



Рис. 4.83. Свиток Properties (Свойства) настроек вспомогательного объекта Soft Body Collection (Группа твердых тел)


СОВЕТ

Если перед нажатием кнопки Create Soft Body Collection (Создать группу гибких тел) выделить объект Teapot (Чайник), то он будет занесен в список гибких тел автоматически.



Выделите объект Quad Patch (Четырехугольный фрагмент). Перейдите на вкладку Utilities (Утилиты) командной панели и нажмите кнопку reactor. В свитке Properties (Свойства) установите переключатель в положение Use Mesh (Использовать оболочку). В свитке Preview & Animation (Предварительный просмотр и анимация) нажмите кнопку Create Animation (Создание анимации) (рис. 4.84).

Если в свитке Utils (Утилиты) установлен флажок Analyze Before Simulation (Проанализировать перед просчетом), то программа сначала проведет анализ задачи и, если ошибок не будет, начнет просчет. В противном случае она выдаст сообщение, например, о том, что тело не относится к группе Soft Body Collection (Группа гибких тел) (рис. 4.85).



Рис. 4.84. Настройки модуля reactor


При отсутствии ошибок программа начнет просчет анимационной сцены. Если в свитке Preview & Animation (Предварительный просмотр и анимация) установить флажок Update Viewports (Обновлять вид в окнах проекций), то на протяжении просчета вы сможете наблюдать изменение положения объектов в сцене. После обработки данных можно будет воспроизвести анимацию. Для падающего тела будет создано большое количество ключевых кадров. Полученная анимация будет выглядеть следующим образом: чайник, падая, немного деформируется так, будто он резиновый, подпрыгнет и снова упадет.



Рис. 4.85. Ошибка, найденная программой в текущей сцене


Создание воды



Процесс создания трехмерного изображения воды при помощи модуля reactor 2 очень удачно реализован. Путем несложных операций можно быстро и легко смоделировать реалистичную водную поверхность. Насколько это просто, судите сами. Создайте в окне проекции объект Plane (Плоскость). Нажмите кнопку Create Water (Создать воду) (рис. 4.86) на панели инструментов reactor и создайте объемную деформацию в окне проекции.



Рис. 4.86. Кнопка Create Water (Создать воду) на панели инструментов reactor


ПРИМЕЧАНИЕ

Объемную деформацию Water (Вода) можно создать также, нажав одноименную кнопку в списке reactor категории Space Warps (Объемные деформации) на вкладке Create (Создание) командной панели (рис. 4.87).




Рис. 4.87. Кнопка Water (Вода) в списке reactor категории Space Warps (Объемные деформации)



Рис. 4.88. Кнопка Bind to SpaceWarp (Связать с объемной деформацией) на основной панели инструментов


Нажмите кнопку Bind to Space Warp (Связать с объемной деформацией) на основной панели инструментов (рис. 4.88), щелкните на созданной объемной деформации Water (Вода) и, не отпуская кнопку мыши, переместите указатель мыши на объект Plane (Плоскость). Вода готова. Когда объект будет связан с объемной деформацией, он на одну секунду подсветится.

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



Рис. 4.89. Расположение объекта Plane (Плоскость) и объемной деформации Water (Вода) в окнах проекций


Чтобы убедиться, что созданный объект имеет все свойства воды, необходимо создать некий объект типа Rigid Body (Твердое тело) и «бросить» его в воду. Создайте в окне проекции объект, например стандартный примитив Teapot (Чайник), и расположите его над поверхностью воды.

На панели инструментов reactor нажмите кнопку Create Rigid Body Collection (Создать группу твердых тел). В настройках этого вспомогательного объекта нажмите кнопку Pick (Занести), а затем выделите объект Teapot (Чайник). Объект будет занесен в список твердых тел (рис. 4.90).

СОВЕТ

Если перед нажатием кнопки Create Rigid Body Collection (Создать группу твердых тел) выделить объект Teapot (Чайник), то он автоматически будет занесен в список твердых тел.



Чтобы деформация воды при падении в нее объекта была лучше заметна, тело нужно сделать тяжелым. Выделите объект Teapot (Чайник). Перейдите на вкладку Utilities (Утилиты) командной панели и нажмите кнопку reactor.

В свитке Properties (Свойства) укажите значение параметра Mass (Масса объекта) равной 50 (рис. 4.91).



Рис. 4.90. Свиток RB Collection Properties (Свойства группы твердых тел) настроек вспомогательного объекта Rigid Body Collection (Группа твердых тел)



Рис. 4.91. Свиток Properties (Свойства) настроек модуля reactor


Теперь необходимо настроить объект Water (Вода). Он содержит следующие параметры:

  •  Subdivisions X (Разбиение по оси X) и Subdivisions Y (Разбиение по оси Y)— чем больше значение данных параметров, тем более точно просчитывается поверхность;
  •  Wave Speed (Скорость волн);
  •  Min Ripple (Минимальное искажение) и Max Ripple (Максимальное искажение) — задают рябь на поверхности воды;
  •  Density (Плотность) — определяет плотность жидкости;
  •  Viscosity (Вязкость) — при изменении значения данного параметра жидкость может превратиться, например, из воды в клей;
  •  Landscape (Отражение) — если задействовать эту функцию и выбрать какое-нибудь тело, относящееся к группе Rigid Body (Твердое тело), то волны, наталкиваясь на него, будут отражаться.


Чтобы на водной поверхности возникли искажения, увеличьте значения параметров Min Ripple (Минимальное искажение) и Max Ripple (Максимальное искажение) в 10 раз, а также уменьшите параметр Density (Плотность) до 0,7.

В свитке Preview & Animation (Предварительный просмотр и анимация) настроек модуля reactor нажмите кнопку Create Animation (Создание анимации). Если в свитке Utils (Утилиты) установлен флажок Analyze Before Simulation (Проанализировать перед просчетом), то программа сначала проведет анализ задачи и, если ошибок не будет, начнет просчет.

В противном случае она выдаст сообщение, например, о том, что тело не относится к группе Soft Body Collection (Группа гибких тел).

При отсутствии ошибок программа начнет просчет анимационной сцены. Если в свитке Preview & Animation (Предварительный просмотр и анимация) установлен флажок Update Viewports (Обновлять вид в окнах проекций), то на протяжении просчета вы сможете наблюдать изменение положения объектов в сцене. После обработки данных можно будет воспроизвести анимацию.

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

СОВЕТ

Чтобы созданная сцена не казалась безжизненной, ее можно наполнить какими-нибудь воздействиями (Action), например, добавить в нее Wind (Ветер).



Тип воздействия Fracture (Разрушение)



В этом примере рассмотрим работу с одним из самых интересных типов Actions (Воздействия), с которым работает модуль reactor, — Fracture (Разрушение). Его задача — облегчить моделирование сцены, иллюстрирующей разрушение объекта. Например, при помощи Fracture (Разрушение) можно смоделировать сцену, в которой падающая с большой высоты табуретка разлетается на части, ударившись о землю.

Попробуем создать подобную сцену. Табурет сделаем из пяти примитивов Box (Параллелепипед), четыре из которых будут исполнять роль ножек, а пятый — сидения (рис. 4.92).

Теперь необходимо сделать плоскость, на которую будет падать объект. Создайте в окне проекции объект Plane (Плоскость). На панели инструментов reactor нажмите кнопку Create Rigid Body Collection (Создать группу твердых тел). В настройках этого вспомогательного объекта нажмите кнопку Pick (Занести), а затем выделите объект Plane (Плоскость). Вы увидите, что объект занесен в список твердых тел. Выделите также все объекты, составляющие табурет, и занесите их в этот список.



Рис. 4.92. Табурет, созданный из параллелепипедов


ВНИМАНИЕ

Элементы, составляющие табурет, группировать не надо — Fracture (Разрушение) не работает со сгруппированными объектами.



Затем на панели инструментов reactor нажмите кнопку Create Fracture (Разрушить) (рис. 4.93). В настройках этого вспомогательного объекта нажмите кнопку Pick (Занести), а затем выделите все объекты Box (Параллелепипед), составляющие табурет (рис. 4.94).

СОВЕТ

Если перед нажатием кнопки Create Fracture (Разрушенить) выделить все объекты Box (Параллелепипед), то они автоматически будут занесены в список тел, подвергающихся воздействию.



Настройки разбиения объектов находятся в свитке Properties (Свойства) вспомогательного объекта Fracture (Разрушение). Для каждого элемента, занесенного в список воздействия, можно указать один из четырех вариантов разбиения:

  •  Normal (Обычный) — при некотором значении импульса элемент «отламывается»;
  •  Unbreakable (Неразбивающийся) — элемент останется целым;
  •  Keystone (Основа) — если импульс в момент удара будет достаточен для того, чтобы элемент был разрушен, то разломается все тело;
  •  Break at time (Разбить в указанное время) — элемент будет разрушен в указанное пользователем время.



Рис. 4.93. Кнопка Create Fracture (Разрушить) на панели инструментов reactor



Рис. 4.94. Свиток Properties (Свойства) настроек вспомогательного объекта Fracture (Разрушение)


Основные параметры разбиения — это Impulse (Импульс соударения) и Energy Loss (Потеря энергии), характеризующий величину потери энергии при ударе. Укажем для всех элементов вариант разбиения Normal (Обычный), остальные настройки оставим по умолчанию. Каждому элементу табурета необходимо задать массу 11 кг. Для этого необходимо выделить объект, перейти на вкладку Utilities (Утилиты) командной панели и нажать кнопку reactor. Затем в свитке Properties (Свойства) указать значение параметра Mass (Масса объекта).

ПРИМЕЧАНИЕ

В 3ds max 7 довольно часто встречаются физические величины. На первый взгляд, это усложняет работу, потому что не всегда на глаз можно определить, например, коэффициент трения или величину потерь энергии при ударе. Однако, с другой стороны, появляется возможность точно описать физическую задачу.



Перейдите к свитку Preview & Animation (Предварительный просмотр и анимация). В процессе работы над сложной сценой удобно использовать команду Preview in Window (Предварительный просмотр в оконном режиме). При ее выполнении появляется окно, внутри которого будет аппаратно визуализирован первый кадр (рис. 4.95). Чтобы проиграть анимацию, нужно в раскрывающемся списке Simulation (Имитация) выбрать строку Play/Pause (Проиграть/Пауза). Здесь же можно указать прорисовку сетчатой поверхности для каждого объекта, по которой модуль просчитывает взаимодействия.



Рис. 4.95. Окно reactor Real-Time Preview (Предварительный просмотр в реальном времени)


Если результат, который вы видите в окне предварительного просмотра, вас устраивает, нажмите кнопку Create Animation (Создание анимации). Если же в свитке Utils (Утилиты) установлен флажок Analyze Before Simulation (Проанализировать перед просчетом), то программа сначала проведет анализ задачи и, если ошибок не будет, начнет просчет. В противном случае она выдаст сообщение, например, о том, что тело не относится к группе Soft Body Collection (Группа гибких тел) (см. рис. 4.85).

При отсутствии ошибок программа начнет просчет анимационной сцены. Если в свитке Preview & Animation (Предварительный просмотр и анимация) установлен флажок Update Viewports (Обновлять вид в окнах проекций), то на протяжении просчета вы сможете наблюдать изменение положения объектов в сцене. После обработки данных можно будет воспроизвести анимацию. Полученная анимация будет выглядеть следующим образом: табуретка летит, падает на плоскость и разбивается.

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



Долгое время программа 3ds max имела большой недостаток — в ней отсутствовало средство имитации ткани. С появлением модуля reactor эта задача стала решаться быстро и просто. В этом примере рассмотрим создание сцены, в которой стол будет покрываться скатертью.

Сначала смоделируем стол. Создайте в окне проекции стандартный примитив Box (Параллелепипед). Перейдите на вкладку Modify (Изменение) командной панели и в настройках параллелепипеда укажите следующие значения параметров: Length (Длина) - 100 и Width (Ширина) - 100, Height (Высота) - 5, Length Segs (Количество сегментов по длине) — 11, Width Segs (Количество сегментов по ширине) — 11, Height Segs (Количество сегментов по высоте) — 1 (рис. 4.96).

Щелкните правой кнопкой мыши на названии окна проекции и в контекстном меню выберите режим отображения объектов Edged Faces (Контуры граней). В этом режиме будет видна сетчатая оболочка объекта, что необходимо для выполнения дальнейших операций с примитивом Box (Параллелепипед).

Чтобы в дальнейшем можно было изменять форму полусферы, конвертируйте объект в Editable Mesh (Редактируемая поверхность). Для этого щелкните правой кнопкой мыши на объекте и выполните команду Convert To > Convert to Editable Mesh (Преобразовать > Преобразовать в редактируемую поверхность) (рис. 4.97).

Перейдите на вкладку Modify (Изменение) командной панели. Раскройте строку Editable Mesh (Редактируемая поверхность) в стеке модификаторов, щелкнув на плюсике, и переключитесь в режим редактирования Polygon (Полигон).



Рис. 4.96. Настройки объекта Box (Параллелепипед)


Выделите четыре полигона, как показано на рис. 4.98, при этом они станут красными.

Щелкните на кнопке Extrude (Выдавливание) в свитке Edit Polygons (Редактирование полигонов) настроек объекта на командной панели или выберите команду Extrude Polygons (Выдавливание полигонов) в контекстном меню и выдавите полигоны на некоторое расстояние, чтобы у стола появились ножки (рис. 4.99).

Выйдите из режима редактирования Polygon (Полигон).

При помощи операции Rotate (Вращение) поверните объект вокруг оси X на 180°, чтобы ножки были направлены вниз.

Создайте в окне проекции стандартный примитив Plane (Плоскость). Перейдите на вкладку Modify (Изменение) командной панели и в настройках плоскости укажите следующие значения параметров: Length (Длина) — 150 и Width (Ширина) — 150, Length Segs (Количество сегментов по длине) — 28, Width Segs (Количество сегментов по ширине) — 28 (рис. 4.100).



Рис. 4.97. Выбор команды Convert To > Convert to Editable Mesh (Преобразовать > Преобразовать в редактируемую поверхность) в контекстном меню



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



Рис. 4.99. Ножки стола



Рис. 4.100. Настройки объекта Plane (Плоскость)



Рис. 4.101. Размещение объектов в сцене



Рис. 4.102. Кнопка Create Deforming Mesh Collection (Создать группу объектов, деформирующих поверхность) на панели инструментов reactor



Рис. 4.103. Настройки вспомогательного объекта Deforming Mesh Collection (Группа объектов, деформирующих поверхность)


Разместите созданную плоскость относительно стола таким образом, чтобы она была выровнена в плоскости XY по центру стола и размещалась над ним (рис. 4.101).

Затем выделите стол и нажмите кнопку Create Deforming Mesh Collection (Создать группу объектов, деформирующих поверхность) на панели инструментов reactor (рис. 4.102).

В настройках этой группы вы увидите, что стол занесен в нее (рис. 4.103).

Выделите плоскость, перейдите на вкладку Modify (Изменение) командной панели и выберите из списка Modifier List (Список модификаторов) модификатор reactor Cloth.

В настройках модификатора укажите значение параметра Friction (Трение) равным 2, а также установите флажок Avoid Self-Intersections (Избегать внутренних пересечений), что позволит получить трехмерную поверхность ткани, которая при деформации не будет пересекать сама себя (рис. 4.104).

СОВЕТ

Вы также можете применить к объекту модификатор reactor Cloth, нажав кнопку Apply reactor Cloth Modifier (Применить модификатор reactor Cloth) на панели инструментов reactor.



Выделите плоскость и нажмите кнопку Create Cloth Collection (Создать группу объектов, имитирующих ткань) на панели инструментов reactor (рис. 4.105).

В настройках этой группы вы увидите, что плоскость занесена в нее (рис. 4.106).

Выделите все элементы стола. Перейдите на вкладку Utilities (Утилиты) командной панели и нажмите кнопку reactor.

В свитке Properties (Свойства) установите значение параметра Friction (Трение) равным 5.

В свитке Preview & Animation (Предварительный просмотр и анимация) нажмите кнопку Create Animation (Создание анимации).

Если в свитке Utils (Утилиты) установлен флажок Analyze Before Simulation (Проанализировать перед просчетом), то программа сначала проанализирует задачу и, если ошибок не будет, начнет просчет.

В противном случае она выдаст сообщение, например, о том, что тело не относится к группе Cloth Collection (Группа объектов, имитирующих ткань).

При отсутствии ошибок программа начнет просчет анимационной сцены.

Если в свитке Preview & Animation (Предварительный просмотр и анимация) установить флажок Update Viewports (Обновлять вид в окнах проекций), то на протяжении просчета вы сможете наблюдать изменение положения объектов в сцене.

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



Рис. 4.104. Настройки модификатора reactor Cloth



Рис. 4.105. Кнопка Create Cloth Collection (Создать группу объектов, имитирующих ткань) на панели инструментов reactor



Рис. 4.106. Настройки вспомогательного объекта Cloth Collection (Группа объектов, имитирующих ткань)



Рис. 4.107. Результат просчета сцены при помощи модуля reactor 2


Подведем итоги урока — в этом уроке вы научились:

  •  создавать коллекции тел;
  •  заносить объекты в коллекции тел;
  •  устанавливать настройки объектов, занесенных в коллекции, а также в список тел, подвергающихся воздействию вспомогательного объекта типа Fracture (Разрушение);
  •  работать с объектами типа Rigid Bodies (Твердые тела), Soft Bodies (Гибкие тела), Deforming Mesh (Объекты, деформирующие поверхность), Cloth (Объекты, имитирующие ткань), со вспомогательными объектами типа Fracture (Разрушение) и объемной деформацией Water (Вода);
  •  использовать модификаторы FFD 4x4x4, reactor SoftBody и reactor Cloth;
  •  применять панель инструментов reactor;
  •  использовать опцию Preview in Window (Предварительный просмотр в оконном режиме);
  •  просчитывать динамические сцены при помощи модуля reactor;
  •  связывать объекты с объемными деформациями, используя кнопку Bind to SpaceWarp (Связать объемной деформацией).


Вы также закрепили свои навыки, которые касаются:

  •  применения к объектам модификаторов;
  •  установки настроек модификаторов;
  •  конвертирования объектов в Editable Mesh (Редактируемая поверхность);
  •  работы в режиме редактирования Polygon (Полигон);
  •  выделения полигонов;
  •  использования для редактирования полигонов инструмента Extrude (Выдавливание).

Назад Начало