Полезное

Мы Вконтакте

Discord канал

Симуляция физики

UEngine.RU » Материалы сайта » Документация » Симуляция физики

Мар 31 2016

Компоненты Physics Constraint работают так же, как Physics Constraints Actors, за исключением того, что они используются в блупринтах или могут быть созданы в C++.
Принимая во внимание гибкость блупринтов и мощь C++, вы можете использовать физические связи для любого объекта в вашем проекте с Physics Constraint Components.

Этот документ будет охватывать базовое создание и настойку компонента Physics Constraint в блупринтах.

Использование

  1. Создание компонентов, которые будут использоваться для взаимодействия. Для этой демонстрации, будет использоваться два статик меша в форме куба.
    Компоненты
  2. Add Component => Physics Constraint.
    Создание компонентов
  3. Установите Physics Constraint Component, в месте где должен быть стык.
    Положение
  4. Вы должны вручную ввести имя компонентов для взаимодействий. Введите имя первого компонента: Component Name 1 => Component Name.
    Имена компонентов
  5. Затем введите имя второго компонента: Component Name 2 => Component Name.
    Имена компонентов
  6. Установите Physics Constraint свойства:
    • Angular Swing 1Motion и Angular Swing 2Motion в Limited.
    • Swing 1Limit Angle и Swing 2Limit Angle в 45 градусов.
    • Отключите Swing Limit Soft.

    Настройка компонента

  7. Поверните Physics Constraint Component в случае необходимости для учета линейных и угловых пределов.
    Ориентирование
  8. Поместите блупринт объект на уровень и расположить его там, где вам это нужно.
    Расположение
  9. Протестируйте.
    Тест
Добавил: Flakky Категория: Симуляция физики Читать дальше »

Мар 31 2016

Physics Constraint — специальный объект, который позволяет привязать физический объект к другому (будь то физический или нет). При этом привязка будет не строгая, что означает, что предмет будет привязан будто на веревке или шарнире, позволяя физическому объекту свободно или ограниченно перемещаться относительно точки связи.

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

Привязка объектов через Constraint
Привязка объектов через Constraint
Physics Constraint компонент
Physics Constraint компонент

Параметры Physics Constraint
Добавил: Flakky Категория: Симуляция физики Читать дальше »

Мар 31 2016

Если вам нужно создать качающуюся люстру, водяное колесо, или просто хотите сохранить физику тела в общей области, Physics Constraint то, что вам нужно. Этот документ будет охватывать использование Physics Constraint.

Physics Constraint позволяет соединять два актера вместе (предположительно один является физическим), а также применять к ним различные ограничения или силы.
Unreal Engine 4 имеет очень гибкую систему ограничений, которая позволяет разработчикам сделать много различных типов соединений просто путем изменения некоторых параметров.
Движок имеет встроенные типы нескольких базовых соединений (шаровое, призматическое, петли), но они отличаются только их настройками.

Physics Constraint Actor

  1. Physics Constraint Actor можно найти в разделе All Classes на панели Modes:
    Modes
  2. Отсюда, он может быть перенесен на уровень, как и любой другой объект, нажав и перетащив его в окно просмотра.
    Modes
  3. После того, как он на уровне, вы можете указать, какие два объекта следует использовать это соединение, используя информацию панели Details:
    Modes
  4. Вы можете использовать либо перетаскивание, чтобы выбрать объект, который вам нужен, либо использовать «пипетку» Modes,
    чтобы выбрать объект из окна просмотра.
    Modes
    Modes
  5. Повторите шаг 4 для Constraint Actor 2.
    Modes
  6. Поместите Physics Constraint Actor и соединенные объекты туда, где вы желаете их видеть.
    Modes
  7. Включение физику, по меньшей мере у одного из соединенных объектов.
    Modes
  8. Установите необходимые настройки для Physics Constraint Actor. Сейчас мы изменили:
    • Angular Swing 1Motion и Angular Swing 2Motion на Limited.
    • Swing 1Limit Angle и Swing 2Limit Angle на 25 градусов.
    • Отключили Swing-Limit Soft.

    Modes

  9. Протестируйте получившиеся соединение. Используйте например RadialForceActor он находится в разделе All Classes на панели Modes.
    Modes

Соединения со скелетал мешами

Если вы используете скелетал меш, вам нужно будет указать имя Constraint Bone. Меш в данном случае будет прикреплен за указанную кость.
Modes

Компоненты объекта

