Семинар 12:  Reactor.

На прошлом занятии мы рассмотрели простейшие способы  создания анимации и

даже попробовали сделать анимацию пружины, на которую падает шарик. Это было явной попыткой изобразить физику объектов, их поведения при взаимодействии  друг с другом. Пытаться изобразить физику в анимации  очень нудное и сложное дело, гораздо проще воспользоваться   специальным   инструментом,   который   всё   сделает  за   тебя.   Таким инструментом является Reactor. Это плагин, который с недавних пор, а  именно с 5-ой версии 3Ds Max, входит в стандартный комплект  поставки  3Ds Max и устанавливается сразу  вместе  с  ним.  С  его  помощью  можно  создавать  анимацию  различных  твёрдых объектов,    тканей   и   воды.   При   этом   их   взаимодействие   будет    просчитываться автоматически и все ключи анимации будут создаваться за тебя.

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

12.1 Что такое движок физики.

В   реакторе   задействовано   два   движка   физики,   Havok1   и   Havok3.   Havok   3 рекомендуется использовать на слабых машинах,  потому что он рассчитывает сцену с некоторой погрешностью, то есть он не точно просчитывает границы объектов. Также он не позволяет просчитывать ткани. Поэтому я рекомендую тебе использовать  Havok 1, при условии, что твой компьютер не погибнет выполняя твоё поручение  ☺ У Havok1 есть одно единственное ограничение – он запрещает использовать в сцене объекты типа Plane, исключение составляют ткани.

Движок    –    это    программа,    которая    занимается    расчётом    различных взаимодействий объектов и их поведения в сцене.

12.2  Расчёт физики твёрдых тел

Начнём изучение Reactor с твёрдых тел. Для начала давай  создадим  простейшую сцену, на которой будет расположено два Box, как показано на рисунке. При этом Box, который играет роль пола, будет очень тоненьким, чтобы как можно больше походить на пол.

В данном примере оба объекта у нас будут твёрдыми телами. Чтобы Reactor знал что они именно твёрдые надо создать систему тел. Система тел – это что-то вроде хранилища информации о объектах, которые принадлежат к определённому виду объектов. В нашем случае,  все  объекты  твёрдые,  следовательно,  у  нас  должна  быть  добавлена  система твёрдых тел. Все системы расположены в закладке Create, далее  выбери Helpers. После этого нужно в свитке типов объектов выбрать reactor.

В  открывшейся  вкладке  ты  обнаружишь  ровно  20  различных   систем,  нам  же понадобиться первая, а именно RBcollection, отвечающая за твёрдые тела.

Чтобы создать систему твёрдых тел нужно выбрать её и в любом из окон один раз щёлкнуть мышью.

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

Место, где она будет расположена, не играет никакой роли, лишь бы не мешалась.

Теперь её надо настроить, для этого нужно перейти в закладку Modify.

Здесь расположено окно с тремя кнопками. Окно показывает,  какие  объекты уже добавлены в систему. Чтобы добавить объект в  систему можно воспользоваться двумя способами:

•      Первый – нажать на кнопку Pick и выбрать объект, который мы хотим добавить.

•      Второй – нажать на кнопку Add. По нажатию на кнопку появится окно, в котором будет список объектов, которые присутствуют в сцене и при этом не добавлены ни в одну систему.

Выбери объекты, которые ты хочешь добавить, после чего нажми на кнопку Select.

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

Так, теперь Reactor знает, что эти объекты относятся к системе твёрдых тел. Далее надо настроить каждый объект. В настройку входит указание основных параметров, таких как вес, упругость, сила трения. Остальные параметры мы сейчас рассматривать не будем.

Параметры объекта задаются в самом реакторе. Reactor расположен в  закладке Utilities

Там надо нажать на кнопку   reactor, после чего появится окно настройки реактора. Сейчас нас будет интересовать последний свиток с  названием Properties. Этот свиток отображает настройки для выделенного объекта.

Если настройки серого цвета, то это означает, что не один объект не выбран.

Давай выберем нижний Box, который у нас будет играть роль пола. Теперь раскрой свиток Properties и ты увидишь настройки выбранного объекта.

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

Дальше выбираем второй бокс и задаём ему массу 20 единиц.

Теперь  нужно  посмотреть,  что  у  нас  получится.  Чтобы   запустит  симуляцию необходимо раскрыть свиток Preview & Animations.

Здесь есть две кнопки, Create Animations и Preview in Window. Первая создаёт ключи, а  вторая  осуществляет  расчёт  и  позволяет   предварительно  посмотреть,  что  у  нас получилось. Нам нужно посмотреть, что у нас получилось, поэтому нажимаем на кнопку Preview in Window. По нажатию на это кнопку откроется окно в котором будет показана наша сцена в виде перспектива.

Для того чтобы запустить симуляцию нужно нажать на кнопку  Simulation и там выбрать пункт Play/Pause (горячая клавиша P).

Запусти симуляцию и посмотри что получится. И что у нас вышло? Box провалился под пол! С чем же это связано!? Закрой окно симуляции и посмотри в виде перспективы снизу на боксы.

Что означает это искажение? Нет, это вовсе не глюк ☺ А дело тут  вот в чём: все объекты, который мы создаём, при условии, что создаём все в одном виде, имеют одну и туже координату, следовательно одна из граней у них сливается и при симуляции объекты не сталкиваются.

Чтобы  это  исправить,  необходимо  немного  приподнять  Box  над  полом.  Теперь создай сферу и размести её над боксами, как показано на рисунке.

Добавь созданную сферу в систему твёрдых тел и задай её массу 300 единиц.

Произведи симуляцию.

Ну  как,  понравилось?  Теперь  попробуй  добавить  ещё   несколько   объектов  и посмотри, как они будут себя вести при столкновении.

 

12.3  Расчёт физики ткани

Создай плоскость и размести её над всеми объектами.

Теперь надо создать систему, отвечающую за ткани, а именно CLCollection.

Если ты сразу попытаешься добавить плоскость в эту систему, то у тебя ничего не получится. Это связано с тем, что перед добавлением плоскости в систему CLCollection, к ней надо применить модификатор reactor clothe.

Примени модификатор и попробуй добавить плоскость в систему CLCollection.

Один объект не может относиться сразу к двум системам, например к CLCollection

и RBcollection.

Теперь произведи симуляцию. У меня получилось вот так.

Почему-то  ткань  получилась  какая-то  угловатая!  Чтобы  это  исправить  увеличь количество сегметов хотя бы до 15 по длине и ширине. Итоговый вариант показан ниже.

Чтобы создать ключи анимации нужно нажать на кнопку  Create  Animations. Всё,

теперь можно запускать визуализацию и сохранять видео.

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

Источник: Редактор – Сикорский В.В., Ананьин И.К.   Трёхмерное моделирование в 3Ds Max, Учебное пособие к курсу. – М.: Физтех-школа, 2008 г. – 109с.: ил.

По теме:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий