Эффективная работа в 3dsmax7.5


         

Деформируемые тела



Деформируемые тела

Деформируемые тела подразделяются на мягкие тела, ткани, нити и деформируемые сетки.

Мягкие тела (soft bodies) при столкновениях также не проникают друг сквозь друга и сквозь жесткие тела, но при этом деформируются, стремясь восстановить свою форму. Мягкие тела обладают средствами настройки таких физических свойств, как масса, жесткость, демпфирование, влияющее на скорость затухания упругих колебаний, и коэффициент трения. Ткань (cloth) — это двумерное деформируемое тело, имеющее длину и ширину, но не имеющее толщины и объема, а нить (rope) — это одномерное деформируемое тело, имеющее длину, но не имеющее объема. Если ткань или нить под действием силы тяжести падают на жесткие или деформируемые тела, они не проникают сквозь них, а реалистично изгибаются, не разрываясь, и могут соскальзывать. Модуль reactor (Реактор) позволяет также имитировать реалистичную деформацию тканей и нитей под действием порывов ветра. Для тканей можно задавать такие физические свойства, как масса, относительная плотность, коэффициенты трения и сопротивления воздуха. Для нитей можно задавать такие физические свойства, как масса, кажущаяся толщина, коэффициенты трения и сопротивления воздуха. Ткани и нити можно прикреплять к жестким телам. Можно также фиксировать отдельные вершины сетки, имитирующей ткань, или сплайна, имитирующего нить. Деформируемая сетка (deformable mesh) — это трехмерный объект, вершины сетчатой оболочки которого уже имеют анимацию па момент начала имитационного моделирования средствами модуля reactor (Реактор). В частности, к разряду деформируемых сеток могут относиться сетки тел трехмерных персонажей, к которым применены средства скелетной деформации с использованием модификатора Skin (Оболочка).



Добавление объектов сцены в коллекцию





Добавление объектов сцены в коллекцию

Чтобы добавить объекты геометрической модели в состав той или иной коллекции, следует выделить ее значок и переключиться на командную панель Modify (Изменить). На панели появятся свитки Properties (Свойства) и Advanced (Дополнительно) (рис. 17.5). Только для коллекции жестких тел первый из свитков называется не Properties (Свойства), a RB Collection Properties (Свойства коллекции жестких тел). Состав инструментов свитка Properties (Свойства) одинаков для всех типов коллекций, а состав параметров свитка Advanced (Дополнительно) для разных коллекций меняется.



Постигаем основы динамики



Глава 17 Постигаем основы динамики

Имитация динамики жестких тел модулем reactor (Реактор) Деформация ткани на препятствии Привязка ткани к жесткому телу Использование инструментов модуля Cloth (Ткань) для имитации поведения ткани

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

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



Имитация тканей модулем reactor



Имитация тканей модулем reactor

Ткани, как и мягкие тела, являются разновидностью деформируемых тел, которые можно моделировать средствами модуля reactor (Реактор). С помощью тканей можно имитировать развевающиеся на ветру флаги, колышущиеся занавеси или, скажем, плащ персонажа.

В программе max 7.5 для моделирования ткани используют примитив Plane (Плоскость).

Чтобы освоить методы имитации тканей, рассмотрим несколько примеров.



Интерактивное окно предварительного просмотра а



Интерактивное окно предварительного просмотра а

Интерактивное окно предварительного просмотра анимаций (рис. 17.6) вызывается щелчком на кнопке Preview in Window (Просмотреть в окне) в свитке Preview & Animation (Просмотр и анимация), появляющемся на командной панели Utilities (Утилиты) после запуска утилиты reactor (Реактор). Вызвать появление этого окна можно также, выполнив команду Preview Animation (Просмотреть анимацию) меню reactor (Реактор) или щелкнув на кнопке Preview Animation (Просмотреть анимацию) панели инструментов reactor (Реактор).



Жесткие тела



Жесткие тела

Жесткие тела при столкновениях не проникают друг сквозь друга и не деформируются, а соударяются с возможным последующим отскоком или проскальзыванием одного тела относительно другого. Можно также имитировать разрушение жестких тел при столкновении. Жесткие тела требуют настройки таких физических свойств, как масса, коэффициент трения и эластичность. Если масса жесткого тела задается равной нулю, то такое жесткое тело считается неподвижным и на него не действует сила тяжести. Можно ограничить свободу перемещения или поворота жестких тел при помощи вспомогательных объектов-ограничителей (constraints). Простые жесткие тела можно объединять в составные (compound bodies).



Классификация объектов модуля reactor



Классификация объектов модуля reactor

Все объекты реального мира, которые можно имитировать при помощи модуля reactor (Реактор), делятся на жесткие тела (rigid bodies), деформируемые тела (deformable bodies) и воду (water). Как на жесткие, так и на деформируемые тела по умолчанию действует сила тяжести, заставляющая их падать вертикально вниз, если у них нет опоры или они не закреплены в пространстве.



Меню reactor



Меню reactor

Меню reactor (Реактор) (рис. 17.3), включает следующие команды:



Модификаторы



Модификаторы

В составе модуля reactor (Реактор) имеются три модификатора: reactor Clothe (Реактор: Ткань), reactor Rope (Реактор: Нить) и reactor SoftBody (реактор: Мягкое тело). Их можно найти в списке модификаторов командной панели Modify (Изменить). Для применения данных модификаторов к объектам можно также использовать команды подменю Apply Modifier (Применить модификатор) меню reactor (Реактор) и кнопки панели инструментов reactor (Реактор).



Объемная деформация water



Объемная деформация water

Для доступа к инструменту создания объемной деформации Water (Вода) можно щелкнуть на кнопке Space Warps (Объемные деформации) командной панели Create (Создать) и выбрать в раскрывающемся списке строку reactor (Реактор). В появляющемся после этого свитке Object Type (Тип объекта) имеется единственная кнопка Water (Вода). Для создания этой объемной деформации можно также использовать команду меню reactor (Реактор) и кнопку панели инструментов reactor (Реактор).



Общие действия по созданию анимаций с помощью м



Общие действия по созданию анимаций с помощью м

Чтобы создать анимацию с использованием модуля reactor (Реактор), необходимо в общем случае выполнить следующие действия:

1. Создайте геометрическую модель трехмерной сцены. Следует иметь в виду, что единственной силой, действующей на объекты по умолчанию, является сила тяжести. Поэтому, чтобы получить при имитации динамики модулем reactor (Реактор) какое-то действие в сцене, необходимо располагать объекты в состоянии неустойчивого равновесия. Например, приподнять часть объектов над плоскостью опорной поверхности или наклонить их так, чтобы они начали падать, поместить объекты на наклонной плоскости, чтобы они начали скользить и т. п. При необходимости настройте предварительную анимацию объектов традиционными средствами. Например, придайте объектам сцены, которые должны столкнуться, поступательное движение. Добавьте в состав сцепы хотя бы одну камеру и осветители и настройте их положение и ориентацию.

2.   При необходимости смоделировать мягкие тела, ткани и нити примените к объектам, которые должны изображать такие деформируемые тела, модификаторы reactor SoftBody (Реактор: Мягкое тело), reactor Clothe (Реактор: Ткань) и reactor Rope (Реактор: Нить).

3.   Добавьте в состав сцены вспомогательные объекты-коллекции в соответствии с тем, тела каких типов вы собираетесь имитировать. Например, если в составе сцены будут только жесткие тела, добавьте только вспомогательный объект Rigid Body Collection (Коллекция жестких тел). Если в составе сцены будут жесткие тела и ткани, добавьте коллекции Rigid Body Collection (Коллекция жестких тел) и Cloth Collection (Коллекция тканей) и т. п. Поместите объекты геометрической модели сцены в списки соответствующих коллекций.

4.   При необходимости добавьте в состав сцены простые или объединенные ограничители. Укажите для каждого из ограничителей объекты сцены, на которые они будут действовать. Если в состав сцены будут включены объединенные ограничители, добавьте еще вспомогательный объект Constraint Solver (Решение ограничений). В список этого объекта на панели Modify (Изменить) поместите имена всех объединенных ограничителей сцены. С помощью кнопки RB Collection (Коллекция жестких тел) укажите данному решению на имеющуюся в составе сцены коллекцию жестких тел.

5.   Переключитесь на командную панель Utilities (Утилиты) и запустите утилиту reactor (Реактор). Настройте индивидуальные физические свойства каждого из объектов сцены, которые должны будут играть роль жестких тел, используя свиток Properties (Свойства) этой утилиты, показанный на рис. 17.7. С той же целью можно использовать окно диалога Rigid Body Properties (Свойства жестких тел), вызываемое по команде меню reactor > Open Property Editor (Реактор > Открыть Редактор свойств) или щелчком на кнопке с таким же названием панели инструментов reactor (Реактор). Группа параметров Physical Properties (Физические свойства) свитка Properties (Свойства) утилиты reactor (Реактор) позволяет настроить следующие свойства жестких тел:



Панель инструментов reactor



Панель инструментов reactor

Панель инструментов reactor (Реактор) по умолчанию располагается на экране вертикально вдоль его левого края.

Все кнопки панели дублируют соответствующие инструменты панели Create (Создать) и команды меню reactor (Реактор). Назначение отдельных кнопок будем рассматривать по мере необходимости.



Перечень ограничителей



Перечень ограничителей

Все ограничители модуля reactor (Реактор) делятся на простые и объединенные. Приводимые далее описания каждого ограничителя сопровождаются изображениями значков кнопок панели инструментов reactor (Реактор), предназначенных для создания данных вспомогательных объектов.

В число простых ограничителей (simple constraints) входят:

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

Linear Dashpot (Линейный демпфер) — позволяет связать два жестких тела между собой или одно из жестких тел с определенной точкой пространства упругой связью, похожей но действию на автомобильный амортизатор. Назначение этой связи — гасить колебания, которые могут возникать в системе связанных объектов. Связанные тела сохраняют свободу вращения относительно точек привязки;

Angular Dashpot (Угловой демпфер) — позволяет зафиксировать относительную ориентацию двух жестких тел или абсолютную ориентацию одного тела в пространстве с помощью упругой связи.

В число объединенных ограничителей (cooperative constraints) входят:

Rag Doll Constraint (Ограничитель Марионетка) — этот ограничитель позволяет объединить воедино отдельные части тела компьютерного персонажа, такие как кисть, предплечье, плечо, туловище, бедро, голень и т. п., задав допустимые углы сгиба сочленений этих частей. Полученный персонаж может играть роль куклы-марионетки или тряпичной куклы, которая, к примеру, будучи брошенной на пол, может демонстрировать правдоподобные движения рук и ног;

Hinge Constraint (Ограничитель Дверная петля) — позволяет объединить два жестких тела так, чтобы одно из них поворачивалось относительно другого как дверь относительно косяка, или ограничить ось поворота единственного жесткого тела;

Point-to-Point (Ограничитель Точка-точка) — позволяет соединить два жестких тела невидимой нитью или привязать одно жесткое тело к заданной точке трехмерного пространства. Связанные тела могут свободно вращаться одно относительно другого. За счет настройки связи можно ограничить сектор допустимых поворотов тел относительно точки привязки или сделать связь подобием жесткой сцепки, не позволяющей телам сближаться;

Prismatic Constraint (Ограничитель Скольжение) — позволяет ограничить перемещение одного жесткого тела относительно другого или перемещение единственного жесткого тела в трехмерном пространстве только одной заданной осью координат. Фактически это позволяет создать скользящее сочленение двух жестких тел;

Car-Wheel Constraint (Ограничитель Машина-колесо) — позволяет прикрепить жесткое тело, изображающее колесо, к другому жесткому телу, изображающему, например, автомобильный кузов;

Point-to-Path Constraint (Ограничитель Точка-путь) — позволяет связать два жестких тела так, что дочернее из них будет перемещаться относительно родительского по заданной линии траектории.

Если в состав сцены добавляются один или несколько объединенных ограничителей, то должен быть добавлен также вспомогательный объект Constraint Solver (Решение ограничений). В список, имеющийся у этого объекта на панели Modify (Изменить), помещаются имена всех объединенных ограничителей сцены. Кроме того, с помощью кнопки RB Collection (Коллекция жестких тел) данному решению необходимо указать имеющуюся в составе сцены коллекцию жестких тел.

Подробное ознакомление со всеми параметрами ограничителей выходит за рамки данного издания. При необходимости обращайтесь к справочной системе 3ds max.



Подведем окончательные итоги



Подведем окончательные итоги

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

модуль reactor (Реактор) работает с твердыми телами, водой, а также деформируемыми телами разных типов — тканью, деформируемой сеткой, мягкими телами. Объекты одного типа объединяются в коллекции; доступ к инструментам модуля reactor (Реактор) можно получить как при помощи одноименной панели инструментов, расположенной в левой части окна 3ds max, так и используя командную панель или меню reactor (Реактор); поскольку просчет результатов взаимодействия объектов может занять достаточно много времени, в модуле reactor (Реактор) предусмотрено окно предварительного просмотра, которое помогает оценить точность выбранных параметров и не требует затрат времени на просчет; для того чтобы заставить одно жесткое тело упасть на другое, необходимо задать для него массу, отличную от нуля. При нулевой массе тело будет оставаться неподвижным. Выбор значения массы, равно как и многих других физических параметров, осуществляется в настройках утилиты reactor (Реактор), вызов которой осуществляется при помощи командной панели Utilities (Утилиты); при помощи модуля reactor (Реактор) можно создавать различные взаимодействия ткани с твердыми телами, например набрасывать ткань на стол или создавать занавесь, прикрепленную к кольцам карниза; перед началом просчета анимации в модуле reactor (Реактор) нужно обязательно проверить правильность выбранных настроек, а также не забыть сохранить копию сцены с инкрементированием имени. После выполнения просчета возвратиться на предыдущий этап создания сцены будет невозможно; несмотря на то что основное предназначение модуля Cloth (Ткань) — создание одежды для трехмерных персонажей, его можно использовать и для других сцен, в которых необходимо смоделировать поведение ткани, например для анимации флага, развевающегося на ветру; модуль Cloth (Ткань), в отличие от reactor (Реактор), не работает с твердыми телами. Для обозначения объектов, взаимодействующих с тканью, используется специальный тип объекта — Collision Object (Объект столкновения).

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

Вот и подошла к концу наша книга из 17 глав. Разрешите поздравить вас с приобщением к славному сообществу ценителей и знатоков программы max 7.5!

Разумеется, очень многие возможности max 7.5 остались за пределами нашей книги. А что уж говорить о целом море совсем не затронутых нами модулей расширения, благодаря которым возможности этой программы становятся поистине безграничными... Пусть вас это не смущает: мало найдется людей, которые могли бы сказать: «Я знаю все о 3ds max». Будем считать, что цель нашей книги достигнута, если у вас после ее прочтения возникло желание самостоятельно расширить свои познания о трехмерной графике и анимации, а также определенная уверенность в том, что вы сумеете это сделать. Заранее благодарю всех читателей, которые сочтут возможным прислать свои замечания по существу описанных в книге материалов, а также обнаруженные ими ошибки или несообразности в работе программы max 7.5, по адресу marov@piter.com.

Желаю успехов!



Понятие коллекций модуля reactor



Понятие коллекций модуля reactor

Чтобы придать тому или иному объекту геометрической модели трехмерной сцены свойства жесткого или деформируемого тела, необходимо включить его в список тел соответствующего типа, называемый коллекцией {collection). Чтобы, в свою очередь, получить возможность сформировать коллекцию, необходимо добавить в состав сцены один из следующих вспомогательных объектов модуля reactor (Реактор): Rigid Body Collection (Коллекция жестких тел), Soft Body Collection (Коллекция мягких тел), Cloth Collection (Коллекция тканей), Rope Collection (Коллекция нитей) или Deformable Mesh Collection (Коллекция деформируемых сеток).

В коллекции Rigid Body Collection (Коллекция жестких тел) и Deformable Mesh Collection (Коллекция деформируемых сеток) могут быть помещены любые объекты геометрической модели трехмерной сцены, представляющие собой объемные тела, а также линии-сплайны (NURBS-кривые для этого не годятся).

В коллекцию Soft Body Collection (Коллекция мягких тел) могут быть помещены только объекты геометрической модели, к которым применен модификатор reactor (Реактор) Soft Body (Реактор: Мягкое тело).

В коллекцию Cloth Collection (Коллекция тканей) допускается помещать только объекты, к которым применен модификатор reactor Cloth (Реактор: Ткань).

В коллекцию Rope Collection (Коллекция нитей) допускается помещать только объекты, к которым применен модификатор reactor Rope (Реактор: Нить). В качестве нитей могут использоваться только сплайны-линии (NURBS-кривые для этого не годятся).



Понятие ограничителей модуля reactor



Понятие ограничителей модуля reactor

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

Ограничители создаются в составе трехмерной сцены в виде значков. Как и в случае с коллекциями, положение значков ограничителей в составе сцены на момент создания не имеет значения.

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



Свиток Object Type...



Рис. 17.1. Свиток Object Type командной панели Create с инструментами для создания вспомогательных объектов модуля reactor

Рис. 17.1. Свиток Object Type командной панели Create с инструментами для создания вспомогательных объектов модуля reactor

Если заранее выделить объекты геометрической модели сцены, которые должны быть поставлены в соответствие вспомогательному объекту модуля reactor (Реактор), то значок вспомогательного объекта создается автоматически сразу же после выбора нужной команды подменю Create Object (Создать объект) меню reactor (Реактор) или после щелчка на нужной кнопке панели инструментов reactor (Реактор).

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

Значки всех вспомогательных объектов модуля reactor (Реактор) в окнах проекций max 7.5 выглядят как символическое изображение с соответствующей кнопки панели инструментов reactor (Реактор), заключенное в круглую рамку. Такие значки не являются визуализируемыми объектами и не включаются в изображение трехмерной сцены, формируемое в ходе визуализации.



Свитки параметров модуля...



Рис. 17.2. Свитки параметров модуля reactor на командной панели Utilities

Рис. 17.2. Свитки параметров модуля reactor на командной панели Utilities



Меню reactor располагается...



Рис. 17.3. Меню reactor располагается в строке основного меню max 7.5

Рис. 17.3. Меню reactor располагается в строке основного меню max 7.5

Create Object (Создать объект) — вызывает подменю с командами создания вспомогательных объектов модуля reactor (Реактор). Все команды этого подменю являются дубликатами соответствующих кнопок свитка Object Type (Тип объекта), относящегося к категории Helpers (Вспомогательные объекты) командной панели. Дополнительно в меню входит команда Water (Вода), являющаяся дубликатом аналогичной кнопки из свитка Object Type (Тип объекта), относящегося к категории Space Warps (Объемные деформации) командной панели Create (Создать);

Apply Modifier (Применить модификатор) — вызывает подменю с командами выбора одного из трех модификаторов модуля reactor (Реактор): Clothe Modifier (Модификатор Ткань), Rope Modifier (Модификатор Нить) и Soft Body Modifier (Модификатор Мягкое тело);

Open Property Editor (Открыть Редактор свойств) — вызывает окно диалога Rigid Body Properties (Свойства жестких тел) (рис. 17.4). Все элементы управления этого окна дублируют соответствующие элементы управления свитка Properties (Свойства), появляющегося на командной панели Utilities (Утилиты) после активизации утилиты reactor (Реактор) и будут рассматриваться по мере необходимости;



Окно диалога Rigid Body Properties модуля reactor



Рис. 17.4. Окно диалога Rigid Body Properties модуля reactor

Рис. 17.4. Окно диалога Rigid Body Properties модуля reactor

Utilities (Утилиты) — вызывает подменю с командами активизации утилит модуля reactor (Реактор). Команды этого подменю Analyze World (Анализировать реальность), Convexity Test (Тест на выпуклость). Reduce Keys (Selection) (Уменьшить число ключей (выделенных объектов)), Reduce Keys (All) (Уменьшить число ключей (всех объектов)), Delete Keys (Selection) (Удалить ключи (выделенных объектов)), Delete Keys (All) (Удалить ключи (всех объектов)) дублируют соответствующие кнопки свитка Utils (Утилиты) утилиты reactor (Реактор). Команда View Stored Collisions (Показать сохраненные столкновения) дублирует кнопку View (Показать) свитка Collisions (Столкновения). Назначение отдельных команд будет рассматриваться но мере необходимости;

Preview Animation (Просмотреть анимацию) — вызывает появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля Реактор), в котором можно предварительно просматривать настроенную анимацию. Подробнее об этом окне читайте далее в разделе «Интерактивное окно предварительного просмотра анимаций». Эта команда дублирует кнопку Preview in Window (Просмотреть в окне), которая есть в свитке Preview & Animation (Просмотр и анимация) командной панели Utilities (Утилиты);

Create Animation (Создать анимацию) — включает режим расчета ключей анимации объектов сцены средствами модуля reactor (Реактор).



Свитки Properties и Advanced коллекции мягких тел



Рис. 17.5. Свитки Properties и Advanced коллекции мягких тел

Рис. 17.5. Свитки Properties и Advanced коллекции мягких тел

Для добавления объектов геометрической модели в коллекцию по одному щелкните на кнопке Pick (Указать) свитка Properties (Свойства), а затем на нужном объекте, имя которого появится в списке. Курсор будет принимать вид крестика, означающего возможность добавить объект в коллекцию, только над теми объектами, которые по своим свойствам могут быть добавлены в состав данной коллекции.

Для добавления объектов списком щелкните на кнопке Add (Добавить) или после щелчка на кнопке Pick (Указать) нажмите клавишу h, чтобы вызвать типовое окно выделения объектов. В список будут помещены только те объекты геометрической модели сцены, которые по своим свойствам подходят для создаваемой коллекции.

Для удаления из списка объектов, ошибочно включенных в коллекцию, выделите их имена в списке свитка Properties (Свойства), а затем щелкните на кнопке Delete (Удалить).

Щелчок на кнопке Highlight (Показать) ведет к тому, что все объекты геометрической модели сцены, включенные в список коллекции, на короткое время будут выделены в окнах проекций.

Установка флажка Disabled (He активна) ведет к тому, что данная коллекция, а вместе с ней и все входящие в нее объекты, не будут включены в анимацию, создаваемую модулем reactor (Реактор).



Интерактивное окно...



Рис. 17.6. Интерактивное окно предварительного просмотра анимаций

Рис. 17.6. Интерактивное окно предварительного просмотра анимаций

Для управления просмотром анимации в окне используйте следующие средства:

чтобы начать просмотр анимации, временно приостановить и снова возобновить просмотр, выполните команду меню окна Simulation > Play/Pause (Имитация > Воспроизведение/Пауза) или просто нажмите клавишу Р; для полной остановки воспроизведения и восстановления исходного состояния сцены выполните команду Simulation > Reset (Имитация > Перезагрузка) или нажмите клавишу R; для изменения ракурса просмотра щелкните левой кнопкой мыши и перетаскивайте курсор вверх-вниз или вправо-влево по окну; для прокрутки изображения в окне щелкните средней кнопкой (колесиком) мыши и перетаскивайте курсор вверх-вниз или вправо-влево по окну; для изменения масштаба изображения крутите среднее колесико мыши.

Окно просмотра называется интерактивным, потому что позволяет воздействовать на объекты анимации. Щелкните на объекте правой кнопкой мыши и перетаскивайте курсор. В результате между объектом и курсором будет создана упругая связь, и вы сможете наблюдать результаты своего воздействия на объект в окне просмотра, если только объект не является неподвижным или не имеет ограничений по положению.



Свиток Properties утилиты...



Рис. 17.7. Свиток Properties утилиты reactor на командной панели Utilities

Рис. 17.7. Свиток Properties утилиты reactor на командной панели Utilities

Mass (Масса) — масса тела в килограммах. Если для жесткого тела указана нулевая масса, такое тело остается абсолютно неподвижным при анимации. Чтобы задавать массу тела не произвольно, а исходя из физических принципов, следует использовать величину плотности вещества. Перемножьте объем тела в кубических метрах на взятую из справочника по физике плотность в килограммах на кубический метр и получите массу тела в килограммах, которую и следует ввести в поле параметра Mass (Масса). Для измерения объема трехмерного тела установите в качестве единиц измерения метры, выделите тело и щелкните на кнопке Measure (Измерить) на командной панели Utilities (Утилиты). Прочитайте объем тела в строке параметра Volume (Объем);

Elasticity (Эластичность) — свойство, определяющее способность жестких тел к отскоку при столкновении. Меняется от 0 до 5. При столкновении двух жестких тел па результат влияют величины эластичности каждого из них;

Friction (Трение) — коэффициент трения. Меняется от 0 до 1. При скольжении одного жесткого тела по поверхности другого имеют значение величины коэффициента трения каждого из них.

Четыре флажка под счетчиками позволяют включать и выключать следующие свойства жестких тел:

Inactive (Неактивно) — установка этого флажка заставляет жесткое тело вступать в анимацию, рассчитываемую модулем reactor (Реактор), как неактивное. На такое тело не действуют сила тяжести, давление ветра или крутящий момент, даже если у него есть ненулевая масса, пока какие-то другие тела не вступят с ним в столкновение. После этого тело автоматически активизируется;

Disable All Collisions (Отменить все столкновения) — установка этого флажка исключает участие жесткого тела в столкновениях с другими телами, которые будут свободно проникать сквозь него;

Unyielding (Неподатливо) — этот флажок устанавливают для объектов, имеющих анимацию, созданную средствами программы max 7.5, если требуется, чтобы жесткое тело при анимации модулем reactor (Реактор) сохраняло свое поведение, определяющееся ключами анимации max 7.5. При этом сохраняется возможность других жестких и деформируемых тел взаимодействовать с данным телом;

