Автор статьи:
На этом уроки мы познакомимся с твердым телом в плагине reactor для 3dsmax 4. Я затрону только основное, т.е. сам принцип создания динамических твердых тел и взаимодействия между ними, так же подробно расскажу о некоторых настройках и параметрах.
А теперь сам урок:
Сначала запустите 3ds max и создайте сцену — сцена состоит из трех боксов стоящих друг на друге, анимированного мячика и объекта plane т.е. пола со стенками. Теперь давайте посмотрим на поведение нашего мячика, воспроизводим анимацию, брошенный мяч катиться в сторону коробок, вот вам и идея.Нам нужно подкатить шар к первому боксу и выбить его. в результате вся конструкция развалиться
Далее идем в меню helpers выбираем reaсtor.
Перед вами появится список вспомогательных модулей reactor‘a, каждый из них предназначен для симуляции разных типов тел (мягких, твердых, пружин/веревок и т.д) Нам нужен помошник для создания твердых тел. (каждый помошник называется коллекцией и позволяет выбирать объекты для создания связи между ними, т.е. вы указываете какие объекты в сцене использовать, а какие нет) Далее, выбираем модуль RBcollection и помещаем его в любое место нашей сцены.
Затем переходим к панели modify выделяем помошник rbcollection01. Нажимаем на кнопку add, перед вами появится окошко со списком всех объектов в сцене. Нам необходимо задействовать все объекты. поэтому смело выделяем все и нажимаем кнопку select.
Теперь все объекты сцены могут воздействовать друг на друга, а те которых нет в списке будут просто проигнорированы reactor‘ом и станут невидимыми для твердых тел.
Затем перебираемся к панели utilities нажимаем кнопк more перд вами появится список всех утилит. Найдите в этом списке модуль reactor и выберите его. Загрузится основной модуль reactor, для удобства перетащите окно с настройками в сторону, чтобы уместить все настройки в три столбца и не листать бесконечный список.
Разверните все вкладки что бы видеть ветви с настройками. Ощущается небольшая загруженность меню, но это только в первый раз.
Теперь выделите в сцене три коробки, сейчас они находятся в статичном состоянии имеется ввиду то, что они не могут двигаться и если шар прикатится к одной из коробок, то его просто отбросит в сторону, при этом сам бокс не шевельнется. Так что нам нужно указать вес объекта и задействовать подчинение гравитации, чтобы при столкновении шара с коробкой она упала. Переходим к панели properties, находим параметр weight изменяем значение с 0 на 5.0. Теперь каждый блок весит 5 килограмм. Еще обратите внимание на заголовок simulation geometry (тип геометрии для симуляции) convex — это динамически ограниченный объект, имеется ввиду что у вас в сцене используются примитивы которые по форме похожи на коробки или сферы т.е. привычный для всех чайник, reactor будет видить как сферический объект. Такое разделение объектов на геометрические типы значительно ускоряет процесс просчета динамики. Мы оставим текущее значение Simulation geometry — Use Bounding Box. Ведь в нашей сцене присутсвуют короба. Так же обратите внимание на параметр эластичность (elasticity
) и энерция (friction), оставим значения по умолчанию, для нашего урока они как раз подходят, можете позже изменить их, они играют не маловажную роль в поведении объектов после столкновения, либо просто скатываются по поверхности или подпрыгивают, ну и могут просто не сдвинуться с места.
Теперь выделите шар, и проделайте над ним такие же действия, установите вес равный 15 килограммам. Тип объекта Bounding Sphere. И последний объект в сцене это пол, нам не нужно чтобы он взаимодействовал с другими объектами, а просто выполнял роль неподвижной поверхности, значит вес должен быть 0кг. Объект с нулевым весом будет статичным. Еще можно не использовать ограничители для объектов, а поставить значение Use Mesh таким образом будет использоваться настоящие границы объекта, без подмены на короб или сферу.
Вроде бы в настройках нет ничего сложного, но сколько времени у меня ушло на изучение и предназначение каждого параметра методом научного тыка, чтобы в будущем знать, что и где надо изменить, дабы придать объекту те или иные свойства. наш шар с текущими настройками должен упасть на землю и подпрыгнуть пару раз, я настроил его таким образом чтобы не просто падал сверху, а был бы брошен в нашу комнату, сделать это достаточно просто: устанавливаем ключевой кадр на позиции -8 и еще один на кадре 0 перемещаем шар, теперь он просто перемещается с -8 до 0 кадра, когда шар достигнет нулевого кадра на него начнет действовать сила тяжести и гравитации, именно на этой позиции он будет заброшен в комнату.
Возвращаемся к панели утилит, ищем меню advanced, изменяем параметр collision tolerance на 5. Этот параметр отвечает за расстояние между объектами до момента столкновения. По умолчанию значение параметра дистанция слишком велико и объекты на самом деле не соприкасаются, его нужно уменьшить, чтобы столкновение было реальным.
Сцену мы настроили (разумеется, если вы правильно проделали все этапы этого урока) теперь самое время просчитать симуляцию динамики, для этого в панели Animation&Export нажимаем кнопку perform simulation, количество кадров для просчета не изменяйте от 0 до 100 нам как раз подходит, если вы хотите покадрово просмотреть процесс просчета динамика, поставте галочку напротив чекбокса update viewports, а владельцы мощных компьютеров могут просмотреть анимацию в реальном времени под управлением OpenGl, без просчета. Для этого спустимся к панели Display, все параметры оставим без изменения, единственное включим поддержку DirectX и полноэкранный режим (кому как будет удобней) и нажмем кнопку Preview in Window
После просчета сцены мячик должен упасть к основанию первой коробки и выбить ее, вышестоящие коробки тоже упадут на землю.
Первоисточник — www.3dcenter.ru