This page has been translated automatically.
Видеоуроки
Интерфейс
Основы
Продвинутый уровень
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Профессиональный уровень (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Контроль версий
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Sandworm
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World-ноды
Звуковые объекты
Объекты поиска пути
Player-ноды
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Материалы и шейдеры
Rebuilding the Engine Tools
Интерфейс пользователя (GUI)
VR Development
Двойная точность координат
API
Animations-Related Classes
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
VR-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Учебные материалы

Rigid Body

Rigid body enables simulation of physical bodies in accordance with Rigid body dynamics. This type of body is the most commonly used and the most efficient in terms of performance.Тело Rigid позволяет моделировать физические тела в соответствии с динамикой тела Rigid. Этот тип тела является наиболее часто используемым и наиболее эффективным с точки зрения производительности.

Примечание
A Rigid body must have at least one collision shape assigned.На тело Rigid должна быть назначена хотя бы одна коллизионная форма.

Тела Rigid

The set of parameters of a Rigid body in accordance with Rigid body dynamics includes the following:Набор параметров тела Rigid в соответствии с динамикой тела Rigid включает следующее:

See alsoДополнительная информация#

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

Shape-based mass parametersПараметры массы, зависящие от формы#

Volume of a Rigid body can be approximated by several shapes (e.g. a concave object divided into a set of convex hulls or a Ragdoll body). Each shape has its mass and density. Therefore certain parameters of a Rigid body, such as its total mass, center of mass, and inertia tensor, are determined by its shapes. These parameters can be calculated automatically if the Shape-based option is enabled.Объем тела Rigid можно аппроксимировать несколькими формами (например, вогнутый объект, разделенный на набор выпуклых многогранников или тело Ragdoll). У каждой формы своя масса и плотность. Поэтому определенные параметры тела Rigid, такие как его общая масса, центр масс и тензор инерции, определяются его формой. Эти параметры могут быть рассчитаны автоматически, если включена опция Shape-based.

To enable this option for a body via UnigineEditor perform the following steps:Чтобы включить эту опцию для тела через UnigineEditor выполните следующие действия:

  1. Select the desired object with a Rigid body assigned.Выберите желаемый объект с присвоенным ему телом Rigid.
  2. Go to the Physics tab in the Parameters window.Перейдите на вкладку Physics в окне Parameters.
  3. In the Body section, check the Shape-based option.В разделе Body отметьте опцию Shape-based.
Примечание
Setting the individual masses or densities of the shapes is the most intuitive method to achieve correct physical behavior of the body. Even if overridden by the body parameters, they are still used to determine the distribution of mass within the object.Установка индивидуальных масс или плотности форм — наиболее простой метод достижения правильного физического поведения тела. Даже если эти параметры будут переопределены параметрами тела, они все равно используются для распределения массы внутри объекта.

Shapes that approximate rigid bodies

Rigid bodies that are approximated with different shapes according to their geometryТела Rigid, которые аппроксимируются различными формами в соответствии с их геометрией

Overriding Shapes ParametersПереопределение параметров форм#

Disabling the Shape-based option makes it possible to manually redefine some total parameters for the body. Отключение опции Shape-based позволяет вручную переопределить некоторые общие параметры для тела.

To disable this option for a body via UnigineEditor perform the following steps:Чтобы отключить эту опцию для тела через UnigineEditor выполните следующие действия:

  1. Select the desired object with the Rigid body assigned.Выберите желаемый объект с присвоенным ему телом Rigid.
  2. Go to the Physics tab in the Parameters window.Перейдите на вкладку Physics в окне Parameters.
  3. In the Body section, check Shape-based option. The fields of total parameters for the body will be activated.В разделе Body включите опцию Shape-based. Поля общих параметров для тела будут активированы.
  4. Set up body parameters manually.Настройте параметры тела вручную.

Center of massЦентр массы#

An arbitrary point can be set to be a center of mass of the body. It may be necessary to correct the motion of an object to provide desirable look. For example, a tilting doll with a sphere shape requires an uneven mass distribution: its center of mass should be located closer to the bottom, so it always stands up when tilted.Центром массы тела можно назначить произвольную точку. Возможно, потребуется скорректировать движение объекта, чтобы добиться желаемого вида. Например, для неваляшки сферической формы распределение массы должно быть неравномерным: ее центр масс должен располагаться ближе ко дну, чтобы она всегда возвращалась в вертикальное положение из наклона.

Примечание
Center of mass is set as coordinates of the point in local space of the body.Центр масс задается как координаты точки в локальном пространстве тела.

Moment of InertiaМомент инерции#

The moment of inertia is a rotational analog of mass, describing the resistance of the body to rotation in different directions. It is determined by the distribution of mass throughout the body volume. The farther from the axis of rotation the center of mass is, the more rotational inertia the body has.Момент инерции — это вращательный аналог массы, описывающий сопротивление тела вращению в разных направлениях. Он определяется распределением массы по объему тела. Чем дальше от оси вращения находится центр масс, тем больше инерции вращения у тела.

The inertia tensor that allows to compute a moment of inertia about an arbitrary axis is represented as a matrix, I:Тензор инерции, который позволяет вычислить момент инерции относительно произвольной оси, представлен в виде матрицы I:

Ixx     Ixy     Ixz    
Iyx     Iyy     Iyz    
Izx     Izy     Izz    

where Iij sets the moment of inertia around the i -axis when the body is rotated around the j-axis.где Iij задает момент инерции вокруг оси i, когда тело вращается вокруг оси j.

Примечание
To rotate the body evenly about the rotation axis, the matrix should be diagonal, i.e all values outside the main diagonal are set to 0. Otherwise, the body may start to rotate chaotically.Чтобы тело вращалось равномерно вокруг оси вращения, матрица должна быть диагональной, т.е. все значения за пределами главной диагонали должны быть установлены на 0. В противном случае тело может начать хаотично вращаться.

As for values of the moment of inertia:Что касается значений момента инерции:

  • The higher the value, the more torque must be be applied to rotate the body about a particular axis.Чем выше значение, тем больший крутящий момент необходимо приложить для вращения тела вокруг определенной оси.
  • The lower the value, the easier it is to change the angular velocity of a body about a particular axis.Чем ниже значение, тем легче изменить угловую скорость тела относительно определенной оси.

    Примечание
    It is not recommended to set values less than 0.011! Otherwise, the matrix won't be properly inverted, which is necessary to apply collision impulse.Не рекомендуется устанавливать значения меньше 0.011! В противном случае матрица не будет инвертирована должным образом, что необходимо для подачи импульса столкновения.

Values are corrected with respect to the average value to provide smoother movement.Значения корректируются относительно среднего значения для обеспечения более плавного движения.

For example, the following illustration shows three boxes with different inertia tensors. The yellow box has very high inertia:Например, на следующем рисунке показаны три кубика с разными тензорами инерции. Желтый кубик имеет очень высокую инерцию:

100         0         0    
    0     100         0    
    0         0     100    

Because of that, it can only slide down when falling upon the tilted plane. The red box, on the contrary, has the lowest inertia and rotates most eagerly.Из-за этого он может скользить вниз только при падении на наклонную плоскость. Красный кубик, напротив, имеет наименьшую инерцию и наиболее активно вращается.

Различные тензоры инерции

Different inertia tensors that override shape-based parametersРазличные тензоры инерции, которые переопределяют параметры на основе формы

Freezable BodyЗастывание тела#

If the Freezable flag is set for a Rigid body, its simulation is freezed when necessary.Если для тела Rigid установлен флаг Freezable, его симуляция прекращается, когда необходимо.

Примечание
Freezable flag is recommended to be always set for all rigid bodies except for Player Actor. Freezing a player causes it to react to the user's input with a time lag, small but nonetheless perceptible.Флаг Freezable рекомендуется всегда устанавливать для всех твердых тел, кроме Player Actor. Застывание игрока заставляет его реагировать на ввод пользователя с задержкой по времени — небольшой, но всё же ощутимой.

ImmovableНеподвижность#

The Immovable flag toggles the static mode for a Rigid body on and off. If the flag is set, the body will ignore all forces in the world and keep its position while being a collider object.Флаг Immovable включает и выключает статический режим для тела Rigid. Если флаг установлен, тело будет игнорировать все силы в мире и сохранит свое положение, оставаясь коллизионным объектом.

Assigning a Rigid BodyНазначение тела Rigid#

To assign the Rigid body to an object via UnigineEditor perform the following steps:Чтобы присвоить объекту тело Rigid через UnigineEditor, выполните следующие действия:

  1. Open the World Hierarchy window.Откройте окно World Hierarchy.
  2. Select an object to assign a Rigid body to.Выберите объект, которому нужно присвоить тело Rigid.
  3. Go to the Physics tab in the Parameters window and assign a physical body to the selected object by selecting Body -> Rigid.Перейдите на вкладку Physics в окне Parameters и назначьте физическое тело выбранному объекту, выбрав Body -> Rigid.

    Adding a body

  4. Set the body name and change other parameters if necessary.Задайте название тела и при необходимости измените другие параметры.
Последнее обновление: 19.12.2023
Build: ()