Phantom (Фантом) — жесткие тела, для которых установлен этот флажок, не участвуют в столкновениях с другими жесткими телами, проходя сквозь них. Однако тела-фантомы запоминают информацию о столкновениях, которую затем можно использовать.

6.   Для каждого из жестких тел укажите, является ли оно выпуклым или вогнутым, используя средства управления из раздела Simulation Geometry (Моделируемая геометрия) свитка Properties (Свойства).

7.   Настройте физические свойства мягких тел, тканей и нитей, используя для этого свиток Properties (Свойства) соответствующего модификатора, примененного к таким телам, появляющийся на командной панели Modify (Изменить).

8.   Чтобы изображение в окне предварительного просмотра модуля reactor (Реактор) соответствовало виду сцены в окне камеры max 7.5, укажите нужную камеру. Для этого щелкните в свитке Display (Дисплей) командной панели Utilities (Утилиты) на кнопке с надписью None (Нет), а затем щелкните на значке камеры в любом из окон проекций (рис. 17.8). Имя камеры появится на кнопке. Для того чтобы в окне предварительного просмотра действовали осветители сцены max 7.5, щелкните в свитке Display (Дисплей) на кнопке Pick (Указать) под списком Lights (Осветители). Затем щелкните на нужном источнике света, имя которого появится в списке. Для добавления в список сразу нескольких источников света щелкните на кнопке Add (Добавить), выделите имена нужных осветителей в списке окна



Свиток Display утилиты...



Рис. 17.8. Свиток Display утилиты reactor на командной панели Utilities

Рис. 17.8. Свиток Display утилиты reactor на командной панели Utilities

Select Lights (Выделить осветители), а затем щелкните на кнопке Select (Выделить). Если в составе сцены не будет осветителей, модуль reactor (Реактор) использует встроенный прожектор.

9. На командной панели Utilities (Утилиты) щелкните на кнопке Preview in Window (Просмотреть в окне) в свитке Preview & Animation (Просмотр и анимация) (рис. 17.9), чтобы вызвать появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля Реактор).



Свиток Preview &...



Рис. 17.9. Свиток Preview & Animation утилиты reactor на командной панели Utilities

Рис. 17.9. Свиток Preview & Animation утилиты reactor на командной панели Utilities

10. После этого может появиться окно диалога Detected Errors (Обнаруженные ошибки) с перечнем ошибок, обнаруженных модулем reactor (Реактор) в подготовленной сцене, или похожее на него окно World Analysis (Анализ реальности) с перечнем предупреждений (рис. 17.10). Для закрытия окна Detected Errors (Обнаруженные ошибки) щелкните на кнопке Close (Закрыть), а окна World Analysis (Анализ реальности) — па кнопке Cancel (Отмена). Предупреждения можно и проигнорировать, щелкнув в окне World Analysis (Анализ реальности) на кнопке Continue (Продолжить). Устраните ошибки и еще раз вызовите окно просмотра анимации. Для начала предварительного просмотра настроенной анимации нажмите клавишу Р, для восстановления исходного состояния — клавишу R. Просмотрев анимацию, закройте окно.



Окно диалога World Analysis утилиты reactor



Рис. 17.10. Окно диалога World Analysis утилиты reactor

Рис. 17.10. Окно диалога World Analysis утилиты reactor

11.   Чтобы создать ключи анимации объектов трехмерной сцены, позволяющие просматривать анимацию в окнах проекций, задайте номера начального и конечного кадров анимации в счетчиках Start Frame (Начальный кадр), End Frame (Конечный кадр) свитка Preview & Animation (Просмотр и анимация) утилиты reactor (Реактор). Щелкните на кнопке Create Animation (Создать анимацию). Появится окно предупреждения о том, что данная операция не подлежит отмене. Щелкните на кнопке ОК. Если установить флажок Update Viewports (Обновлять окна проекций), то по мере выполнения расчетов будет происходить обновление изображения сцены в окнах проекций mах 7.5. Когда анимация будет готова, выполните ее визуализацию обычным порядком.



В список свитка RB...



Рис. 17.11. В список свитка RB Collection Properties на командной панели Modify автоматически включены объекты, которые были выделены

Рис. 17.11. В список свитка RB Collection Properties на командной панели Modify автоматически включены объекты, которые были выделены

3.   Переключитесь на командную панель Utilities (Утилиты) и щелкните на кнопке reactor (Реактор) в свитке Utilities (Утилиты), чтобы запустить утилиту имитационного моделирования. Разверните свиток Properties (Свойства). Выделите в окне проекции примитив, играющий роль пола сцены. Убедитесь в том, что в счетчике Mass (Масса) указана величина 0. Это означает, что данный примитив будет оставаться неподвижным. Выделите мячик и укажите для него массу 2 кг, а параметр эластичности — 3.

4.   Разверните на командной напели Utilities (Утилиты) свиток World (Реальность) и установите значение параметра Col. Tolerance (Допуск столкновения) равным 1. Эта величина определяет расстояние, на котором поверхности взаимодействующих объектов начинают оказывать друг на друга влияние.

5.   Теперь все готово для просмотра анимации. Разверните на командной панели Utilities (Утилиты) свиток Preview & Animation (Просмотр и анимация) и щелкните на кнопке Preview in Window (Просмотреть в окне), чтобы вызвать появление интерактивного окна reactor Real-Time Preview (Просмотр в реальном времени модуля Реактор). Нажмите клавишу Р, чтобы запустить просмотр анимации. Мячик под действием силы тяжести упадет на пол, подпрыгнет несколько раз, после чего покатится (рис. 17.12). Анимация простая, однако создана автоматически и воспроизводит реальное поведение тяжелого объекта в поле силы тяжести. Нажмите клавишу R, чтобы остановить воспроизведение и привести объекты в окне просмотра в исходное состояние.



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



Рис. 17.12. Исходный вид сцены с мячиком до начала действия в окне предварительного просмотра (а), во время отскока (б) и на конечном этапе (в)

Рис. 17.12. Исходный вид сцены с мячиком до начала действия в окне предварительного просмотра (а), во время отскока (б) и на конечном этапе (в)

6. Обратите внимание на то, что в окне предварительного просмотра время воспроизведения анимации не ограничено, а в окнах проекций анимация длится ровно столько, сколько отведено на активный временной сегмент анимации. По умолчанию продолжительность анимации составляет 100 кадров, то есть при частоте в 30 кадров в секунду время анимации составляет около трех секунд. Измените продолжительность анимации до 400 кадров в окне Time Configuration (Настройка временных интервалов). Установите в счетчике End Frame (Последний кадр) свитка Preview & Animation (Просмотр и анимация) утилиты reactor (Реактор) также величину 400.

7.   Для завершения процесса следует создать ключи анимации объектов трехмерной сцены. Щелкните на кнопке Create Animation (Создать анимацию) свитка Preview & Animation (Просмотр и анимация) на командной панели Utilities (Утилиты). Щелкните на кнопке ОК в окне предупреждения о том, что данная операция не подлежит отмене. После некоторого времени, требующегося на расчеты, создание ключей будет закончено и анимацию можно будет воспроизвести в окнах проекций max 7.5 или выполнить ее визуализацию обычными средствами. Вы можете сравнить то, что у вас получилось, со сценой Miach01.max, которая находится на компакт-диске в папке Scenes\Glava_17.



Исходный вид трехмерной...



Рис. 17.13. Исходный вид трехмерной сцены с тканью, подготовленной для анимации модулем reactor

Рис. 17.13. Исходный вид трехмерной сцены с тканью, подготовленной для анимации модулем reactor

2. Создайте коллекцию жестких тел и включите в нее все объекты, составляющие стол — Stoleshnica, Nozhka stola01, Nozhka stola02, Nozhka stola03 и Nozhka stola04. Затем создайте коллекцию тканей. Для этого можно щелкнуть на кнопке Create Cloth Collection (Создать коллекцию тканей) панели инструментов reactor (Реактор), а затем щелкнуть в нужной точке окна проекции.

3.   Выделите плоскость и примените к ней модификатор reactor Cloth (Реактор: Ткань), щелкнув, к примеру, на кнопке Apply Cloth Modifier (Применить модификатор Ткань) панели инструментов reactor (Реактор). На панели Modify (Изменить) появятся свитки параметров модификатора Properties (Свойства) (рис. 17.14) и Constraints (Ограничители). Оставьте в исходном состоянии настройки всех параметров модификатора reactor Cloth (Реактор: Ткань). Убедитесь в том, чтобы был установлен флажок Avoid Self-Intersections (Избегать самопересечений).



Свиток Properties модификатора reactor Cloth



Рис. 17.14. Свиток Properties модификатора reactor Cloth

Рис. 17.14. Свиток Properties модификатора reactor Cloth

