? Модуль reactor – это модуль, разработанный фирмой Havok. Он предназначен для расчета и моделирования физических взаимодействий. В отличие от традиционной анимации, при которой необходимо вручную создавать состояния объектов в ключевых кадрах, модуль reactor определяет движения объектов, базируясь на их свойствах. Это позволяет разгрузить пользователя 3ds Max от монотонной работы по созданию множества ключевых кадров. Используя физические взаимодействия и свойства (например, масса, эластичность, трение и т. д.), объекты сцены могут взаимодействовать с внешними силами (гравитация, ветер и т. д.) и (или) ограничителями (такими, как сила пружины). Модуль reactor использует всю эту информацию и рассчитывает последовательность состояний объекта. Результат расчета может быть показан в виде анимации в реальном времени (если позволяют возможности аппаратного обеспечения) либо преобразован в ключевые кадры для воспроизведения в сцене.
В данной главе мы рассмотрим несколько простых примеров, которые дают общее представление о работе с модулем reactor.
Кроме того, эта глава содержит практические задания, в которых описывается работа с модулем Hair and Fur, предназначенным для создания волос и шерсти, а также с модулем Cloth, который позволяет создать имитацию ткани.
7.2. Практическое задание. Стелем скатерть
Разработчики компьютерной графики рано или поздно сталкиваются с моделированием интерьера. Можно потратить много времени на создание моделей мебели и предметов быта, но изображение не будет выглядеть реалистичным без добавления мелких деталей. Одной из таких деталей может быть скатерть на столе или легкие шторы, которые колышутся от ветра. Попробуем выполнить эти предметы при помощи модуля reactor.
Первое, что вам понадобится, – модели, с которыми предстоит работать. Для этого постройте простую модель стола и скатерть. В качестве стола используйте примитив Cylinder (Цилиндр) радиусом 600 мм и высотой 30 мм с количеством сторон от 20 до 40. Для скатерти подойдет примитив Plane (Плоскость) с размерами 1500 x 1500 и количеством сегментов по длине и ширине, равным 30.
ВНИМАНИЕ
Желательно, чтобы объекты, которые будут играть роль тканей, имели не больше 3000 полигонов, иначе возможны сбои в работе модуля.
Скатерть должна иметь больший размер, чем стол (чтобы покрыть его), и достаточно большую плотность сетки (чтобы складки, образованные свободно свисающими краями, выглядели естественными). Расположите эти два объекта так, чтобы скатерть находилась немного выше стола и отображалась в окне проекции Top (Сверху) ровно посередине его. На рис. 7.1 показаны объекты в окне проекции Perspective (Перспектива).
Теперь нужно указать программе, в роли каких тел взаимодействия будут выступать объекты. Для этого выполните следующие действия.
1. На вкладке Create (Создание) командной панели щелкните на кнопке Helpers (Вспомогательные объекты)
и выберите в раскрывающемся списке разновидностей объектов строку reactor.
2. Нажмите кнопку RBCollection (Коллекция твердых тел) и затем в любом окне проекции щелкните для создания коллекции твердых тел (положение и размер значка значения не имеют).
3. Добавьте в сцену коллекцию тканей, к которой будет относиться скатерть, для чего нажмите кнопку CLCollection (Коллекция тканей) и также щелкните в производном месте любого окна проекции.
В результате в окнах проекций появятся два значка, представляющие коллекции твердых тел и тканей (рис. 7.2).
Рис. 7.1. Модели стола и скатерти, подготовленные для просчета динамики
Рис. 7.2. Сцена со значками коллекций твердых тел и тканей
Для добавления в коллекцию твердых тел модели стола выделите в окне проекции значок RBCollection (Коллекция твердых тел) и нажмите кнопку Pick (Выбрать) в свитке RB Collection Properties (Свойства коллекции твердых тел) на вкладке Modify (Изменение) командной панели. Активизировав кнопку, щелкните на модели стола в любом окне проекции, в результате чего имя объекта добавится в список твердых тел.
Чтобы добавить скатерть к списку тканей, выделите в окне проекции объект Plane (Плоскость), раскройте на вкладке Modify (Изменение) командной панели список модификаторов и выберите reactor Cloth (Ткань reactor). В свитке Properties (Свойства) настроек модификатора reactor Cloth (Ткань reactor) установите переключатель Force Model (Модель) в положение Complex Force Model (Составная модель). Параметру Damping (Затухание) задайте значение, равное 0,01. Щелкните на значке ClCollection (Коллекция тканей) в окне проекции. В свитке Properties (Свойства) вкладки Modify (Изменение) командной панели щелкните на кнопке Pick (Выбрать) и выберите в окне проекции скатерть.
Теперь можно приступать к просчету анимации. Для этого перейдите на вкладку Utilities (Утилиты) командной панели и щелкните на кнопке reactor.ПРИМЕЧАНИЕ
Если в списке утилит нет кнопки reactor, то щелкните на кнопке More (Дополнительно) в свитке Utilities (Утилиты), в результате чего откроется окно диалога Utilities (Утилиты), где в списке утилит выберите reactor.
Чтобы посмотреть предварительную анимацию, нажмите в свитке Preview & Animation (Просмотр и анимация) кнопку Preview in Window (Предварительный просмотр). Модуль проанализирует все настройки и, если ошибок нет, запустит предварительный просмотр, при котором откроется окно reactor Real-Time Preview (Окно предварительного просмотра reactor). После нажатия клавиши P в этом окне начнет воспроизводиться анимация. Вы можете проанализировать полученный результат и, если вас что-то не устраивает, попробовать изменить какие-либо настройки.
Если все в порядке, то в свитке Preview & Animation (Просмотр и анимация) щелкните на кнопке Create Animation (Создать анимацию). Появится предупреждение о том, что данное действие нельзя отменить. Щелкните в данном окне на кнопке OK. В результате запустится просчет динамики, и скатерть опустится на стол (рис. 7.3).
Если в настройках утилиты reactor установлен флажок Update Viewports (Обновлять окна проекций), то вы будете видеть результат в ходе просчета динамики. Чтобы посмотреть выполненную анимацию после просчета, нажмите кнопку Play Animation (Воспроизвести анимацию).
Рис. 7.3. Скатерть, уложенная на стол при помощи модуля reactor
ПРИМЕЧАНИЕ
На прилагаемом к книге DVD в папке Examples\Глава 07\Cloth находится файл сцены Cloth.max. В папке Video\Глава 07 содержится анимационный ролик Cloth.avi с динамикой скатерти.
7.3. Практическое задание. Развешиваем шторы
Еще одной замечательной особенностью тканей в 3ds Max является их способность взаимодействовать с объектом типа Wind (Ветер). Используя его, можно смоделировать штору, развевающуюся у открытого окна.
Вы можете создать сцену, состоящую из небольшого участка стены с окном и шторы, подвешенной к карнизу, или воспользоваться файлом curtain_start.max, который находится в папке Examples\Глава 07\Сurtain прилагаемого к книге DVD (рис. 7.4).
Рис. 7.4. Шторы, подготовленные для взаимодействия с модулем reactor
Как и в предыдущем случае, для просчета динамики ткани в первую очередь нужно назначить двум объектам Plane (Плоскость), которые имитируют шторы, модификатор reactor Cloth (Ткань reactor) и настроить его. Для этого выполните следующие действия.
1. Выделите в окне проекции одну штору, после чего на вкладке Modify (Изменение) командной панели выберите из списка модификаторов reactor Cloth (Ткань reactor).
2. Щелкните на плюсике рядом с именем модификатора в стеке и выделите строку Vertex (Вершина), чтобы переключиться в режим редактирования вершин.
3. Выделите в шторах верхний ряд вершин и в свитке Constraints (Ограничения) щелкните на кнопке Fix Vertices (Зафиксировать вершины). В результате верхний ряд вершин окажется вне зоны действия модуля reactor и прикрепится к карнизу.
4. В свитке Properties (Свойства) задайте параметру Mass (Вес) значение 0,5.
5. Повторите действия, описанные в пп. 1–4 для второй шторы.
Далее необходимо добавить в сцену значки коллекции тканей и ветра, который будет раздувать шторы. Для этого выполните следующие действия.
1. На вкладке Create (Создание) командной панели щелкните на кнопке Helpers (Вспомогательные объекты)
и выберите из раскрывающегося списка разновидностей объектов строку reactor.
2. Нажмите кнопку CLCollection (Коллекция тканей), затем щелкните в любом месте окна проекции для создания коллекции тканей (положение и размер значка не имеют значения).
3. Для добавления одной шторы в коллекцию тканей перейдите на вкладку Modify (Изменение) командной панели, в свитке Properties (Свойства) нажмите кнопку Pick (Выбрать) и щелкните в окне проекции на шторе. Повторите данные действия для второй шторы.
4. Вернитесь на вкладку Create (Создание) командной панели и щелкните на кнопке Helpers (Вспомогательные объекты). Для добавления в сцену ветра нажмите кнопку Wind (Ветер), а затем щелкните в окне проекции Left (Слева) позади стены с оконным проемом. Обратите внимание на положение стрелки в значке: она определяет направление ветра и должна указывать на шторы.
5. В свитке Properties (Свойства) настроек объекта Wind (Ветер) установите флажок Wind On (Включить ветер). Установите также флажок Ripple (Рябь), а переключатель данной области – в положение Left/Right (Слева/направо). Это заставит колыхаться шторы из стороны в сторону, что добавит динамике реализма.
В результате в окнах проекций появятся значок коллекции тканей и значок ветра (рис. 7.5).
Теперь нужно запустить просчет динамики. Для этого щелкните на кнопке Utilities (Утилиты) командной панели и далее на кнопке reactor. В свитке Preview