Rigid Body
Rigid body позволяет моделировать физические тела в соответствии с Rigid body динамика . Этот тип кузова является наиболее часто используемым и наиболее эффективным с точки зрения производительности.
Набор параметров Rigid body в соответствии с Rigid body динамика включает следующее:
- Плотность
- Линейное демпфирование и угловое демпфирование
- Максимальная линейная скорость и максимальная угловая скорость
- Трение
- Реституция
- Замораживаемый
- Недвижимое
Смотрите также#
Программная реализация:
- BodyRigid класс.
Параметры массы на основе формы#
Объем Rigid body может быть приблизительно равен нескольким формы (например, вогнутый объект, разделенный на набор выпуклых оболочек или Ragdoll body). У каждой формы своя масса а также плотность . Поэтому определенные параметры Rigid body, такие как его полная масса, центр масс и тензор инерции, определяются его формой. Эти параметры могут быть рассчитаны автоматически, если включена опция Shape-based.
Чтобы включить эту опцию для тела через UnigineEditor выполните следующие действия:
- Выберите желаемый объект с присвоенным ему значением Rigid body.
- Перейдите на вкладку Physics в окне Parameters.
- В разделе Body отметьте опцию Shape-based.
Переопределение параметров фигур#
Отключение опции Shape-based позволяет вручную переопределить некоторые общие параметры для тела.
Чтобы отключить эту опцию для тела через UnigineEditor выполните следующие действия:
- Выберите желаемый объект с присвоенным ему значением Rigid body.
- Перейдите на вкладку Physics в окне Parameters.
- В разделе Body отметьте опцию Shape-based. Поля общих параметров для тела будут активированы.
- Настройте параметры тела вручную.
Центр массы#
Произвольную точку можно назначить центр массы тела. Возможно, потребуется скорректировать движение объекта, чтобы добиться желаемого вида. Например, наклонная кукла сферической формы требует неравномерного распределения массы: ее центр масс должен располагаться ближе ко дну, чтобы она всегда стояла при наклоне.
Момент инерции#
Момент инерции - это вращательный аналог массы, описывающий сопротивление тела вращению в разных направлениях. Он определяется распределением массы по объему тела. Чем дальше от оси вращения находится центр масс, тем больше инерции вращения у тела.
Тензор инерции, который позволяет вычислить момент инерции относительно произвольной оси, представлен в виде матрицы I:
Ixx | Ixy | Ixz |
Iyx | Iyy | Iyz |
Izx | Izy | Izz |
где Iij задает момент инерции вокруг оси i, когда тело вращается вокруг оси j.
Что касается значений момента инерции:
- Чем выше значение, тем больший крутящий момент необходимо приложить для вращения тела вокруг определенной оси.
-
Чем ниже значение, тем легче изменить угловую скорость тела относительно определенной оси.
Не рекомендуется устанавливать значения меньше 0.011! В противном случае матрица не будет инвертирована должным образом, что необходимо для подачи импульса столкновения.
Значения корректируются относительно среднего значения для обеспечения более плавного движения.
Например, на следующем рисунке показаны три прямоугольника с разными тензорами инерции. Желтая коробка имеет очень высокую инерцию:
100 | 0 | 0 |
0 | 100 | 0 |
0 | 0 | 100 |
Из-за этого он может скользить вниз только при падении на наклонную плоскость. Красный ящик, напротив, имеет наименьшую инерцию и наиболее активно вращается.
Замораживаемое тело#
Если для Rigid body установлен флаг Freezable, его симуляция заморожена когда необходимо.
Недвижимое#
Флаг Immovable включает и выключает статический режим для Rigid body. Если флаг установлен, тело будет игнорировать все силы в мире и сохранит свое положение, оставаясь объектом коллайдера.
Назначение твердого тела#
Чтобы присвоить объекту Rigid body через UnigineEditor выполните следующие действия:
- Откройте окно World Hierarchy.
- Выберите объект, которому нужно присвоить Rigid body.
-
Перейдите на вкладку Physics в окне Parameters и назначьте физический тело к выбранному объекту, выбрав Body -> Rigid.
- Задайте название тела и при необходимости измените другие параметры.