4.   Добавьте плоскость в коллекцию тканей. Для этого щелкните на значке коллекции CLCollection (Коллекция тканей), после чего щелкните на кнопке Pick (Указать) под списком Cloth Entities (Образцы тканей) в свитке Properties (Свойства) на панели Modify (Изменить) и в заключение щелкните на плоскости в любом из окон проекций. Имя объекта Plane01 (Плоскость01) появится в списке.

5.   Переключитесь на панель Utilities (Утилиты). Просмотрите анимацию в окне предварительного просмотра. Вы увидите, как плоскость подобно скатерти накроет стол, и ее края еще будут продолжать движение, создавая иллюзию настоящей ткани (рис. 17.15).



Вид сцены с тканью...



Рис. 17.15. Вид сцены с тканью в окне предварительного просмотра соответственно: перед началом анимации, на промежуточной стадии и перед завершением действия

Рис. 17.15. Вид сцены с тканью в окне предварительного просмотра соответственно: перед началом анимации, на промежуточной стадии и перед завершением действия

6. Создайте ключи анимации ткани, щелкнув на кнопке Create Animation (Создать анимацию) в свитке Preview & Animation (Просмотр и анимация) утилиты reactor (Реактор), и просмотрите анимацию в окнах проекций. После того как программа завершит просчет сцены, анимированным объектам будут присвоены ключи анимации для каждого кадра анимации. Иногда такое обилие ключей анимации затрудняет работу над сценой. Кроме этого, некоторые ключи анимации и вовсе лишние. Так, например, если в сцене трехмерный объект совершает прямолинейное движение с постоянной скоростью, для описания его движения достаточно двух ключей анимации — в начале движения и в конце. Если требуется уменьшить количество ключей анимации, просчитанных в reactor (Реактор), вы можете произвести отбор главных ключей, удалив ненужные с помощью инструмента Reduce Keys (Уменьшить число ключей).



Исходный вид изнутри...



Рис. 17.16. Исходный вид изнутри кафе трехмерной сцены, подготовленной для анимации модулем reactor, с тканью, изображающей занавесь

Рис. 17.16. Исходный вид изнутри кафе трехмерной сцены, подготовленной для анимации модулем reactor, с тканью, изображающей занавесь

2. Создайте коллекцию жестких тел и включите в нее все объекты геометрической модели сцены, кроме плоскости, имитирующей занавесь. Запустите утилиту reactor (Реактор) и установите для стены с отверстием переключатель Simulation Geometry (Моделируемая геометрия) в свитке Properties (Свойства) на панели Utilities (Утилиты) в положение Use Mesh (Использовать сетку) группы Concave (Вогнутый объект). Массы всех объектов, включенных в коллекцию жестких тел, оставьте равными нулю.

3.   Примените к плоскости, изображающей занавесь, модификатор reactor Cloth (Реактор: Ткань). Оставьте в исходном состоянии все параметры модификатора reactor Cloth (Реактор: Ткань), но установите флажок Avoid Self-Intersections (Избегать самопересечений). Создайте коллекцию тканей и поместите плоскость-занавесь в состав списка этой коллекции.

4.   После этого добавьте в сцену вспомогательный объект Wind (Ветер). Разместите его перед фасадом кафе напротив окна и направьте указатель флюгера на ткань. Задайте скорость ветра (Wind Speed) равной приблизительно 2,5 м/с.

5.   Выполните прикрепление занавеси к жестким телам — кольцам карниза. Для этого выделите плоскость занавеси и раскройте свиток Constraints (Ограничители) на панели Modify (Изменить). Разверните дерево подобъектов модификатора reactor Cloth (Реактор: Ткань) в окне стека на панели Modify (Изменить) и выберите в стеке строку Vertex (Вершина). Все вершины плоскости в окнах проекций обозначатся синими точками. Щелкните в свитке Constraints (Ограничители) на кнопке Attach To RigidBody (Прикрепить к жесткому телу). В списке свитка появится строка с таким же именем. На панели Modify (Изменить) появится новый свиток, также называемый Attach To RigidBody (Прикрепить к жесткому телу) (рис. 17.17).



Свиток Attach To RigidBody...



Рис. 17.17. Свиток Attach To RigidBody модификатора reactor Cloth

Рис. 17.17. Свиток Attach To RigidBody модификатора reactor Cloth

6.   Выделите строку Attach To RigidBody (Прикрепить к жесткому телу) в списке свитка Constraints (Ограничители). Щелкните на кнопке с надписью None (Нет) под строкой параметра Rigid Body (Жесткое тело) в свитке Attach To RigidBody (Прикрепить к жесткому телу), затем щелкните па жестком теле, к которому должна быть прикреплена вершина сетки. В данном случае щелкните на крайнем левом кольце-тороиде. Наименование объекта появится на кнопке. Теперь выделите вершину в верхнем левом углу занавеси (рис. 17.18): С этого момента выделенная вершина связана с жестким телом и при анимации ткани будет сохранять свое положение относительно него.



Вершина в левом верхнем...



Рис. 17.18. Вершина в левом верхнем углу занавеси (показана стрелкой) выделена для привязки к расположенному над ней кольцу

Рис. 17.18. Вершина в левом верхнем углу занавеси (показана стрелкой) выделена для привязки к расположенному над ней кольцу

В свитке Attach To RigidBody (Прикрепить к жесткому телу) имеются еще два флажка:

Do not affect rigid body (He оказывать воздействия на жесткое тело) — если установить этот флажок, то жесткое тело, к которому прикреплена ткань, будет воздействовать на нее, но не будет получать обратного воздействия со стороны ткани;

Ignore Collisions (Игнорировать столкновения) — при установке этого флажка модуль reactor (Реактор) не будет отслеживать столкновения между тканью и жестким телом, к которому она прикреплена.

В нашем случае оставьте оба этих флажка сброшенными.

7. Перед тем как продолжить связывание остальных вершин с соответствующими жесткими телами, играющими роль колец карниза, переименуйте имя ограничителя, чтобы оно не путалось с именами ограничителей, которые предстоит добавить. Для этого следует выполнить щелчок на строке Attach To RigidBody (Прикрепить к жесткому телу) в списке свитка Constraints (Ограничители), задержать кнопку мыши нажатой, а потом отпустить. В строке появится курсор-каретка. Назовите ограничитель, например, Attach To RigidBodyl (Прикрепить к жесткому телу1).

8.   Снова щелкните в свитке Constraints (Ограничители) на кнопке Attach To Rigid-Body (Прикрепить к жесткому телу). Повторите эти действия применительно ко второму слева кольцу и расположенной под ним вершиной. Переименуйте ограничитель, назвав его Attach То RigidBody2 (Прикрепить к жесткому телу2). Затем создайте еще три таких ограничителя и свяжите с их помощью три оставшихся кольца карниза с еще тремя вершинами сетки, расположенными под ними. В итоге в списке свитка Constraints (Ограничители) должно оказаться пять ограничителей, как показано на рис. 17.19. Связанные вершины, управляемые теми ограничителями, имена которых не выделены в списке свитка Constraints (Ограничители), должны иметь в окнах проекций mах 7.5 желтую окраску. Связанная вершина ограничителя, имя которого выделено в списке, должна быть окрашена в красный цвет. Если какая-то из выбранных вершин не имеет нужной окраски, выделите имя ограничителя в списке свитка Constraints (Ограничители) и снова выделите нужную вершину. Закончив связывание вершин, щелкните в стеке модификаторов на имени модификатора reactor Cloth (Реактор: Ткань), чтобы выключить доступ к подобъектам-вершинам и исключить возможность случайной отмены выделения связанных вершин.



В списке свитка Constraints...



Рис. 17.19. В списке свитка Constraints появилось пять переименованных ограничителей типа Attach To RigidBody

Рис. 17.19. В списке свитка Constraints появилось пять переименованных ограничителей типа Attach To RigidBody

9.   Выполните анимацию колец занавеси, заставив их смещаться к правому краю карниза (рис. 17.20). Имейте в виду, что сетка плоскости не будет перемещаться или деформироваться вместе с кольцами, так как ограничения вершин действуют только для модуля reactor (Реактор).



Вид сцены кафе «МАХ»...



Рис. 17.20. Вид сцены кафе «МАХ», подготовленной для анимации модулем reactor, в которой кольца для занавеси в результате анимации смещены к краю карниза

Рис. 17.20. Вид сцены кафе «МАХ», подготовленной для анимации модулем reactor, в которой кольца для занавеси в результате анимации смещены к краю карниза

10. Чтобы анимация колец продолжала определять их поведение в ходе имитационного моделирования, выполняемого модулем reactor (Реактор), выделите их поочередно и установите для каждого из них флажок Unyielding (Неподатлив) в свитке Properties (Свойства) утилиты reactor (Реактор) на панели Utilities (Утилиты).