Если вы хотите, использовать подобную связь для конкретных компонентов внутри объекта, вы можете использовать имя этого компонента в соответствующем поле.
Если это поле оставить пустым, то будет выбран корневой компонент. Тем не менее, если вы используете действительные имена компонентов в Constrained Actor 1 и / или Constrained Actor 2,
то компонент станет частью этой связи. Если этот компонент является скелетал мешем, необходимо также указать имя кости в соответствующем поле.
Modes
После того, как вы указали имя компонента Constrained Actor, ограничивающий объем появится вокруг этого компонента. Если ограничивающий объем не отображается,
проверьте имя вашего компонента и убедитесь, что он на самом деле может быть использован здесь.

Добавил: Flakky Категория: Симуляция физики Читать дальше »

Мар 31 2016

Эта страница список параметров физических соединений (Physics Constraints).

Constraint

Constraint

Свойство Описание
Constraint Actor 1 Указатель на первый объект.
Component Name 1 Имя первого компонента для взаимодействия. Если в Constraint Actor 1 ничего не указано, то будет выбираться компонент в пределах текущего объекта.
Если здесь ничего не указано, то будет использоваться корневой компонент из текущего объекта.
Constraint Actor 2 Указатель на второй объект.
Component Name 2 Имя второго компонента для взаимодействия. Если в Constraint Actor 2 ничего не указано, то будет выбираться компонент в пределах текущего объекта.
Если здесь ничего не указано, то будет использоваться корневой компонент из текущего объекта.
Joint Name Название кости с которой связано это соединение.
Constraint Bone 1 Название первой кости (тела), для взаимодействия. Это будет дочерняя кость в PhysicsAsset.
Constraint Bone 2 Название второй кости (тела), для взаимодействия. Это будет дочерняя кость в PhysicsAsset.
Disable Collision Отключить взаимодействие.

Projection

Projection

Свойство Описание
Enable Projection Если ошибки расстояния между телами превышают 0,1 единиц, или ошибка вращения превышает 10 градусов, тело будет проецироваться, чтобы исправить это.
Например, соединение слишком быстро будет двигаться и элементы покажутся отделенными друг от друга из-за скорости, эта настройка позволит проецировать все тела так,
что они по-прежнему будут выглядеть связанными.
Projection Linear Tolerance Допустимый лимит ошибок положения.
Projection Angular Tolerance Допустимый лимит ошибок вращения.

Joint Presets

Joint Presets

Свойство Описание
Hinge Пресет шарнира. Шарнир допускает движение только в одной плоскости.
Prismatic Пресет призмообразного соединения. Призмообразное соединение позволяет только линейные скользящие движения.
Ball and Socket Пресет шарового соединения. Мяч и шарнир допускают движение вокруг неопределенного числа осей, которые имеют один общий центр.

Linear Limits

Linear Limits

Свойство Описание
Linear XMotion Указывает, разрешено ли линейное движение вдоль оси X, заблокировано или ограничено. Если движение ограничено, свойство LinearLimit будет определять диапазон границ.
Linear YMotion Указывает, разрешено ли линейное движение вдоль оси Y, заблокировано или ограничено. Если движение ограничено, свойство LinearLimit будет определять диапазон границ.
Linear ZMotion Указывает, разрешено ли линейное движение вдоль оси Z, заблокировано или ограничено. Если движение ограничено, свойство LinearLimit будет определять диапазон границ.
Linear Limit Size Предельная степень, в мировых единицах, линейного движения для ограниченных осей движения.

Advanced

Advanced

Свойство Описание
Linear Limit Soft Хотим ли мы использовать мягкие ограничения вместо жестких.
Linear Limit Stiffness Жесткость предела мягких ограничений. Используется только, когда Linear Limit Soft включено.
Linear Limit Damping Затухание предела мягких ограничений. Используется только, когда Linear Limit Soft включено.
Linear Breakable Определяет может ли сустав сломаться или нет.
Linear Break Threshold Усилие, необходимое, чтобы разорвать соединение.

Angular Limits

Angular Limits

