Найти тему
Записки 3D-шника

Обзор плагина RayFire для 3DS MAX

Поговорим о плагине RayFire для 3DS MAX. С помощью него можно анимировать динамические объекты, создавать разрушения и разбивать модели. Это отличное дополнение в работе фрилансера и VFX студий. Для симуляций используются PhysX от nVidia и Bullet (Bullet Physics Library) который распространяется под свободной лицензией zlib.

Больше интересного в Телеграм канале "Записки 3D-шника" https://t.me/notes3drus

Неполный список проектов, где использовался плагин:

Игры: Dishonored 2, Diablo 3, The Elder Scrolls Online, Batman: Arkham City, GTA San Andreas.

Фильмы: The Avengers, Transformers: Dark of the Moon, 2012, Star Trek Into Darkness.

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

-2

При добавлении объектов в плагин есть несколько типов объектов. Для тех, кто уже сталкивался с подобными симуляциями, например во встроенном инструменте 3DS MAX – MassFX различия объектов будут знакомы. Первая вкладка окна отвечает за сами объекты.

Работа в геймдеве. Вакансии 🎯

Dynamic/Impact objects – это динамические объекты на которые воздействует сила гравитации и отскока от поверхности, скорость перемещения, и т.д.

Static & Kinematic objects – статические объекты не перемещаются, на них не действует гравитация и они не поддаются воздействию других объектов. Однако, они взаимодействуют с динамическими объектами. Как пример, можно рассматривать основу сцены – пол или другая поверхность, которая статична. Кинематические объекты могут быть проанимированы и могут воздействовать на другие динамические объекты, но не поддается воздействию извне. Как пример, пролет камня через стекло, когда изменением скорости камня при контакте со стеклом можно пренебречь. В данном случае камень будет кинематическим объектом. При этом камень можно назначить и динамическим объектом, но при этом будет необходим дополнительный просчет воздействия внешних сил, а это в свою очередь потребует больше времени на симуляцию. Стекло в свою очередь должно быть заранее разделено на фрагменты для визуального разрушения.

Sleeping objects – спящие объекты не участвуют в симуляции до взаимодействия с динамическим или кинематическим объектом. Из примера ранее, спящим объектом будет стекло, через которое проходит камень. Также в этом разделе можно дополнительно включить функцию Dead objects. При этом объекты будут взаимодействовать с динамическими или кинематическими объектами, а также перемещаться, но лишь до момента пока осуществляется контакт. Далее такие объекты просто останавливается. Инерция и гравитация на них не действует.

Для каждого типа объектов можно установить свои физические параметры.

Simulation geometry – тип геометрии который накладывается на меш и используется при для просчета взаимодействий. В игровых движках встречаются похожие термины, например: Collider или Collision. На выбор есть: Box, Sphere, Convex и Concave. Box и Sphere наиболее простые в просчете и требуют наименьшее количество ресурсов при симуляции. Convex – описывает общую форму используемого меша, без точного совпадения со всем рельефом и деталями объекта. Concave – самая точная геометрия взаимодействий. Полностью описывает форму меша, но при этом наиболее требовательная к ресурсам при симуляции. На одиночных объектах разница будет не заметна, однако в сложных сценах оптимизация даст приличную экономию времени.

Material – стекло, резина, металл и прочее. Заданные параметры каждого пресета содержат плотность, упругость и т.д. Здесь всё достаточно просто. Эти параметры можно редактировать.

-3

На второй вкладке Physics есть возможность настройки движка – Physical options. На выбор можно использовать PhysX или Bullet. Выбор параметров будет одинаковый. Start и End Frame – диапазон кадров для симуляции. Time Range – количество кадров. Collision tolerance – на какое расстояние один объект может проникать в другой или пересекаться. Substeps – количество просчетов траектории объекта в один кадр. Gravity – коэффициент гравитации. Time Scale – коэффициент времени. В верхней части расположены кнопки: Preview, Bake, Pause и Stop. Preview – демонстрирует получившуюся анимацию без записи анимационных ключей. Bake – кроме просчета и показа процесс взаимодействия дополнительно размещает ключи анимации на таймлайне для последующего быстрого доступа и редактирования всех движений объектов. В режиме паузы доступно изменение параметров движка. Например, параметров гравитации или коэффициента времени. Все эти изменения будут записаны, как до редактирования параметров, так и после.

Далее во второй вкладке Physics есть окно Simulation properties. В него можно добавлять объекты, которые действуют на фрагментированный меш разрушения.

Как пример, рассмотрим RF_Bmb – «бомба».

-4

На выбор есть сферическая, планарная и цилиндрическая. Также есть параметры настройки. Кроме «бомбы» из плагина, можно использовать тот же инструмент встроенный в Макс - PBomb. Настроек несколько меньше, а встроенный в плагин вариант будет работать быстрее.

-5

Кроме перечисленных также можно использовать встроенные в Макс силы – ветер, гравитация и остальные.

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

Interactive demolition properties – интерактивное разрушение объекта. При его включении, меш будет разрушаться в реальном времени с заданными свойствами.

-6

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

Кроме отдельного рабочего окна плагина, есть несколько модификаторов, которые можно применять на объекты:

-7

RayFire Asperity – добавляет детализацию на фрагменты, но и увеличивает количество полигонов.

RayFire Bricks – позволяет разбивать геометрию на кирпичи.

RayFire Clusters – позволяет объединять разбитые части объекта в более крупные группы.

RayFire Cracks - модификатор позволяет анимировать реальные трещины.

RayFire Rigid – расширенная настройка физики и разрушений в реальном времени.

RayFire Shatter - модификатор повреждений и фрагментации на основе тетраэдра.

RayFire Slice – повторяет функцию Макса Slice в Edit Poly, но с большим количеством настроек и в виде модификатора.

RayFire Voronoi – фрагментация меша путем алгоритма Voronoi.

RayFire Voxels – создаёт воксели на базе исходной геометрии. Воксель – тот же пиксель, но в объеме.

При последующем использовании разрушаемых объектов и интеграции их в движок есть проблема с топологией. Как и ProBoolean, RayFire оставляет после себя объекты с не очень правильной сеткой. Остается много неиспользуемых вертексов и некорректное применение групп сглаживания. Так как в будущем эти части разрушенного объекта не предполагают дальнейшее редактирование, то можно просто всё триангулировать, накинуть общий модификатор Smooth и сделать UV развертку автоматически, через Unwrap UVW используя Flatten Mapping.

RayFire - интересный и незаменимый инструмент в gamedev и повседневной работе. Это лишь поверхностный обзор плагина. Приемы и нюансы работы с ним, необходимо разбирать отдельно. Документацию на английском языке можно прочитать на сайте разработчика - https://rayfirestudios.com , видео версия на YouTube.

Плагин доступен по двум основным лицензиям: Single license - $285 и Three licenses - $695. Также доступна обучающая лицензия по цене $85.

Больше интересного в Телеграм канале "Записки 3D-шника" https://t.me/notes3drus

Пишите своё мнение в комментариях, задавайте вопросы и подписывайтесь на канал. Если вам понравилась статья, поддержите лайком. Спасибо.

Sini tools – обзор плагина для 3DS MAX
Записки 3D-шника3 февраля 2022
SoulburnScripts - Лучший набор скриптов для 3DS MAX
Записки 3D-шника27 декабря 2021
Обзор функций UV Tools 3 для 3DS MAX
Записки 3D-шника27 ноября 2022