11.   Снова просмотрите анимацию в окне предварительного просмотра. Теперь занавесь должна не только реалистично развеваться на легком ветру, но сдвигаться в сторону вместе с кольцами карниза.

12.   Чтобы увидеть анимацию в окнах проекций, выполните ее расчет. Создайте ключи анимации ткани, щелкнув по кнопке Create Animation (Создать анимацию). На рис. 17.21 показано, как могут выглядеть кадры анимации занавеси на окне кафе «МАХ» после визуализации.



Визуализированные...



Рис. 17.21. Визуализированные изнутри кафе кадры анимации ткани, имитирующей занавесь, до начала движения колец карниза и в процессе движения

Рис. 17.21. Визуализированные изнутри кафе кадры анимации ткани, имитирующей занавесь, до начала движения колец карниза и в процессе движения



Объект Rectangle совмещен с флагштоком



Рис. 17.22. Объект Rectangle совмещен с флагштоком

Рис. 17.22. Объект Rectangle совмещен с флагштоком

2. Выключите режим Vertex (Вершина) и примените к объекту модификатор Garment Maker (Создатель одежды). Этот модификатор служит для создания ткани на основе сплайновых форм. Примените теперь к объекту модификатор Cloth (Одежда), с помощью которого можно определить настройки ткани и взаимодействующих с ней тел. На панели Modify (Изменить) появятся свитки параметров этого модификатора: Object (Объект), Material Params (Параметры материала) и Simulation Parameters (Параметры имитации).

3.   Нажмите кнопку Object Properties (Свойства объекта) в свитке Object (Объект), чтобы вызвать появление окна диалога Object Properties (Свойства объекта). С помощью кнопки Add Objects (Добавить объекты) этого окна добавьте в список объектов, которые будут участвовать во взаимодействии, цилиндр, играющий роль флагштока, и фасад кафе «МАХ». В окне диалога Object Properties (Свойства объекта) выделите объект Rectangle01 (Прямоугольник01) и установите для него переключатель в положение Cloth (Одежда). В списке Presets (Заготовки) выберите Silk (Шелк) (рис. 17.23). Благодаря выбранной заготовке параметры ткани изменятся, и флаг будет вести себя на ветру так, как должен. Выделите имя объекта Fasad и установите переключатель в положение Collision Object (Объект столкновения). Тем самым вы укажете, что ткань должна будет соприкасаться со стеной здания, а не проходить сквозь нее. Выделите флагшток и укажите для него тип объекта Inactive (Неактивный). Флагшток не будет принимать участие в столкновении, но должен быть добавлен в список объектов, участвующих во взаимодействии, так как к нему мы присоединим флаг на следующем этапе. Нажмите кнопку ОК.



Установка параметров...



Рис. 17.23. Установка параметров объектов в окне диалога Object Properties

Рис. 17.23. Установка параметров объектов в окне диалога Object Properties

4.   Щелкните в стеке модификаторов по значку «+» возле строки Cloth (Ткань) и выделите в списке подобъектов строку Group (Группа). После этого на ткани будут видны вершины поверхности. Выделите вертикальный крайний ряд вершин, примыкающих к флагштоку, и нажмите кнопку Make Group (Создать группу) в появившемся свитке Group (Группа). Появится одноименное окно, в котором необходимо ввести название группы. Назовите ее Krepezh. Созданную группу вершин необходимо присоединить к флагштоку. Нажмите в свитке Group (Группа) кнопку Sim Node (Опорный узел имитации) и щелкните по цилиндру-флагштоку. Выключите режим работы с подобъектом Group (Группа).

5.   Теперь необходимо разместить флаг на углу здания, где он будет развеваться. Поверните флагшток вместе с полотнищем примерно на 30-40° и воткните флагшток в стену на нужной высоте. Чтобы флаг развевался на ветру, нужно также добавить в сцену объемную деформацию Wind (Ветер) и разместить ее таким образом, чтобы стрелка направления указывала на флаг сбоку (рис. 17.24). В отличие от модуля reactor (Реактор), модуль Cloth (Ткань) использует стандартную объемную деформацию. В настройках объекта Wind (Ветер) установите силу ветра равной 1,2, а турбулентность — 0,2. Выделите ткань на флаге и нажмите кнопку Cloth Forces (Силы, воздействующие на ткань) в свитке Object (Объект). В появившемся окне Forces (Силы) выделите в списке Forces in Scene (Силы в сцене) созданную только что объемную деформацию и при помощи кнопки с изображением правой стрелки перенесите ее в список Forces in Simulation (Просчитываемые силы).



Расположение объемной деформации Wind в сцене



Рис. 17.24. Расположение объемной деформации Wind в сцене

Рис. 17.24. Расположение объемной деформации Wind в сцене

6. Для просчета анимации сцены нажмите кнопку Simulate (Просчет) в свитке Object (Объект). Просчет может занять несколько минут. Если в процессе анимации возникли проблемы (например, флаг неестественно двигается), попробуйте изменить настройки ткани в окне Object Properties (Свойства объекта). Например, измените тип ткани, выбираемый в списке Presets (Заготовки) с Silk (Шелк) на Stratched Cotton (Растяжимый хлопок). Для отказа от просчитанной анимации нажмите кнопку Reset State (Восстановить состояние), после чего произведите повторную настройку сцены и снопа нажмите кнопку Simulate (Просчет).

7. Для большей реалистичности раскрасьте флаг в национальные цвета, после чего включите отображение скрытых объектов сцены и выполните конечную визуализацию (рис. 17.25).



Кадр из анимации флага...



Рис. 17.25. Кадр из анимации флага на ветру, созданной посредством модуля Cloth

Рис. 17.25. Кадр из анимации флага на ветру, созданной посредством модуля Cloth



Состав инструментов и интерфейс модуля reactor



Состав инструментов и интерфейс модуля reactor

В состав модуля reactor (Реактор) входят двадцать вспомогательных объектов, три модификатора, одна объемная деформация и сервисная программа-утилита reactor (Реактор). Доступ к перечисленным средствам моделирования обеспечивается посредством командной панели Create (Создать), меню reactor (Реактор) и панели инструментов reactor (Реактор).



Создание коллекций



Создание коллекций

Чтобы создать в составе трехмерной сцены вспомогательный объект какой-то из коллекций и одновременно поместить в него нужные объекты геометрической модели трехмерной сцены, выполните следующие действия:

1. Выделите объекты геометрической модели трехмерной сцены, которые требуется включить в состав создаваемой коллекции.

2.   Выберите одну из пяти команд, размещенных в верхней части подменю Create Object (Создать объект) меню reactor (Реактор), которые соответствуют названиям коллекций. С той же целью можете щелкнуть на одной из кнопок в верхней части панели инструментов reactor (Реактор): Create Rigid Body Collection (Создать коллекцию жестких тел), Create Cloth Collection (Создать коллекцию тканей), Create Soft Body Collection (Создать коллекцию мягких тел), Create Rope Collection (Создать коллекцию нитей) или Create Deformable Mesh Collection (Создать коллекцию деформируемых сеток). Будет автоматически создан значок коллекции в точке, соответствующей центру выделенного набора объектов, а в список коллекции будут автоматически включены все выделенные объекты трехмерной сцены, которые по своим свойствам подходят для выбранной коллекции.

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

Еще один способ создания коллекции состоит в том, чтобы щелкнуть на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать) и выбрать в появившемся списке строку reactor (Реактор). После этого в свитке Object Type (Тип объекта) можно щелкнуть на одной из кнопок — RBCollection (Коллекция жестких тел), SBCollection (Коллекция мягких тел), CLCollection (Коллекция тканей), RPCollection (Коллекция нитей) или DMCollection (Коллекция деформируемых сеток). В этом случае значок коллекции не создается автоматически независимо от того, есть в составе сцены выделенные объекты или их нет, и для его создания следует щелкнуть в той точке любого окна проекции, где требуется разместить значок.



Свиток Properties (Свойства) модификатора react



Свиток Properties (Свойства) модификатора react

В свитке Properties (Свойства) модификатора reactor Cloth (Реактор: Ткань) можно настроить следующие параметры тканей:

Mass (Масса) — величина массы сказывается на растяжении ткани при столкновении с жесткими телами, причем чем больше масса, тем меньше растяжение;

Friction (Трение) — коэффициент трения ткани;

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

Air Resistance (Сопротивление воздуха) — вызывает замедление падения ткани.

Для расчетов анимации ткани можно использовать две модели действующих на ткань сил:

Simple Force Model (Простая модель сил) — простая и быстрая для расчетов, не очень точная модель. Имеет два параметра для настройки:

Stiffness (Жесткость) — управляет гибкостью ткани;

Damping (Демпфирование) — задает скорость затухания упругих колебаний;

