Настройка столкновений со Статик Мешами в Unreal Engine 4

0
1360
Настройка столкновений со Статик мешами UE4

В UE4 вы можете использовать Static Meshes, например, изменять текстуру или материал во время геймплея или перемещаться по всему уровню с помощью Matinee. Скорее всего, независимо от того, что у вас есть на вашей Статик меше, вы не захотите, чтобы игрок мог ходить или стрелять через меш. Именно здесь необходимо настроить столкновение на вашей Статик меше.

Настройка

Возможно, у вас уже есть уровень и Статик меши для работы. Если вы это сделаете, вы можете пропустить этот шаг. Если нет, запустите UE4 и создайте новый проект. Назовите свой проект и выберите место для хранения вашего проекта. В этом примере мы собираемся использовать шаблон первого лица Blueprint. Вам не нужно работать с этим шаблоном, но возможность запускать снаряды, которые уже реализованы в этом шаблоне, будет использоваться для демонстрации момента позже, поэтому использование этого шаблона поможет вам.

Также убедитесь, что вы включили Starter Content. Если вы этого не сделаете, у вас не будет активов, с которыми мы будем работать в дальнейшем в этом руководстве, что может затруднить его выполнение.

Новый Проект Со Стартовым Контентом UE4

Столкновение на Меши простой формы

Когда вы откроете проект, если вы включили Starter Content, у вас должна быть папка в вашем Контент браузере, обозначенная как Starter Content. Внутри этой папки должна быть другая папка с надписью Props. Перейдите в эту папку и найдите Static Mesh в названии SM_Door (т.е. Статик Меш – Дверь).

Браузер Контента Со Стартовым Контентом UE4Дверь В Браузере Содержания UE4После того, как вы нашли SM_Door (Статик Меш Дверь), откройте Редактор Статик меши, дважды щелкнув мышкой по нему или щелкнув правой кнопкой мышки по активу и выбрав Edit (Редактировать) в контекстном меню. Как только редактор откроется, вы увидите что-то похожее на то, что показано ниже:

Дверь По Умолчанию UE4

По умолчанию в этой меши нет столкновений. Без столкновения игрок мог бы пройти через меш, и если меш имитирует физику, то меш просто провалится через мир, как только начнется игра. Вы можете проверить это, поставив эту меш на свой уровень перед настройкой столкновения и игры. Обратите внимание, что ваш игрок может пройти через сплошную меш. Кроме того, если вы хотите, чтобы дверь снесло, когда вы стреляете в нее, или начинаете в небе и падаете на землю, вам нужно установить значение Simulate Physics (Имитация физики) на «true» на панели Details, которую вы не можете сделать по умолчанию, если Static Mesh не имеет столкновений.

Панель сведений о физике UE4

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

Меню Коллизии UE4

В этом случае наша меш является довольно простой формой. Это упростит работу при попытке настроить столкновение для нашей меши. Три лучших варианта в меню Collision будут окружать нашу меш простой формой, которая будет использоваться как граница того, что может и не может быть заблокировано или перекрыто нашей мешью. Ниже приведены примеры меши с этими мешами столкновений простой формы.

Сфера Упрощенное Столкновение UE4Столкновение Капсулы Упрощенное UE4Коробка Упрощенная Коллизия UE4
Простая коллизия в виде Сферы UE4Простая коллизия в виде Капсулы UE4Простая коллизия в виде Бокса UE4
Простая коллизия в виде СферыПростая коллизия в виде КапсулыПростая коллизия в виде Бокса

После установки столкновения, если вы все еще не видите контур вокруг вашей меши, убедитесь, что кнопка столкновения на панели инструментов (Кнопка Столкновения UE4) выделяется. Также обратите внимание, что если вы уже упростили столкновение на меше и добавили еще одно упрощенное столкновение в меш, новое столкновение не заменит другое столкновение, но добавит к нему. Если вы добавите все три упрощенные столкновения сверху без предварительного удаления любой из коллизий, у вас может быть что-то похожее на это.

Все Столкновения UE4

Чтобы решить эту проблему, вы можете выбрать одну из коллизий и нажать кнопку удаления или выбрать Delete Selected Collision (Удалить выбранное столкновение) в раскрывающемся меню Collision, чтобы удалить их по одному, или же в меню Collision выберите Remove Collision, чтобы удалить все столкновения на меши. Появится всплывающее окно с вопросом, уверены ли вы, что вы хотите удалить все коллизионные меши. При нажатии кнопки Yes столкновение со статик мешью удаляется.

Удалить Коллизию UE4Удалить Столкновение Всплывающее UE4

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

Столкновение на более Сложной Меше

Если у вас есть меш, которая может легко вписаться в капсулу или коробку (бокс), или есть меш, где точное столкновение не имеет значения, использование простого столкновения, которое мы установили в последнем разделе, будет работать вполне нормально. Однако у вас может быть меш, которая является более сложной формой, но все же должна иметь точное столкновение. В этом разделе мы рассмотрим, как это установить.

Вернитесь в папку Props в Starter Content, перейдите к Static Mesh SM_Chair. Дважды щелкните мышкой по миниатюре, чтобы открыть его в Редакторе Статик меши. Как вы можете видеть, эта меш уже столкнулась с ней и должна выглядеть примерно так, как показано ниже:

Столкновение Председателя По Умолчанию UE4

Предположим, что для этого примера мы хотим, чтобы игрок мог сидеть прямо на подушке кресла. С помощью меши столкновения, установленной по умолчанию, есть невидимый барьер, который помешал бы игроку сделать это. (Обратите внимание, что когда игрок действует в игре, видна только статик меш, а не меш столкновения, поэтому игрок будет сидеть на стуле и не знать, почему что-то блокирует его путь).

Удалите столкновение в меше, выбрав Remove Collision (Удалить столкновение) в раскрывающемся меню Collision в верхней части редактора. Мы можем попытаться использовать примитивные фигуры, которые мы использовали в предыдущем разделе этого руководства, но, как вы можете видеть на изображениях ниже, ни один из них не похож на то, что мы ищем.

Упрощенное Столкновение в виде Сферы UE4Упрощенное Столкновение в виде Капсулы UE4Упрощенное Столкновение в виде Бокса UE4
Упрощенное Столкновение в виде СферыУпрощенное Столкновение в виде КапсулыУпрощенное Столкновение в виде Бокса

Кажется, что ни одна из примитивных форм не достигает того, что мы ищем. Однако мы можем приблизиться к другим параметрам в раскрывающемся меню Collision. Эти параметры называются генераторами простой коллизии K-DOP. K-DOP – это тип ограничивающего объема, который обозначает K дискретный ориентированный многогранник (где K – это число плоскостей, выровненных по оси). В принципе, он берет плоскости, выровненные по оси Y, и толкает их как можно ближе к меши. Полученная форма используется в качестве корпуса столкновения. В Редакторе Статик меши K может быть:

  • 10 – Коробка (бокс) с 4 скошенными краями – вы можете выбрать выровненные края по осям X, Y или Z.
  • 18 – Коробка со всеми скошенными краями.
  • 26 – Коробка со всеми скошенными краями и углами.

Вот как выглядит наша меш стула с 10-DOP, 18-DOP и 26-DOP соответственно.

10 DOP UE418 DOP UE426 DOP UE4
10DOP18DOP26DOP

Эти коллизионные меши приближаются к тому, чего мы пытаемся достичь, но по – прежнему существует разрыв между подушками, которые могут помешать игроку сесть в кресло. Выберите Remove Collision (Удалить столкновение) еще раз, и как только вы это сделаете, дальше выберите Auto Convex Collision (Автоматическое выпуклое столкновение) в раскрывающемся меню Collision. Как только вы это сделаете, вам будет представлена ​​панель Convex Decomposition, которая будет выглядеть так, как показано на рисунке ниже.

Выпуклое Разложение UE4

Верхний вариант в этом окне – это Accuracy (Точность), которая будет генерировать как можно меньше примитивов для представления меши столкновения. Нижняя опция, Max Hull Verts, увеличит или уменьшит количество вершин вашей меши столкновения. Чем выше эти значения, тем точнее будет ваше столкновение, но одновременно будет и более сложной ваша меш столкновения. При нажатии кнопки Apply (Применить) эти параметры будут применены к вашей меше.

Авто Выпуклая Коллизия 1 UE4Авто Выпуклая Коллизия 2 UE4
Настройки по умолчаниюМаксимальная точность и Max Hull Verts 

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

Начните с выбора Add Box Simplified Collision в раскрывающемся меню Collision. Щелкните левой кнопкой мышки на меш столкновения, чтобы вызвать виджет трансформации. Перемещайте, вращайте и масштабируйте меш столкновения так, чтобы она проходила по руке кресла на землю. Когда выбранная меш столкновения выбрана, дублируйте меш столкновения, выбрав Duplicate Selected Collision (Дублировать выбранное столкновение) в раскрывающемся меню Collision (Столкновение) или нажав Ctrl + W. Переместите эту меш столкновения так, чтобы она соответствовала другой руке стула. Дублируйте меш снова. С помощью этой новой меши выбирайте, перемещайте, масштабируйте и вращайте эту меш, чтобы она соответствовала нижней части стула. Дублируйте эту меш столкновений и передвигайте ее так, чтобы, если она уместилась по сиденью стула. Дублируйте меш еще раз и поверните ее так, чтобы она помещалась вдоль задней части стула. Когда вы закончите, у вас должно получиться нечто похожее на это:

Составное Столкновение Коробки UE4

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

Имитация Физики и Collision Presets – Предустановки Столкновения

Теперь, когда ваша Статик меш имеет столкновение, она может симулировать Физику. Сохраните меш стула, нажав кнопку Save (Сохранить) слева от панели инструментов в Редакторе Статик меши, а затем найдите SM_Chair внутри вашего Контент браузера. Перетащите копию меши на уровень и выберите ее и посмотрите на панель Details. В разделе Physics панели Details первым вариантом является Simulate Physics (Симуляция физики) и по умолчанию должна быть false (ложной). Если вы сейчас играете на уровне с установкой Симуляция физики на значении – false, ваш персонаж не сможет пройти через меш, и стрельба снарядами вообще не повлияет на меш.

Панель Сведений О Физике UE4

Остановите игру на уровне и установите для Simulate Physics значение – true. Теперь, когда вы играете, вы заметите, что когда ваш персонаж входит в кресло, меш движется. Меш также получает выстрел по уровню и в воздух, когда вы стреляете по ней. Это связано не только с тем, что меш имитирует физику, но также из-за того, что меш настроена на блокирование всего в качестве установленного по умолчанию Collision Preset.

Вернитесь на панель Details для стула и в разделе Collision, появится раскрывающееся меню с надписью Collision PresetsСпособ, которым этот экземпляр меши реагирует на другие объекты в мире, зависит от того, чем является его Collision PresetsВзгляните на варианты, которые показаны ниже.

Пресеты Столкновения UE4

По умолчанию установлено значение Block All (Блокировать все). Если вы переключите его на Overlap All (Переопределить все), как только начнется воспроизведение, вы увидите, что меш падает прямо через уровень. Существует также пользовательская предустановка (пресет), которая позволяет вам вручную установить то, как меш отвечает на разные объекты вашего уровня. Вы можете захотеть, чтобы она блокировала Пешки, но перекрывала Снаряды и игнорировала все остальное. В пользовательском пресете вы можете считать, что меш как раз для этого. Теперь, когда у вас есть столкновение, установленное на вашей меше, вы теперь готовы разместить ее на своем уровне и использовать ее столкновение, чтобы настроить то, как она влияет на что-то и как может быть затронута другими объектами вашего уровня.

При выборе Актера Статик Меши в редакторе уровня или любого Компонента Статик Меши, например, в редакторе Blueprint Editor Details Panel -> Collision Category -> Collision Presets отобразит Default (по умолчанию). Это означает, что не было изменений в пресете столкновения в отличие от того, где он был первоначально установлен. Если здесь указано что-то еще, например BlockAll, которое указывает, что выбранный Актер / Компонент Статик Меши имеет переопределенный Пресет Столкновений.

коллизия по умолчанию UE4

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите свой комментарий!
Пожалуйста, введите ваше имя: