Физика Одежды в Unity 3.0 (beta 4)
Оглавление.
-
Варианты реализации.
-
Interactive Cloth.
-
Плюсы.
-
Минусы.
-
Возможности применения.
-
-
Skinned Cloth.
-
Принцип действия.
- Плюсы.
- Минусы.
-
Возможности применения.
-
-
Прочее.
-
- Реализация реалистичной модели физической симуляции одежды на базе Skinned Cloth
-
Физика юбки.
-
Моделлирование.
-
Предподготовка физики :
-
Rigidbody
-
Colliders
- Joint.
-
-
-
-
Применение коллайдеров для симуляции столкновений между различными частями одежды.
Варианты Реализации
Интерактивные Ткани (Interactive Cloth)
Компонент Interactive Cloth предоставляет готовую возможность симуляции реалистичного поведения тканей с учётом настраиваемых свойств тканей и столкновений с физическими объектами сцены. В том числе, подобная ткань может учитывать коллизии сама с собой.
ПЛЮСЫ :
-
Реалистичное поведение.
-
Сложная, богатая физическая реакция.
-
Возможность «разрушения» ткани.
МИНУСЫ :
- Большая нагрузка на CPU
-
Недостаточно реализован перехват исключительных значений, что приводит к фатальным ошибкам при инициализации приложения. Видимо, будет поправлено вскоре.
- Капризное, не всегда предсказуемое поведение в Редакторе Unity. Как и предыдущий пункт, вероятно это проблемы текущей Бета версии.
- Невозможно изменить Scale фактор симулируемой одежды.
ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ :
- Применять для симуляции поведения одежды можно, но очень дорого в плане нагрузки на CPU
-
Хорошо применимо для симуляции плащей, накидок, волос. Всего того, что максимально близко по форме к плоскости. Ленты, пряди, возможно верёвки.
Компонент Skinned Cloth
Компонент Skinned Cloth реализует упрощённую модель физики тканей, но, тем не менее, во многих аспектах, превосходящий Interactive Cloth по качеству симуляции и её результатам.
ПРИНЦИП ДЕЙСТВИЯ :
Компонент назначается только на скинированные объекты (имеющие компонент Skinned Mesh Renderer). Skinned Cloth берёт за основу информацию вершин скинированного объекта и добавляет к их поведению, настраиваемую степень свободы. Рассмотрим простейший пример на основе «резинового мячика». Если мы применим к нему компонент Skinned Cloth и бросим на землю, его «резиновое тело» до определённой степени продавится, как если бы с него выпустили часть воздуха. Степень свободы смещения вершин от позиций, заданных скиннингом (в том числе и анимацией), настраивается индивидуально для каждой вершины, в настройках компонента Skinned Cloth.
Так же, как и мячек, ведут себя любые другие скинированные объекты. То есть, если у нас есть юбка и анимация идущей женщины, сделанная для этой юбки, «ткань» юбки добавит к заданной анимации физическую свободу и реакцию на перемещения, в соответсвии с настройками компонента Skinned Cloth.
ПЛЮСЫ :
-
Быстрая обработка.
-
Отличное взаимодействие с анимациями.
-
Тонко настраиваемое поведение каждой «части одежды» – то есть каждой отдельной вершины.
- Связь с костями SkinnedMesh, дающая возможность более глубокой симуляции физики.
МИНУСЫ :
-
Ограниченная степень свободы вершин.
-
Неразрушаемая ткань.
-
Отсутствие коллизий с другими скинированными тканями.
ВОЗМОЖНОСТИ ПРИМЕНЕНИЯ :
-
Практически без ограничения для симуляции поведения одежды.
ПРОЧЕЕ
Реализация физического поведения одежды иными методами не представляется целесообразной в виду непредсказуемости результата и очень большими временными затратами.
Реализация реалистичной модели физической симуляции одежды на базе
Skinned Cloth
Как мы рассмотрели выше, Skinned Cloth имеет существенный недостаток — отсутствие коллизий между различными объектами одежды или тела персонажа. Преодолеть этот недостаток можно с помощью предания физического поведения костям SkinnedMesh, поведение которых управляет поведение вершин скинированного объекта, то есть, в данном исследовании — одежды персонажа.
ФИЗИКА ЮБКИ :
Предположим, мы хотим усложнить физику поведения юбки. Для этого, нам необходимо :
- Моделлирование :
На этапе моделлирования, создать радиальную группу «костей» идущую от пояса к подолу.
-
Предподготовка физики :
- Предподготовка Rigidbody :
Добавить к «костям» компонент Rigidbody для регистрации их в физическом движке как подвижных физических объектов.
-
- Предподготовка коллайдеров (Colliders) :
Назначить «костям» юбки коллизионные примитивы (предпочтительнее всего — Capsule Collider).
-
- Предподготовка Сочленений (Joints) :
Соединить с помощью Joints все «кости» попарно для предотвращения их падения вниз под действием «силы тяжести». Так же сочленения (Joints) необходимы для настройки поведения сочленения костей. Задания степени свободы на изгиб и пружинистости.
-
Предподготовка окружения.
Применение пунктов 2.1 и 2.2 ко всем объектам, с которыми данный объект (юбка) может войти в физическое соприкосновение.
По Умолчанию, тело персонажа заранее имеет все необходимые физические компоненты, как то : Colliders и Rigidbody
Таким образом, во время работы приложения, на подготовленные коллайдеры начнёт воздействовать физика, они займут положения, сообразно коллизиям, настройкам сочленений и силе тяжести, изменив конфигурацию Skinned Mesh, что в свою очередь, изменит состояние Skinned Cloth. В результате мы получим более реалистичное поведение ткани и учёт внешних коллизий.
Применение Коллайдеров для симуляции столкновений
между различными частями одежды.
Техника, описанная выше, так же применима для симуляции столкновений различных элементов одежды между собой. К примеру жакет и юбка, настроенные с применением коллайдеров, сочленений и ригидбоди, не «проникнут» ни в тело манекена ни в друг друга, потому что коллайдеры их костей не дадут им этого сделать.
Примечание : Не стоит злоупотреблять описанной методикой. Настройка всех параметров достаточно кропотливая работа и большой колличество физических объектов может повлиять на производительность приложения. Желательно применять методу только там, где это оправданно и необходимо, то есть там, где настроек только компонента Skinned Cloth недостаточно.
Copyright : Neodrop (2010)
Один комментарий на «Физика одежды в Unity 3.0 (небольшое эссе на тему Skinned Cloth)»
Ваш отзыв
Вы должны войти, чтобы оставлять комментарии.
23 Дек 2013 в 14:44
lewisohn@dora.progandist” rel=”nofollow”>.…
спс….