Complex Force Model (Сложная модель сил) — более сложная и требующая большего времени на расчеты, но более точная модель поведения ткани. Имеет четыре настраиваемых параметра:

Stretch (Растяжение) — задает степень растяжения ткани; > Bend (Изгиб) — задает степень сопротивления изгибам;

Shear (Разрыв) — задает степень сопротивления разрывам;

Damping (Демпфирование) — задает скорость затухания упругих колебаний.

Переключатель Fold Stiffness (Жесткость складок) позволяет выбрать один из трех вариантов:

None (Нет) — в этом варианте, принятом по умолчанию, ткань ведет себя подобно шелку;

Uniform Model (Равномерная модель) — в этом варианте жесткость складок ткани равномерна на всем ее протяжении;

Spatial Model (Пространственная модель) — позволяет менять жесткость складок только в определенных местах ткани.

Остальные параметры свитка являются одинаковыми для всех деформируемых тел:

Avoid Self-Intersections (Избегать самопересечений) — установка этого флажка позволяет избежать случаев пересечения отдельными частями ткани себя самой;

Constrain Deformations (Ограничить деформации) — установка этого флажка позволяет ограничить растяжение ткани при деформациях в счетчике Мах (%) (Максимум (%));

Start With Current State (Начинать с текущего состояния) — если данный флажок установлен, то модификатор запоминает состояние объекта в текущем кадре. При открытии окна предварительного просмотра ткань будет загружаться в это окно в том деформированном виде, которое запомнено модификатором. Например, откройте окно предварительного просмотра и запустите анимацию ткани. Когда ткань деформируется в окне должным образом, приостановите воспроизведение анимации, нажав клавишу Р. Выберите команду МАХ > Update МАХ (МАХ > Обновить МАХ). В итоге ткань в окнах проекций будет деформирована аналогично тому, как она выглядит в окне предварительного просмотра. Это состояние запоминается модификатором, и если снова открыть окно предварительного просмотра при установленном флажке Start With Current State (Начинать с текущего состояния), то ткань загрузится в деформированном виде. При сброшенном флажке ткань загружается в исходном виде, какой она имела до применения деформаций;

Clear Keyframes (Очистить ключи) — щелчок па этой кнопке ведет к удалению всех ключей, созданных для ткани модулем reactor (Реактор). Число таких ключей обозначается над кнопкой в строке ... keyframes stored (сохранено .... ключей);

Use Soft Selection (Использовать плавное выделение) — позволяет использовать плавное выделение при ограничении подвижности вершин сетки деформируемого объекта;

Reset Default Values (Восстановить исходные значения) — щелчок на этой кнопке восстанавливает исходные значения всех параметров модификатора.

С остальными параметрами модификатора reactor Cloth (Реактор: Ткань) познакомьтесь самостоятельно, используя справочную систему mах 7.5.



Анимация мячика



Упражнение 1. Анимация мячика

Рассмотрим простой пример имитации динамики жестких тел средствами модуля reactor (Реактор). В прошлой главе я предлагал вам просмотреть анимацию Kukla i miach.avi, которую можно найти в папке Animations\G!ava_16. Напомню, что в этой анимации кукла бьет по мячику рукой, в результате чего он стукается о поверхность пола и отскакивает. Представим себе, что рука куклы перестала бить по мячу. Как в таком случае должно будет выглядеть продолжение анимации? Мячик должен будет еще несколько раз по инерции отскочить от пола, причем каждый раз на все меньшую высоту, после чего покатиться по нему. Создать подобную анимацию без использования модуля reactor (Реактор) довольно сложно, ведь движения мяча будут постоянно изменяться, а не повторяться, как в анимации Kukla i miach.avi. Для модуля reactor (Реактор), напротив, такая задача, в которой жесткие тела двигаются только под действием силы тяжести, является одним из наиболее простых заданий. Для создания сцены с прыгающим на полу мячом выполните следующие действия:

1. Откройте сцену Miach.max из папки Scenes\Glava_17 на компакт-диске. Это — знакомая вам сцена Kukla i miach.max, из которой были удалены все ненужные объекты и параметры анимации. Вы также можете создать такую сцену самостоятельно. Роль пола может играть параллелепипед, а роль мячика — сфера. Разместите сферу над полом, и можно начинать работу с reactor (Реактор).

2.   Выделите мячик и пол (в сцене его роль выполняет объект Вох01) и щелкните на кнопке Create Rigid Body Collection (Создать коллекцию жестких тел) панели инструментов reactor (Реактор). В составе сцены будет автоматически создана коллекция жестких тел, и оба примитива будут автоматически помещены в список Rigid Bodies (Жесткие тела) свитка RB Collection Properties (Свойства коллекции жестких тел) на панели Modify (Изменить), показанный на рис. 17.11.



Набрасываем скатерть на стол



Упражнение 2. Набрасываем скатерть на стол

В главе 10 мы уже создавали скатерть, используя технику NURBS-моделирова-ния. Главный недостаток скатерти, созданной таким методом — ее очень трудно анимировать. При взаимодействии ткани с каким-либо объектом ее поверхность деформируется по всей площади. Использовать привычные способы создания анимации в данном случае очень сложно. Нам пришлось бы устанавливать ключи анимации для огромного количества точек объекта, что заняло бы много времени и сил. С помощью модуля reactor (Реактор) эта задача решается очень просто. Программа автоматически высчитывает воздействие, производимое на ткань внешними силами, и соответственно задает деформацию объекта. Более того, за поведением ткани можно наблюдать в режиме реального времени с помощью специальной функции предварительного просмотра. Анимация ткани, просчитанная с помощью модуля reactor (Реактор), выглядит очень реалистично, а сам процесс просчета занимает немного времени, особенно при правильно выбранных настройках.

Итак, для создания скатерти, падающей на стол, выполните следующие действия: 1. Откройте сцену с любым из созданных нами в рамках нашего проекта столов. Вы можете использовать сцену Stol.max, находящуюся в папке Scenes\Glava_05, я работал именно с ней. Сохраните ее под именем Stoljeactor.max. Перейдите в окно проекции Тор (Вид сверху). Создайте примитив Plane (Плоскость), расположив его таким образом, чтобы созданная вами плоскость была по площади немного больше стола. Подобрав необходимые настройки модуля reactor (Реактор), мы добьемся того, что эта плоскость будет обладать свойствами ткани. Переключитесь в окно проекции Perspective (Перспектива) и передвиньте объект Plane (Плоскость) вдоль оси Z вверх, чтобы она располагалась над столом, как показано на рис. 17.13. Если бы в реальной жизни мы могли каким-то образом зафиксировать ткань в таком положении и отпустить, то, поскольку на нее воздействует только сила гравитации, она начала бы падать вниз. После столкновения с поверхностью стола ткань начнет деформироваться, обхватывая краями объект столкновения. Поскольку наша плоскость должна изменять форму аналогичным образом, необходимо позаботиться о том, чтобы модель ткани, содержала достаточное количество сегментов по длине и ширине. Если объект, имитирующий ткань будет содержать малое количество полигонов, участки на изгибах выдадут трехмерную подделку, а просчитанная анимация будет выглядеть нереалистично. Увеличьте сегментацию плоскости, установив 24 сегмента по каждой из координат.



Вешаем занавеску на окно кафе «МА



Упражнение 3. Вешаем занавеску на окно кафе «МА

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

Для создания занавесок и анимации их посредством модуля reactor (Реактор) выполните следующие действия:

1. Откройте сцену MAX-kafe18.max, с которой мы работали в одной из предыдущих глав. Вы можете загрузить ее с компакт-диска, она находится в папке Scenes\Glava_15. Если вы помните, в этой сцене мы в учебных целях изменили зимний пейзаж на летний, скрыли снежные валики и применили к основанию сцены материал, имитирующий текстуру асфальта. Поэтому занавесь тут будет очень кстати. Она прикроет окно кафе «МАХ», когда палящее летнее солнце заглядывает в помещение во второй половине дня. Кроме этого, занавески на окнах всегда создают уют в помещении. Для удобства скройте все объекты сцены, кроме объекта Fasad. Над окном смоделируйте трубчатый карниз в виде удлиненного цилиндра с шариками на концах и кольцами для занавеси, в качестве которых используйте примитивы Torus (Top). Кольца равномерно разместите вдоль карниза. Детали карниза разместите вблизи от стены. Модуль reactor (Реактор) проверяет на наличие пересечений только те трехмерные объекты, которые включены в коллекцию жестких тел и которым назначена ненулевая масса. Если у жесткого тела масса нулевая, то есть оно не будет двигаться под действием силы тяжести, его сетка может иметь пересечения с другими телами. В нашем примере со взаимным пересечением можно разместить цилиндр карниза и шарики на его концах. Создайте занавесь в виде плоскости, разместив ее напротив окна, прямо под кольцами карниза. Увеличьте сегментацию плоскости до 22 по каждому измерению. Назначьте объектам материалы (рис. 17.16).