Свойство Описание
Angular Swing 1Motion Указывает, разрешено ли вращение вокруг оси Z, заблокировано или ограничено. Если ограничено, свойство AngularLimit будет использоваться для определения диапазона движения.
Angular Twist Motion Указывает, разрешено ли вращение вокруг оси X, заблокировано или ограничено. Если ограничено, свойство AngularLimit будет использоваться для определения диапазона движения.
Angular Swing 2Motion Указывает, разрешено ли вращение вокруг оси Y, заблокировано или ограничено. Если ограничено, свойство AngularLimit будет использоваться для определения диапазона движения.
Swing 1Limit Angle Используется, если поворотное движение вдоль оси Y ограничено. Предельный угол задается в градусах и должен находиться в диапазоне от 0 до 180.
Twist Limit Angle Используется, если поворотное движение вдоль оси X ограничено. Предельный угол задается в градусах и должен находиться в диапазоне от 0 до 180.
Swing 2Limit Angle Используется, если поворотное движение вдоль оси Z ограничено. Предельный угол задается в градусах и должен находиться в диапазоне от 0 до 180.
Angular Rotation Offset Задает угловое смещение между двумя системами отсчета. По умолчанию предел идет от (-угол, + угол). Это позволяет смещать предел для swing1, swing2 и twist.

Advanced

Advanced

Свойство Описание
Swing Limit Soft Если мы хотим использовать мягкие ограничения для распашных движений вместо жестких ограничений.
Swing Limit Stiffness Жесткость предела распашных ограничений, если Swing Limit Soft включено.
Swing Limit Damping Затухание предела распашных ограничений, если Swing Limit Soft включено.
Twist Limit Soft Если мы хотим использовать мягкие ограничения для вращательных движений вместо жестких ограничений.
Twist Limit Stiffness Жесткость предела вращательных ограничений, если Twist Limit Soft включено.
Twist Limit Damping Затухание предела вращательных ограничений, если Twist Limit Soft включено.
Angular Breakable Можно ли разорвать соединение.
Angular Break Threshold Угловое усилие, которое необходимо, чтобы разорвать соединение.

Linear Motor

Linear Motor

Свойство Описание
Linear Position Drive Включение / выключение привода положения.
Linear Position Target Конечное положение линейного привода. Показаны только компоненты, которые разрешены к использованию.
Linear Position Strength Сила линейного привода.
Linear Velocity Drive Включение / выключение линейного привода скорости.
Linear Velocity Target Целевая скорость линейного привода.
Linear Velocity Strength Сила линейного привода.
Max Linear Force Ограничение по силе которую может применять линейный привод.

Angular Motor

Angular Motor

Свойство Описание
Angular Orientation Drive Включает / выключает привод ориентации.
Angular Orientation Target Целевая ориентация для углового привода.
Angular Orientation Strength Сила углового привода.
Angular Velocity Drive Включение / выключение углового привода скорости.
Angular Velocity Target Целевая скорость углового привода скорости.
Angular Velocity Strength Сила углового привода скорости.
Max Angular Force Ограничение по силе которую может применять угловой привод скорости.
Angular Drive Mode Тип углового привода.
Добавил: Flakky Категория: Симуляция физики Читать дальше »

Мар 29 2016

Этот раздел описывает свойства Collision Presets и Collision Response. Не смотря на то что второе является частью первого, они были разнесены, для ясности.

Свойства

Ниже приведены свойства Collision Presets.
Свойства

Свойство Описание
Collision Presets Профили столкновений по умолчанию и любые созданные вами лежат в Project Settings -> Engine -> Collision -> Preset

Свойство Описание
Custom… Установите все настройки столкновений сами.
NoCollision Отсутствие столкновений.
BlockAll WorldStatic объект, который блокирует все объекты по умолчанию. Все новые пользовательские каналы столкновений будут использовать свою собственную настройку по умолчанию.
OverlapAll WorldStatic объект, который перекрывает (Overlap) все объекты по умолчанию. Все новые пользовательские каналы столкновений будут использовать свою собственную настройку по умолчанию.
BlockAllDynamic WorldDynamic объект, который блокирует все объекты по умолчанию. Все новые пользовательские каналы столкновений будут использовать свою собственную настройку по умолчанию.
OverlapAllDynamic WorldDynamic объект, который перекрывает (Overlap) все объекты по умолчанию. Все новые пользовательские каналы столкновений будут использовать свою собственную настройку по умолчанию.
IngoreOnlyPawn WorldDynamic объект, который игнорирует Pawn и Vehicle. Все остальные каналы будут установлены по умолчанию.
OverlapOnlyPawn WorldDynamic объект, который перекрывает (Overlap) Pawn, Camera, и Vehicle. Все остальные каналы будут установлены по умолчанию.
Pawn Pawn объект. Может использоваться для любого игрового персонажа или AI
Spectator Pawn объект, который игнорирует все другие объекты, кроме WorldStatic.
CharacterMesh Pawn объект, который используется для мешей персонажей. Все остальные каналы будут установлены по умолчанию.
PhysicsActor Физический объект.
Destructible Разрушаемый объект.
InvisibleWall Невидимый WorldStatic объект.
InvisibleWallDynamic Невидимый WorldDynamic объект.
Trigger WorldDynamic объект, который используется для триггеров. Все остальные каналы будут установлены по умолчанию.
Ragdoll Skeletal Mesh объект. Все остальные каналы будут установлены по умолчанию.
Vehicle Объект Vehicle, который блокирует Vehicle, WorldStatic и WorldDynamic. Все остальные каналы будут установлены по умолчанию.
UI WorldStatic объект, который перекрывает (Overlap) все объекты по умолчанию. Все новые пользовательские каналы столкновений будут использовать свою собственную настройку по умолчанию.
Collision Enabled Collision Enabled может иметь 4 возможных состояния, которые перечислены ниже.

