Физика в Unreal Editor для Fortnite (UEFN) имитирует действие физических сил на такие события, как коллизию, взрывы и движение объектов. С помощью симуляции рассчитывается то, насколько быстро предмет ускоряется при падении или как один объект взаимодействует с другим при столкновении.
Физика в UEFN переходит в стадию бета-версии. Теперь вы можете публиковать свои проекты с задействованными возможностями физики, при этом следует иметь в виду, что инструменты продолжают регулярно обновляться, что может сказаться на работоспособности ваших островов UEFN. Ознакомьтесь со списком известных ошибок в примечаниях к версии 37.40.
Возможности
Игроки могут взаимодействовать с физическими объектами следующими способами:
Перемещение игровым персонажем с поддержкой физического взаимодействия.
Нанесение урона киркой или стрельба из оружия (в том числе использование гранат).
Использование устройства перемещения объектов для их перемещения или вращения.
Использование устройств.
Устройства с поддержкой физики
Следующие устройства были протестированы с физическими объектами и работают корректно:
Включение физики
Чтобы включить данную функцию, находящуюся в бета-версии, необходимо включить физику в настройках проекта:
Откройте редактор UEFN и выберите новый или уже созданный проект.
Перейдите в раздел Проект > Настройки проекта.
В разделе Бета-доступ установите флажок рядом с параметром Физика.
Обратите внимание, что в настоящее время использование физики не поддерживается в фирменных шаблонах.
Физическое движение
В игровой среде на физические объекты действуют те же естественные силы, которые описаны во втором законе Ньютона: F=ma, где Сила (F) равняется массе (m) помноженной на ускорение (a).
Сила
Сила поддерживает или изменяет движение тела. В видеоиграх сила может воздействовать на персонажей и объекты со стороны оружия, других движущихся объектов, устройств, взрывов и т. д.
Масса
Масса является одним из ключевых свойств любой материи: она определяет то, в какой степени объект, состоящий из этой материи, будет противодействовать изменению его скорости или положения при применении силы. Чем больше масса, тем к меньшим изменениям приводит воздействие силы. В игре у объектов с физическими свойствами задано определённое значение массы. Объекты с большой массой труднее переместить, и они преодолевают меньшее расстояние после взаимодействия с другим объектом.
Ускорение
Ускорение определяет то, насколько быстро будет меняться скорость тела при его движении. Определяется оно скоростью и направлением. В игре это может быть ускорение, которое пинбольный бампер придаёт объекту, с которым взаимодействует.
Добавьте физику объектам окружения
В проекте с включённой физикой для всех объектов окружения Fortnite можно задать симуляцию физики. Для этого к объекту окружения необходимо добавить Компонент физики:
На панели «Сведения» для предмета окружения нажмите + Добавить и выберите Физика в Fortnite.
Установите флажок рядом с параметром Симулировать физику, а также можете изменить остальные параметры по своему усмотрению.
Более подробную информацию об импорте пользовательских объектов окружения и добавлении коллизий вы сможете найти в уроке «Создание футбольной мини-игры».
Пользовательские настройки
Масса определяет то, насколько тяжёлым будет объект окружения. Чем тяжелее объект, тем меньше будет на него воздействие. В примере ниже ящик слева имеет массу 100, а ящик справа — 25.
Включить гравитацию определяет, следует ли применять к объекту силу гравитации.
Запустить пробуждение позволяет выбрать, как будет выполняться симуляция физики объекта окружения: в начале игры или при касании другого объекта. Если флажок не установлен, физика для объекта не будет симулироваться, пока к нему не применится сила. В примере ниже у всех ящиков снят флажок Запустить пробуждение, и они падают только после удара.
Линейное демпфирование постепенно замедляет объекты. В примере ниже для воздушного шара слева задано значение линейного демпфирования 0,5, а для шаров справа — 0,01.
Угловое демпфирование постепенно замедляет вращение объектов. Более подробная информация по этой теме приведена в разделе «Физическое демпфирование» в документации к Unreal Engine. В примере ниже для левого треугольника задано значение углового демпфирования 0,6, а для правого — 0,1.
Множитель импульса при ударе позволяет умножить силу, применяемую к объекту при воздействии. Значение по умолчанию будет составлять 1, при этом можно задать любое значение от –5 до 5. В примере ниже левый футбольный мяч имеет множитель 1,0 , а правый — 3,0.
Футбольный мяч от tinmanjuggernaut на Sketchfab, используется по стандартной лицензии Sketchfab.
Ограничения
К объектам вы также можете добавить ограничения переноса и вращения, что позволит сделать так, чтобы они не перемещались по определённым осям. Более подробная информация об ограничениях приведена в разделе «Справочник по физическим ограничениям» в документации Unreal Engine.
Часто задаваемые вопросы
Ниже приведён неполный список вопросов, которые могут возникнуть при работе с этой новой функцией. Если вашего вопроса в этом разделе нет, ознакомьтесь с последними обновлениями экосистемы Fortnite и примечаниям к версии.
Можно ли включить физику в уже созданном проекте?
Да. Физику можно включить в уже созданных проектах, но перед этим рекомендуется создать резервную копию проекта. Проект, где используются экспериментальные функции, публиковать пока нельзя. При этом вы можете отключить эту функцию в любой момент и опубликовать свой остров.
Могут ли объекты, анимированные с помощью Sequencer, взаимодействовать с физическими объектами?
Нет. Объекты, анимированные с помощью Sequencer, обрабатываются в игровом потоке на сервере со свойствами, отличающимися от свойств потока физики: такой поток не вносит изменения, необходимые для взаимодействия на основе физики. Sequencer не предназначен для использования одновременно с возможностями физики. Рекомендуем использовать для этого устройство перемещения объектов. Объекты, перемещаемые с помощью этого устройства, смогут взаимодействовать с физическими объектами.
Все ли режимы передвижения игроков совместимы с возможностями физики?
Базовые движения игрока, такие как ходьба, бег, спринт, прыжки в спринте, обычные прыжки, падение, плавание, приседание, движение в приседе, прыжки из приседа, полёт на дельтаплане и свободное падение, должны работать корректно. При этом лазание, скольжение, полёт на тарзанке, скольжение по рельсам и состояние тяжёлого ранения в настоящее время недоступны.
Все ли виды оружия поддерживаются?
В бета-версии физики поддерживается большинство оружия. По мере развития набора инструментов для работы с физикой будет добавляться поддержка и других видов оружия.
Будут ли транспортные средства работать на острове с включённой физикой?
Транспортные средства не поддерживаются и могут привести к нестабильной работе самого острова. Рекомендуем пока отказаться от их использования, так как они могут привести к неполадкам в самой игре.
Сколько физических объектов может быть в проекте?
Следует отслеживать количество физических объектов в проекте. Превышение 50 физически симулируемых простых форм (кубов или сфер) могло повлиять на производительность острова. Сложные физические формы влияют на производительность больше, чем простые формы. Вы можете получить разные результаты в зависимости от сложности вашего окружения и симулируемых объектов.
Работает ли физика в творческом режиме Fortnite?
На данный момент физика доступна только в UEFN.
API устройства «Область»
Для обнаружения наличия физического объекта в устройство добавлены два события: OnPhysicsEnter и OnPhysicsExit.
В качестве полезных данных для этих событий выступает Creative_Prop.
API Verse
Были добавлены события PropEntersEvent и PropExitsEvent. Фрагмент кода ниже можно использовать для отслеживания моментов входа агентов в область и выхода из неё:
volume_device<public> := class<concrete><final>(creative_device_base):
PropEntersEvent<public>:listenable(creative_prop) = external {}
PropExitsEvent<public>:listenable(creative_prop) = external {}