Создаем флаг на здании кафе «МАХ»



Упражнение 4. Создаем флаг на здании кафе «МАХ»

В каком случае на здании может быть вывешен флаг? Обычно это делается в дни государственных праздников. Что ж, предположим, что мы решили заглянуть в кафе «МАХ» именно в такой день, поэтому на его стене красуется развевающийся флаг. Попробуем создать такую анимацию средствами модуля Cloth (Ткань). Откройте файл с созданной в прошлом упражнении занавесью на окне. Если по каким-то причинам вы не сохранили этот файл, вы можете открыть сцену МАХ-kafe_zanaves.max, которая находится на компакт-диске в папке Scenes\Glava_17. Сохраните ее под названием MAX-kafe_flag.max.

1. Скройте все объекты сцены, кроме объекта Fasad. Постройте стандартный примитив Cylinder (Цилиндр) радиусом 2 см и длиной 147 см. В окне проекции Right (Вид справа) создайте сплайновую форму Rectangle (Прямоугольник) с длиной 60 см и шириной 80 см. Именно она будет играть роль каркаса развевающейся ткани. Подберите положение сплайнового объекта таким образом, чтобы он примыкал к цилиндру одной из сторон (рис. 17.22). Преобразуйте стандартный сплайн в редактируемый. Выбрав подобъект Vertex (Вершина), выделите все вершины объекта и в свитке Geometry (Геометрия) нажмите кнопку Break (Разбить). После этого сплайн будет разделен на четыре отдельные части.



Утилита reactor



Утилита reactor

Сервисная программа-утилита reactor (Реактор) расположена на командной панели Utilities (Утилиты). Если по умолчанию кнопка reactor (Реактор) будет отсутствовать на панели Utilities (Утилиты), то следует щелкнуть на кнопке More (Дополнительно) и в появившемся окне дважды щелкнуть на строке reactor (Реактор). На панели Utilities (Утилиты) появятся свитки параметров утилиты reactor (Реактор): Preview & Animation (Просмотр и анимация), World (Реальность), Collisions (Столкновения), Display (Дисплей), Utils (Утилиты) и Properties (Свойства) (рис. 17.2).



Вникаем в тонкости модуля Cloth



Вникаем в тонкости модуля Cloth

Как вы уже смогли убедиться, существует достаточно много ситуаций, когда при решении той или иной задачи в max 7.5 не обойтись без имитации взаимодействий ткани с другими объектами. Рассмотренные нами выше упражнения являются достаточно простыми примерами подобных взаимодействий. Пользователи, работающие с max 7.5 на более серьезном уровне (к которым, я надеюсь, скоро можно будет причислить и вас, уважаемые читатели), нередко сталкиваются и с более сложными проблемами. И хотя возможности модуля reactor (Реактор) достаточно широки, все же иногда их не хватает. Это относится, например, к решению такого серьезного задания, как анимация одежды трехмерного персонажа. Проблема заключается в том, что одежда должна стать как бы частью персонажа и, с одной стороны, вести себя как настоящая ткань, а с другой — двигаться в соответствии с движениями персонажа. Модуль reactor (Реактор), который, кстати, впервые появился в 3ds max 5, располагает довольно ограниченными по возможности инструментами для воссоздания подобных ситуаций. Именно поэтому в состав последней версии max 7.5 был включен еще один модуль для имитации поведения ткани в трехмерных сценах — Cloth (Ткань). Он представлен двумя модификаторами: Garment Maker (Создатель одежды) для превращения сплайнов в подобие ткани и Cloth (Ткань) для имитации динамики ткани.

«Пошив» одежды для трехмерных персонажей и анимация ее в движении — вот основные задачи этого модуля. Однако он позволяет также решить ряд других, более простых заданий, связанных с имитацией поведения ткани. Поскольку рассмотрение возможностей 3ds max, которые касаются создания персонажной анимации, выходит за рамки этого издания, то и процесс создания одежды для персонажа тут рассматриваться не будет. Вы можете попытаться освоить эту тему самостоятельно, используя справочную систему max 7.5. Команда Cloth Extension Help (Справка по расширению Ткань) находится в окне диалога, появляющемся после выбора команды меню Help > Additional Help (Справка > Дополнительная справка). В рамках этого раздела рассмотрим пример использования модуля Cloth (Ткань) для имитации развевающегося на ветру флага.



Прежде чем начинать просчет трехмерной



ВНИМАНИЕ

Прежде чем начинать просчет трехмерной анимации в модуле reactor (Реактор), следует проверить правильность выбранных настроек, а еще лучше сохранить копию сцены и с инкрементированием имени. После завершения вычислений возврат на этап, предшествующий просчету динамики, будет невозможен. Если полученная анимация вас не удовлетворила, вы можете сравнить свою сцену с моей. Она находится в папке Scenes\Glava_17 под названием Stol_reactor.max. Это — сцена с настроенными параметрами, но не доведенная до конечного просчета модулем reactor (Реактор). Там же вы найдете файл Stol_reactor01.max с уже просчитанной анимацией reactor (Реактор).

Вода



Вода

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



Вспомогательные объекты



Вспомогательные объекты

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

Для доступа к инструментам создания двадцати вспомогательных объектов модуля reactor можно щелкнуть на кнопке Helpers (Вспомогательные объекты) командной панели Create (Создать) и выбрать в появившемся списке строку reactor (Реактор). После этого становится доступным свиток Object Type (Тип объекта) (рис. 17.1). Помимо данного свитка для создания этих объектов можно использовать команды подменю Create Object (Создать объект) меню reactor (Реактор) и кнопки панели инструментов reactor (Реактор).



Знакомимся с модулем reactor



Знакомимся с модулем reactor

Дополнительный модуль reactor (Реактор) компании Havok входит в комплект поставки программы max 7.5 и устанавливается с этой программой автоматически, не требуя каких-либо специальных действий. Если установлена программа max 7.5, значит, установлен и модуль reactor (Реактор). Модуль не требует отдельной авторизации.

Модуль reactor (Реактор) позволяет:

имитировать визуально правдоподобные взаимодействия трехмерных тел с учетом таких воображаемых физических свойств объектов, как масса, упругость, жесткость, коэффициент трения и т. п., а также действия на объекты таких сил, как тяжесть, ветровое давление, сопротивление воздуха, вращающий момент, архимедова сила и т. п.; учитывать начальные условия движения тел, заданные средствами традиционной анимации, на момент начала имитационных расчетов, то есть обеспечивать стыковку традиционной анимации с имитацией модуля reactor (Реактор); предварительно просматривать созданную анимацию в специальном окне, обладающем интерактивными возможностями; автоматически генерировать ключи анимации для объектов трехмерной сцены, после чего можно просматривать готовую анимацию в окнах проекций или выполнить ее визуализацию стандартными средствами max 7.5.



Знакомство с прочими вспомогательными объектами



Знакомство с прочими вспомогательными объектами

Помимо коллекций и ограничителей в число прочих вспомогательных объектов модуля reactor (Реактор) входят:

Plane (Плоскость) — позволяет создать невизуализируемую плоскость, которая служит преградой для перемещения жестких тел, если они перемещаются в направлении навстречу нормали плоскости. У этой плоскости можно настраивать свойства коэффициента трения и эластичности. Несмотря на ограниченный размер значка, размеры плоскости считаются неограниченными в пространстве;

Motor (Мотор) — служит источником крутящего момента, который вызывает вращение жесткого тела, связанного с данным объектом, вокруг заданной оси с заданной угловой скоростью;

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

Toy Car (Машинка) — предназначен для анимации моделей автомобилей, имеющих кузов и колеса. Несмотря на то что модель автомобиля можно настроить и с помощью ограничителя Car-Wheel Constraint (Ограничитель Машина-колесо), вспомогательный объект Toy Car (Машинка) позволяет сделать это быстрее и проще. Совокупность геометрических объектов, изображающих кузов и колеса автомобиля, после связывания со вспомогательным объектом Toy Car (Машинка) ведет себя как игрушечная машина без мотора. Такая модель может реалистично скатываться с горки или катиться по плоской поверхности по инерции, если перед началом расчетов модулем reactor придать ей движение методом традиционной анимации;

Fracture (Обломки) — служит для создания анимаций, в которых жесткое тело разваливается на заранее подготовленные части при столкновении с другим жестким телом.

Отдельные параметры вспомогательного объекта Wind (Ветер) будут рассмотрены далее в разделе «Имитация тканей модулем reactor». Подробное рассмотрение всех прочих вспомогательных объектов выходит за рамки данного издания. При необходимости обращайтесь к справочной системе 3ds max.