Свойство Описание
No Collision Отсутствие столкновений.
Query Only Этот объект используется только для запросов столкновений.
Physics Only Этот объект используется только для физических столкновений.
Collision Enabled Этот объект взаимодействует со всеми типами столкновений.
Object Type Перечисление, указывающее каким типом объект является о врем движения. Являются произвольным, но должен быть установлены в соответствии с тем, что будет делать этот объект с точки зрения физики.

Свойство Описание
WorldStatic Должно быть использовано для любого объекта, который не двигается. Статик меши являются хорошим примером объекта, который будет, вероятно, иметь тип WorldStatic.
WorldDynamic WorldDynamic для объектов, которые будут двигаться под воздействием анимации или кода. Лифты и двери являются хорошими примерами WorldDynamic объектов.
Pawn Любой игрок, должен иметь тип Pawn. Персонаж (Character) является хорошим примером того объекта, который должен получать тип Pawn.
PhysicsBody Любой объект, который будет двигаться из-за симуляции физики.
Vehicle Любые транспортные средства.
Destructible Любые разрушаемые объекты.
Collision Responses Эти параметры определяют, как объект должен взаимодействовать со всеми другими типами объектов.
Тиы свойств

Свойство Описание
Ignore Независимо от настроек физики другого тела, этот объект будет игнорировать его.
Overlap Используется для получения событий столкновения с другим объектом при отсутствии столкновения как такового.
Block Объект будет будет блокировать движение другого объекта кроме объектов выше описанных типов.
Trace Responses Trace Responses используются при рей кастинге, который в свою очередь может быть использован в блупринтах.

Свойство Описание
Visibility Общий тип видимости.
Camera Обычно используется при трассировке от камеры к чему-то.
Object Responses
Свойство Описание
WorldStatic Как объект должен реагировать при взаимодействии с WorldStatic.
WorldDynamic Как объект должен реагировать при взаимодействии с WorldDynamic.
Pawn Как объект должен реагировать при взаимодействии с Pawn.
PhysicsBody Как объект должен реагировать при взаимодействии с PhysicsBody.
Vehicle Как объект должен реагировать при взаимодействии с Vehicle.
Destructible Как объект должен реагировать при взаимодействии с Destructible.
Добавил: Flakky Категория: Симуляция физики Читать дальше »

Мар 29 2016
Столкновения

Collision Responses и Trace Responses формируют основу того, как Unreal Engine 4 обрабатывает столкновения и рей кастинг (ray casting) запросы время выполнения.
Каждый объект, который может столкнуться получает Object Type и ряд параметров, которые определяют, как он будет взаимодействовать с другими типами объектов.
При столкновении или перекрытии объектов могут генерироваться события, каждому из объектов можно настроить параметры влияния на другие типы объектов, будут ли они сталкиваться или игнорировать друг друга.

Trace Responses работают в основном так же. Трейс сам по себе может быть определен как один из типов объектов, позволяя другим объектам на основе своих настроек либо блокировать либо игнорировать его.

Взаимодействия

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

  • Блокировка (Blocking) будет происходить естественным образом между двумя (или более) объектами с заданными параметрами блокировки.
    Тем не менее, для выполнения Event Hit событий должен быть включен Hit Event, который используется в блупринтах, разрушаемых объектах, триггерах и т.д…
  • Объекты с параметром Overlap часто выглядят как объекты с параметром Ignore, и без Event Hit, они по существу одинаковы.
  • Для двух (или более) объектов блокирующих друг друга, у обоих должны быть выставлены соответствующее настройки.
  • Для двух или более объектов: если параметры одного установлены в Blocking, а второго в Overlap, то будет происходить только Overlap (перекрытие) но не блокирование объектами друг друга.
  • Overlap события могут быть сгенерированы даже если объект блокирует другой, особенно при движении на высоких скоростях.
    • Не рекомендуется использовать одновременно как Blocking так и Overlap параметры. Хотя конечно это возможно, может потребоваться ручная настройка.
  • Если один объект установлен в Ignore, а другой в Overlap, объекты будут игнорировать друг друга а так же не будут генерироваться Overlap эвенты.

