This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров UUSL
Плагины
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Коллизионные формы (Shapes)

В то время как тело (body) имитирует различные типы физического поведения, форма (shape) представляет собой объем пространства, занимаемого физическим телом. Физически моделируемый объект обычно имеет одно тело и одну или несколько форм, которые позволяют объектам сталкиваться друг с другом (поэтому формы часто называют формами столкновения). Объекты с формой также падают под действием силы тяжести, отскакивают от статичных поверхностей или скользят по ним. Тело, которому не назначена единственная форма, ведет себя как фиктивное тело , которое может быть соединено с другими телами с помощью сочленений , но не сталкивается и невосприимчиво к гравитации.

Основные типы форм следующие:

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

Примечание
Форма не должна дублировать сетку, которую она приближает. Рекомендуется использовать простые примитивы. Несмотря на то, что они неточны, в большинстве случаев они обеспечивают приемлемые результаты.
Число форм должно быть как можно меньше . В противном случае тяжелые физические вычисления снизят производительность.

Форма (shape) не может быть создана без тела (body) и не имеет собственной позиции в мировых координатах. Он всегда присваивается телу и позиционируется относительно него.

Смотрите также#

Программная реализация:

Параметры формы#

Все формы независимо от их типа имеют следующие общие параметры

Shape parameters

Enabled Флаг, указывающий, включена ли форма.
Continuous Флаг, указывающий, включено ли непрерывное обнаружение столкновений для формы.
Примечание
Непрерывное обнаружение столкновений доступно только для сфер и капсул.
Mass Масса формы. Изменение массы влияет на плотность, которая рассчитывается путем деления массы на объем формы. В случае, если телу присвоено несколько форм (например, набор выпуклых оболочек)
Density Плотность формы. Изменение плотности влияет на массу, которая рассчитывается путем умножения объема формы на плотность.
Friction Коэффициент трения формы. Определяет шероховатость поверхности формы. Чем выше значение, тем меньше тенденция к скольжению формы.
Примечание
В случае, если объект содержит поверхность и форму, оба с указанным параметром трения, будет использоваться только параметр формы.
Restitution Коэффициент восстановления формы. Определяет упругость формы при столкновении.
  • Минимальное значение 0 указывает на неупругие столкновения (кусок мягкой глины, ударяющийся об пол)
  • Максимальное значение 1 соответствует очень упругому столкновению (резиновый мяч, отскакивающий от стены).
Примечание
В случае, если объект содержит поверхность и форму, оба с указанным параметром восстановления, будет использоваться только параметр формы.
Position Положение формы в координатах тела (body).
Rotation Вращение формы в координатах тела (body).
Physics Intersection mask Битовая маска формы Physics Intersection.
Collision mask Битовая маска столкновения формы. Эта маска используется для указания столкновений формы с другими.
Exclusion mask Битовая маска исключения формы. Эта маска используется для предотвращения столкновения формы с другими.

Наш видеоурок по физике содержит обзор параметров формы и разъяснения по использованию Exclusion и Collision masks .

Добавление формы#

Чтобы добавить форму через UnigineEditor , выполните следующие шаги:

Вы можете включить визуализацию форм, выбрав панель Helpers → элемент Physics → параметр Shapes (Visualizer должен быть включен).

Сфера#

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

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

Sphere shapes

Чтобы форма соответствовала вашему объекту, вы можете настроить Радиус сферы.

Radius of the Sphere

Капсула#

Капсула также представляет собой форму очень быстрого столкновения с возможностью непрерывного обнаружения столкновения. Капсулы удобны для приближения удлиненных предметов (колонн и т.д.), А также персонажей-гуманоидов, поскольку позволяют им плавно подниматься и спускаться по лестнице, не спотыкаясь на каждой ступеньке (если ступеньки не слишком высокие). Это также гарантирует, что конечность персонажа не застрянет где-нибудь неожиданно.

Capsule shapes

Чтобы форма соответствовала вашему объекту, вы можете настроить радиус и высоту капсулы.

Height and Radius of the Capsule

Цилиндр#

Цилиндр можно использовать для приближения удлиненных форм с плоскими концами (например, валов, пилонов и т. д.). Он похож на форму коробки.

Cylinder shapes

Чтобы форма соответствовала вашему объекту, вы можете отрегулировать радиус и высоту цилиндра.

Height and Radius of the Cylinder

Куб#

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

Box shapes

Чтобы форма соответствовала вашему объекту, вы можете отрегулировать размер поля по каждой оси: Size X, Size Y, Size Y.

Size of the Box

Выпуклая оболочка (Convex hull)#

Convex hull - самая медленная из всех форм и используется для объектов сложной геометрии. Созданная форма всегда будет выпуклой, то есть отверстия и полости сетки игнорируются при создании выпуклой оболочки. Вместо этого они включены в объем формы. Выпуклая форма - это наименьшая форма, которая может охватывать вершины приближенной сетки.

Convex shapes

Для создания выпуклой оболочки укажите значение ошибки аппроксимации:

Convex shape

Параметр Approximation error позволяет уменьшить количество вершин создаваемой формы. Простые и грубые выпуклые оболочки с небольшим количеством вершин обрабатываются быстрее, поэтому рекомендуется сохранять количество вершин как можно меньшим.

  • При значении 0 форма точно дублирует сетку; весь его объем прилагается.
  • Чем выше значение, тем меньше вершин в созданной форме, но тем больше деталей пропускается.
Zero Approximation Error
Ошибка аппроксимации = 0
  Higher value of Approximation Error
Ошибка аппроксимации = 0,1

Автогенерируемая форма#

Чтобы приблизить сложный вогнутый объект и исключить полости из его объема, используйте набор автоматически сгенерированных выпуклых оболочек .

Сложный вогнутый объект, аппроксимированный единственной выпуклой оболочкой (слева) и автоматически сгенерированным набором выпуклой оболочки (справа)

Чтобы добавить автоматически сгенерированный набор форм, укажите следующие параметры:

Convex shapes

Recursion depth определяет степень декомпозиции сетки. Если указан 0 или отрицательное значение, будет создана только одна форма. Чем выше значение, тем больше выпуклых форм будет создано

Approximation error позволяет уменьшить количество вершин генерируемых форм. Простые и грубые выпуклые оболочки с небольшим количеством вершин обрабатываются быстрее, поэтому рекомендуется сохранять количество вершин как можно меньшим.

  • При значении 0 форма точно дублирует сетку; весь его объем прилагается.
  • Чем выше значение, тем меньше вершин в созданной форме, но тем больше деталей пропускается.

Merging threshold определяет порог объема для слияния выпуклых форм после разложения и может использоваться для уменьшения количества генерируемых форм: чем выше значение, тем меньше выпуклые формы будут созданы.

Последнее обновление: 13.12.2021
Build: ()