Rigid Body
Тело Rigid позволяет моделировать физические тела в соответствии с динамикой тела Rigid. Этот тип тела является наиболее часто используемым и наиболее эффективным с точки зрения производительности.
Дополнительная информация#
- Класс BodyRigid
Назначение тела Rigid#
Чтобы присвоить объекту тело Rigid через UnigineEditor, выполните следующие действия:
- Откройте окно World Hierarchy.
- Выберите объект, которому нужно присвоить тело Rigid.
-
Перейдите на вкладку Physics в окне Parameters и назначьте физическое тело выбранному объекту, выбрав Body -> Rigid.
- Задайте название тела и при необходимости измените другие параметры.
Параметры#
Набор параметров тела Rigid в соответствии с динамикой тела Rigid включает следующее:
Immovable |
Включает и выключает статический режим для тела Rigid. Если флаг установлен, тело будет игнорировать все силы в мире и сохранит свое положение, оставаясь коллизионным объектом. |
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Gravity | |||||||||||||||||||
Freezable |
Примечание
Этот флаг рекомендуется всегда устанавливать для всех твердых тел, кроме Player Actor. Застывание игрока заставляет его реагировать на ввод пользователя с задержкой по времени — небольшой, но всё же ощутимой. |
||||||||||||||||||
Shape-Based |
Объем тела Rigid можно аппроксимировать несколькими формами (например, вогнутый объект, разделенный на набор выпуклых многогранников или тело Ragdoll). У каждой формы своя масса и плотность. Поэтому определенные параметры тела Rigid, такие как его общая масса, центр масс и тензор инерции, определяются его формой. Эти параметры могут быть рассчитаны автоматически, если включена опция Shape-based. Примечание
Установка индивидуальных масс или плотности форм — наиболее простой метод достижения правильного физического поведения тела. Даже если эти параметры будут переопределены параметрами тела, они все равно используются для распределения массы внутри объекта. |
||||||||||||||||||
Inertia |
Момент инерции — это вращательный аналог массы, описывающий сопротивление тела вращению в разных направлениях. Он определяется распределением массы по объему тела. Чем дальше от оси вращения находится центр масс, тем больше инерции вращения у тела. Тензор инерции, который позволяет вычислить момент инерции относительно произвольной оси, представлен в виде матрицы I:
где Iij задает момент инерции вокруг оси i, когда тело вращается вокруг оси j. Примечание
Чтобы тело вращалось равномерно вокруг оси вращения, матрица должна быть диагональной, т.е. все значения за пределами главной диагонали должны быть установлены на 0. В противном случае тело может начать хаотично вращаться. Что касается значений момента инерции:
Значения корректируются относительно среднего значения для обеспечения более плавного движения. Например, на следующем рисунке показаны три кубика с разными тензорами инерции. Желтый кубик имеет очень высокую инерцию:
Из-за этого он может скользить вниз только при падении на наклонную плоскость. Красный кубик, напротив, имеет наименьшую инерцию и наиболее активно вращается.
Различные тензоры инерции, которые переопределяют параметры на основе формы
|
||||||||||||||||||
CMass |
Центром массы тела можно назначить произвольную точку. Возможно, потребуется скорректировать движение объекта, чтобы добиться желаемого вида. Например, для неваляшки сферической формы распределение массы должно быть неравномерным: ее центр масс должен располагаться ближе ко дну, чтобы она всегда возвращалась в вертикальное положение из наклона. Примечание
Центр масс задается как координаты точки в локальном пространстве тела. |
Информация, представленная на данной странице, актуальна для версии UNIGINE 2.20 SDK.