Ткань
Компонент Cloth работает с Skinned Mesh Renderer, чтобы обеспечить решение на основе физики для симулирования тканей. Он специально разработан для одежды персонажей и работает только с Skinned Mesh Renderer. Если вы добавите компонент Cloth в GameObject с обычным Mesh Renderer, Unity удалит Mesh Renderer и добавит Skinned Mesh Renderer.
Чтобы прикрепить компонент Cloth к GameObject, который имеет Skinned Mesh Renderer, выберите GameObject в Редакторе, нажмите кнопку Добавить компонент в окне Inspector и выберите Физика > Ткань. Компонент появится в Inspector.
Свойства
| Свойство | Описание |
|---|---|
| Жесткость растяжения | Растяжная жесткость ткани. |
| Жесткость изгиба | Жесткость ткани при изгибе. |
| Используйте тетеры | Применять ограничения, которые помогают предотвратить движущиеся частицы ткани слишком далеко от фиксированных. Это помогает уменьшить избыточную растяжение. |
| Использование гравитации | Должно ли к ткани применяться ускорение гравитации? |
| Амортизация | Коэффициент амортизации движения. |
| Внешнее ускорение | Постоянное внешнее ускорение, действующее на ткань. |
| Случайное ускорение | Случайное внешнее ускорение, приложенное к ткани. |
| Всемирная шкала скорости | Насколько пространственно-мировое перемещение персонажа повлияет на вершины ткани. |
| Всемирная шкала ускорения | Насколько ускорение персонажа в пространстве мира повлияет на вершины ткани. |
| Фрикция | Трение ткани при столкновении с характером. |
| Масса столкновения | Насколько увеличить массу столкнувшихся частиц. |
| Используйте непрерывное столкновение | Включить непрерывное столкновение для повышения стабильности столкновения. |
| Использовать виртуальные частицы | Добавлять по одной виртуальной частице на треугольник для повышения стабильности столкновений. |
| Частота решения | Число итераций решателя в секунду. |
| Порог сна | Порог сна ткани. |
| Коллайдеры капсул | Массив CapsuleColliders, с которым должен столкнуться экземпляр Cloth. |
| Коллайдеры сферы | Массив ClothSphereColliderPairs, с которым должен столкнуться экземпляр Cloth. |
| Виртуальные веса частиц | Барицентрические координаты виртуальных частиц относительно трёх соседних обычных частиц ткани. (Как правило, подстраивать эти веса не требуется.) |
Подробности
Ткань не реагирует на все коллайдеры в сцене, и не применяет силы обратно к миру. Когда она добавлена, компонент Ткань не будет реагировать или влиять на другие тела вообще. Таким образом, Ткань и мир не распознают и не видят друг друга, пока вы вручную не добавите коллайдеры из мира в компонент Ткань. Даже после этого, симуляция по-прежнему является односторонней: ткань реагирует на эти тела, но не применяет силы обратно.
Кроме того, вы можете использовать только три типа коллайдеров с тканью: коллайдеры сферы, капсулы и конической капсулы, построенные с использованием двух коллайдеров сферы. Все эти ограничения существуют для повышения производительности.
Инструмент редактирования ограничений
Вы можете применять ограничения к конкретным вершинам ткани, чтобы дать им больше или меньше свободы движения.
В Inspector выберите Изменить ограничения ткани (верхняя левая кнопка) в компоненте ткани. Когда инструмент активен, в представлении Scene на всех вершинах сетки появляются небольшие сферы. Они представляют частицы ткани, к которым можно применить ограничения. Цвет частицы представляет относительное значение ее ограничения в ткани, в соответствии с типом выбранного ограничения.
Окно инструмента Ограничения ткани также появляется в правом нижнем углу представления Scene.
Инструмент «Ограничения ткани» имеет следующие параметры:
| Свойство | Описание |
|---|---|
| Визуализация | Позволяет выбрать тип ограничения и частицы для отображения. Выберите из следующих вариантов:
Спектр цветов показывает соответствие между цветами частиц и значениями ограничений для выбранного типа ограничения, в соответствии с минимальными и максимальными значениями, применяемыми в настоящее время во всей ткани. Чёрный цвет всегда означает, что частицы не имеют ограничений. |
| Режим ограничения | Выберите способ редактирования значений ограничений ткани из следующих параметров:
|
| Размер ограничения | Размер отображаемых сфер, которые представляют частицы ткани. Настройте это значение по своему усмотрению, чтобы облегчить редактирование ограничений. Это свойство не влияет на сами ограничения. |
Выберите режим
Для использования инструмента Ограничения ткани в режиме выбора:
- Выберите Выберите в окне Ограничения ткани.
- Используйте курсор мыши, чтобы нарисовать поле выбора или нажмите на частицы по одному за раз.
- Включите тип ограничения, который вы хотите применить к выбранному объекту: Максимальное расстояние, Проникновение поверхностиили оба.
- Установите значение в соответствии с только что включенным типом ограничения.
Режим рисования
Для использования инструмента Ограничения ткани в режиме рисования:
- Выберите Краска в окне Ограничения ткани.
- Корректировка Радиус кисти согласно области вам нужно покрыть с кистью.
- Включите тип ограничения, которое вы хотите применить: Максимальное расстояние, Проникновение поверхностиили оба.
- Установите значение рисунка в соответствии с только что включенным типом ограничения.
- Нарисуйте ограничения на частицах с помощью кисти.
Градиентный режим
Для использования инструмента Ограничения ткани в режиме Градиент:
- Выберите Градиент в окне Ограничения ткани.
- Включить представление 2D в представлении Scene (инструмент не может применять градиент в представлении 3D).
- Используйте курсор мыши, чтобы нарисовать поле выбора или нажмите на частицы по одному за раз.
- Установите предельные значения градиента, который вы хотите применить слева направо в выбранном пространстве: Начало градиента и Конец градиента.
- Включите тип ограничения, который вы хотите применить к выбранному объекту: Максимальное расстояние, Проникновение поверхностиили оба.
Самостолкновение и межстолкновение
Столкновение ткани делает одежду персонажа и другие ткани в вашей игре более реалистичными. В Unity, ткань имеет несколько частиц ткани, которые управляют столкновением. Вы можете настроить частицы ткани для:
- Самостоятельство, которое препятствует проникновению ткани в себя.
- Взаимное столкновение, которое позволяет частицам ткани столкнуться друг с другом.
Чтобы настроить частицы столкновения для ткани, выберите кнопку Собственное столкновение и Взаимное столкновение в инспекторе ткани:
В представлении Scene появляется окно Самостоятельство и взаимодействие ткани:
Частицы ткани появляются автоматически для мешей с компонентом ткани. Изначально ни одна из частиц ткани не настроена на использование столкновения. Эти неиспользуемые частицы появляются черными:
Чтобы применить самостолкновение или межстолкновение, необходимо выбрать один набор частиц, к которым будет применено столкновение. Чтобы выбрать набор частиц для столкновения, нажмите кнопку Выбрать:
Теперь нажмите левой кнопкой мыши и перетащите, чтобы выбрать частицы, к которым вы хотите применить столкновение:
Выбранные частицы отображаются синим цветом:
Установите флажок Самостолкновение и межстолкновение, чтобы применить столкновение к выбранным частицам:
Частицы, которые вы указываете для использования в столкновении, отображаются зеленым цветом:
Чтобы включить поведение самостолкновения для ткани, перейдите в раздел Самостолкновение окна ткани Inspector и установите Расстояние между столкновениями и Жесткость между столкновениями на ненулевые значения:
| Свойство | Функция |
|---|---|
| Расстояние между столкновениями | Диаметр сферы вокруг каждой частицы. Unity обеспечивает, что эти сферы не перекрываются во время моделирования. Расстояние между столкновениями должно быть меньше, чем наименьшее расстояние между двумя частицами в конфигурации. Если расстояние больше, само столкновение может нарушить некоторые ограничения расстояния и привести к тремора. |
| Жесткость при межстолкновении | Насколько сильным должен быть импульс разделения между частицами. Ткань Solver рассчитывает это, и это должно быть достаточно, чтобы держать частицы разделены. |
Самостолкновение и взаимное столкновение могут занять значительную часть общего времени моделирования. Рассмотрите возможность сохранения расстояния столкновения небольшим и использования индексов самостолкновения для уменьшения числа частиц, столкнувшихся друг с другом.
Самостоятельное столкновение использует вершины, а не треугольники, так что не ожидайте, что самостоятельное столкновение будет работать идеально для мешей с треугольниками, намного больше, чем толщина ткани.
Режимы Краска и Erase позволяют добавлять или удалять частицы для использования в столкновении, удерживая левую кнопку мыши и перетаскивая отдельные частицы ткани:
В режиме Краска или Erase частицы, указанные для столкновения, зеленые, неуказанные частицы черные, а частицы под кистью синие:
Столкновение тканей
Вы указываете частицы для взаимного столкновения так же, как указываете частицы для самостолкновения, как описано выше. Как и в случае самостолкновения, вы указываете один набор частиц для взаимного столкновения.
Чтобы включить поведение коллизии, откройте настройки Физика (из главного меню в Unity: Изменить > Project Настройки, затем выберите Физика > Physics Settings > Ткань category) и установите Inter-Collision Distance и Inter-Collision Stiffness на ненулевые значения в разделе Cloth InterCollision:
Столкновение тканей Расстояние между столкновениями и Жесткость при межстолкновении Свойства имеют ту же функцию, что и свойства самостоятельных столкновений Расстояние и Жесткость, которые описаны выше.
Столкновение Collider
Платье не может просто столкнуться с произвольной геометрией мира, и теперь будет взаимодействовать только с коллайдерами, указанными либо в капсулярных коллайдерах, либо в сферических коллайдерах.
Массив сферических коллайдеров может содержать либо один допустимый экземпляр SphereCollider (со вторым нулевым), либо пару. В первом случае ClothSphereColliderPair представляет только один сферический коллайдер для столкновения ткани. В последнем случае он представляет коническую форму капсулы, определенную двумя сферами, и конус, соединяющий их. Конические формы капсулы полезны для моделирования конечностей персонажа.