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.

Rigid Body

Rigid body позволяет моделировать физические тела в соответствии с Rigid body динамика . Этот тип кузова является наиболее часто используемым и наиболее эффективным с точки зрения производительности.

Примечание
У Rigid body должно быть хотя бы одно столкновение форма назначенный.

Rigid bodies

Набор параметров Rigid body в соответствии с Rigid body динамика включает следующее:

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

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

Параметры массы на основе формы#

Объем Rigid body может быть приблизительно равен нескольким формы (например, вогнутый объект, разделенный на набор выпуклых оболочек или Ragdoll body). У каждой формы своя масса а также плотность . Поэтому определенные параметры Rigid body, такие как его полная масса, центр масс и тензор инерции, определяются его формой. Эти параметры могут быть рассчитаны автоматически, если включена опция Shape-based.

Чтобы включить эту опцию для тела через UnigineEditor выполните следующие действия:

  1. Выберите желаемый объект с присвоенным ему значением Rigid body.
  2. Перейдите на вкладку Physics в окне Parameters.
  3. В разделе Body отметьте опцию Shape-based.
Примечание
Установка индивидуальных масс или плотности форм - наиболее интуитивный метод достижения правильного физического поведения тела. Даже если отвергнутый по параметрам тела они по-прежнему используются для определения распределения массы внутри объекта.

Shapes that approximate rigid bodies

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

Переопределение параметров фигур#

Отключение опции Shape-based позволяет вручную переопределить некоторые общие параметры для тела.

Чтобы отключить эту опцию для тела через UnigineEditor выполните следующие действия:

  1. Выберите желаемый объект с присвоенным ему значением Rigid body.
  2. Перейдите на вкладку Physics в окне Parameters.
  3. В разделе Body отметьте опцию Shape-based. Поля общих параметров для тела будут активированы.
  4. Настройте параметры тела вручную.

Центр массы#

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

Примечание
Центр масс задается как координаты точки в локальном пространстве тела.

Момент инерции#

Момент инерции - это вращательный аналог массы, описывающий сопротивление тела вращению в разных направлениях. Он определяется распределением массы по объему тела. Чем дальше от оси вращения находится центр масс, тем больше инерции вращения у тела.

Тензор инерции, который позволяет вычислить момент инерции относительно произвольной оси, представлен в виде матрицы I:

Ixx     Ixy     Ixz    
Iyx     Iyy     Iyz    
Izx     Izy     Izz    

где Iij задает момент инерции вокруг оси i, когда тело вращается вокруг оси j.

Примечание
Чтобы тело вращалось равномерно вокруг оси вращения, матрица должна быть диагональной, т.е. все значения за пределами главной диагонали должны быть установлены на 0. В противном случае тело может начать хаотично вращаться.

Что касается значений момента инерции:

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

    Примечание
    Не рекомендуется устанавливать значения меньше 0.011! В противном случае матрица не будет инвертирована должным образом, что необходимо для подачи импульса столкновения.

Значения корректируются относительно среднего значения для обеспечения более плавного движения.

Например, на следующем рисунке показаны три прямоугольника с разными тензорами инерции. Желтая коробка имеет очень высокую инерцию:

100         0         0    
    0     100         0    
    0         0     100    

Из-за этого он может скользить вниз только при падении на наклонную плоскость. Красный ящик, напротив, имеет наименьшую инерцию и наиболее активно вращается.

Different Inertia tensors

Различные тензоры инерции, которые переопределяют параметры на основе формы

Замораживаемое тело#

Если для Rigid body установлен флаг Freezable, его симуляция заморожена когда необходимо.

Примечание
Флаг Freezable рекомендуется всегда устанавливать для всех твердых тел, кроме Player Actor. Замораживание игрока заставляет его реагировать на ввод пользователя с задержкой по времени, небольшой, но, тем не менее, ощутимой.

Недвижимое#

Флаг Immovable включает и выключает статический режим для Rigid body. Если флаг установлен, тело будет игнорировать все силы в мире и сохранит свое положение, оставаясь объектом коллайдера.

Назначение твердого тела#

Чтобы присвоить объекту Rigid body через UnigineEditor выполните следующие действия:

  1. Откройте окно World Hierarchy.
  2. Выберите объект, которому нужно присвоить Rigid body.
  3. Перейдите на вкладку Physics в окне Parameters и назначьте физический тело к выбранному объекту, выбрав Body -> Rigid.

    Adding a body

  4. Задайте название тела и при необходимости измените другие параметры.
Последнее обновление: 13.12.2021
Build: ()