Для целей тестирования уровней:

  • По умолчанию камера при игре в редакторе является типом Pawn.
  • По умолчанию камера в Simulate режиме не является типом Pawn. Она может свободно проходить через все и не будет генерировать каких-либо столкновений или событий.

Примеры взаимодействий

Эти примеры предполагают, что все объекты имеют включенным пункт Collision Enabled. Если столкновение отключено, это как если бы Ignore был установлен для всех Collision запросов.

Поясним что происходит, дабы вы без труда поняли что происходит в следующем разделе:
Изначальное положение
Сфера является PhysicsBody а стена World Dynamic, путем изменения их параметров столкновений мы будем получать различное поведение.

Столкновения

Установите оба объекта в режим Blocking, чтобы они блокировали друг друга, вы получите столкновение, вот так объекты взаимодействуют друг с другом:
Столкновение

Сфера Стена
Сфера Стена
В этом случае сфера является PhysicsBody и она настроена, чтобы блокировать World Dynamic (тот же тип что и стена). Стена является World Dynamic и должна блокировать PhysicsBody объекты (сферу).

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

Столкновения и формирование Hit Event

Простое столкновение полезно и само по себе — голый минимум для физических взаимодействий. Однако если вы хотите что-то сообщить при столкновении объектов то:
Генерация события

Сфера Стена
Сфера Стена
Как и в приведенном выше примере, сфера является PhysicsBody и она настроена, чтобы блокировать World Dynamic (которым является стена).
Однако сфера также может формировать Event Hit события, так что будем инициировать эвент всякий раз, когда она сталкивается с чем-то.
Стена является World Dynamic и настраивается на блокирование PhysicsBody объектов (тот же тип что и у сферы).
Поскольку у стены не установлен флажок Simulation Generates Hit Events, она не будет генерировать ни каких событий при столкновении с собой.

Поскольку у сферы включен параметр Simulation Generates Hit Events, она будет генерировать события каждый раз при столкновении с собой.
Кроме того, объект, который сообщает о жестких столкновениях будет сообщать о них так же, когда он просто лежит на чем-то, так что лучше быть осторожным, нужно отделять полезные сообщения от “спама”.

Overlap и Ignore

Во всех прочих случаях когда включены флаги Overlap или Ignore, но выключен флаг Simulation Generates Hit Events, сфера просто будет игнорировать стену:
Игнорирование

Сфера Стена
Сфера Стена
Здесь у сферы включен Overlap для World Dynamic (как наша стена), но отключен параметр Simulation Generates Hit Events.
По этому сфера будет игнорировать стену не генерирую при этом ни каких событий.
Стена является World Dynamic и настраивается на блокирование PhysicsBody объектов (тот же тип что и у сферы).
Как было указано выше, оба объекта должны иметь настройку Blocking, чтобы блокировать соответствующие типы объектов. Если этого не сделать, они не будут сталкиваться.

Или:

Сфера Стена
Сфера Стена
Здесь сфере устанавливается Ignore для World Dynamic (как стена), и она будет проходить через стену. Стена имеет тип World Dynamic и блокирует PhysicsBody объекты. Как было указано выше, оба объекта должны иметь настройку Blocking, чтобы блокировать соответствующие типы объектов.
Если этого не сделать, они не будут сталкиваться.

Overlap и формирование Hit Event

В отличие от столкновений, которые могут срабатывать каждый кадр, Overlap эвенты ReceiveBeginOverlap и ReceiveEndOverlap, срабатывают только в этих конкретных случаях:
Генерация события

Сфера Стена
Сфера Стена
Здесь сфере устанавливается параметр Overlap для World Dynamic объектов (как стена), и она будет генерировать события, каждый раз когда она что-то перекрывает. Стена является World Dynamic и настраивается на блокирование PhysicsBody объектов (тот же тип что и у сферы). Как было указано выше, оба объекта должны иметь настройку Blocking,
чтобы блокировать соответствующие типы объектов. Если этого не сделать, они не будут сталкиваться. Но, здесь сфера проходит через стену и срабатывает эвент.
Добавил: Flakky Категория: Симуляция физики Читать дальше »

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница