Как отключить коллизию объекта (actor), когда персонаж достигает триггера в Unreal Engine 4?

Как можно отключить коллизию двери, когда искусственный интеллект (character) находится в пределах триггера, чтобы он мог пройти через неё?
  • 3 октября 2024 г. 16:44
Ответы на вопрос 1
В Unreal Engine 4 отключить коллизию объекта (в данном случае, двери), когда персонаж достигает триггера, можно с помощью Blueprint'ов. Вот пошаговая инструкция, как это сделать:

1. **Создайте триггер (Trigger Box)**:
   - В вашем уровне (Level) добавьте **Trigger Box** из панели **Place Actors** (Панель Размещения Актеров).

2. **Добавьте двери (Door)**:
   - Если у вас еще нет двери, добавьте ее в сцену, используя Static Mesh или свой собственный Actor для двери.

3. **Настройте триггер**:
   - Выберите ваш **Trigger Box** и откройте его Blueprint. Вы можете это сделать, щелкнув правой кнопкой мыши по триггеру и выбрав **Add Event** -> **On Actor Begin Overlap**.
   - В этом событии вы можете добавить логику для отключения коллизии.

4. **Настройте события (Events)**:
   - После добавления события **On Actor Begin Overlap**, добавьте проверку на то, является ли перекрывающийся объект искусственным интеллектом (AI). Для этого используйте ноду **Cast To** (например, если ваш AI — это класс, который вы создали, кастуйте к нему).
   - Если каст успешен, добавьте ноду, которая будет отключать коллизию у двери. Для этого выберите Actor двери и используйте ноду **Set Collision Enabled** (или **Set Actor Enable Collision**) и измените его состояние на **No Collision**.

5. **Событие On Actor End Overlap**:
   - Если вы хотите, чтобы коллизия снова включалась после того, как AI покинет триггер, добавьте еще одно событие — **On Actor End Overlap**.
   - Снова проверьте, является ли объект AI, и если это так, включите коллизию для двери, используя аналогично **Set Collision Enabled** и установите его на **Collision Enabled**.

### Примерная реализация в Blueprint:

- **On Actor Begin Overlap** -> {Cast To AICharacter} -> {Set Collision Enabled (на двери, No Collision)}
- **On Actor End Overlap** -> {Cast To AICharacter} -> {Set Collision Enabled (на двери, Collision Enabled)}

### Замечания:

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

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