Создание мобов (Mobiles или Non-Player Characters — NPC) в Unreal Engine 4 — важная часть разработки игр, добавляющая жизнь и взаимодействие в ваш игровой мир. Вот пошаговое руководство по созданию мобов в UE4:
I. Основные понятия:
AIController: Класс, отвечающий за управление поведением NPC. Behavior Tree: Графический инструмент для создания логики поведения NPC. Blackboard: Ассет, используемый для хранения данных, которые могут использоваться Behavior Tree. Character: Базовый класс для персонажей, которыми может управлять AI или игрок. NavMeshBoundsVolume: Объем, определяющий область, в которой NPC могут перемещаться. BTTask_BlueprintBase: Базовый класс для создания пользовательских задач Behavior Tree с использованием Blueprints. EnvQuery: Система запросов окружения, позволяющая AI получать информацию об окружающей среде. Perception Component: Компонент, позволяющий AI “видеть” и “слышать” окружающий мир.
II. Шаги по созданию моба:
Create Character Blueprint:
Создайте новый Blueprint Class, производный от Character. Назовите его, например, BP_Mob. Добавьте Skeletal Mesh Component для отображения модели моба. Выберите модель и настройте материалы. (Optional) Добавьте Capsule Component и настройте его размеры для коллизии. Настройте параметры движения (Movement Component) в Details Panel.
Create AIController Blueprint:
Создайте новый Blueprint Class, производный от AIController. Назовите его, например, BP_MobAIController.
Create Behavior Tree:
Создайте новый ассет Behavior Tree. Назовите его, например, BT_Mob.
Create Blackboard:
Создайте новый ассет Blackboard. Назовите его, например, BB_Mob.
Configure Behavior Tree and Blackboard:
В Behavior Tree (BT_Mob):
Выберите Blackboard (BB_Mob) в Details Panel. Создайте Tasks, Services, Decorators для определения логики поведения моба (патрулирование, преследование, атака и т. д.).
В Blackboard (BB_Mob):
Добавьте Keys для хранения данных (например, Location, TargetActor, IsAggroed).
Implement AI Logic in Behavior Tree:
Root: Добавьте Root ноду. Selector: Добавьте Selector ноду (выполняет одну из дочерних нод). Sequence: Добавьте Sequence ноду (выполняет дочерние ноды последовательно). Tasks: Добавьте Tasks ноды для выполнения конкретных действий:
MoveTo: Для перемещения моба к заданной точке. Wait: Для задержки выполнения. Custom Tasks: Создайте свои собственные задачи (см. ниже).
Services: Добавьте Services ноды для периодической проверки условий (например, проверка близости игрока). Decorators: Добавьте Decorators ноды для определения условий выполнения (например, IsAggroed, HasLineOfSight).
Create Custom Tasks (Optional):
Создайте новый Blueprint Class, производный от BTTask_BlueprintBase. Назовите его, например, BTTask_Attack. В BTTask_Attack:
Implement ReceiveExecuteAI: Реализуйте логику выполнения задачи (например, воспроизведение анимации атаки, нанесение урона игроку). Implement ReceiveAbortAI: Реализуйте логику прерывания задачи.
Set AIController in Character Blueprint:
В BP_Mob:
В Details Panel найдите раздел “Pawn”. Установите “AI Controller Class” на BP_MobAIController. Установите “Auto Possess AI” на “Placed in World or Spawned”.
Spawn and Place Mobs in World:
Перетащите BP_Mob из Content Browser на уровень. Разместите NavMeshBoundsVolume на уровне, чтобы определить область, в которой мобы могут перемещаться. Нажмите клавишу ‘P’ для отображения NavMesh.
III. Расширенные возможности:
Perception Component: Добавьте AIPerceptionComponent в BP_Mob для обнаружения игроков и других объектов. Используйте AISenseConfig_Sight и AISenseConfig_Hearing. EQS (Environment Query System): Используйте EQS для поиска подходящих мест для патрулирования, укрытий или атак.
Создайте новый ассет Environment Query. Настройте тесты EQS для фильтрации результатов. Используйте EQS в Behavior Tree для выбора цели.
Animation Notify Events: Используйте Animation Notify Events для запуска событий во время анимации (например, нанесение урона во время анимации атаки). Gameplay Abilities: Используйте Gameplay Abilities для создания сложных способностей и эффектов для мобов. AI Director: Используйте AI Director для управления поведением группы мобов. Networking: Для многопользовательских игр используйте репликацию, чтобы синхронизировать поведение мобов между сервером и клиентами.
IV. Рекомендации:
Start Simple: Начните с простого поведения (например, патрулирование) и постепенно добавляйте более сложные функции. Use Comments: Добавляйте комментарии к своим Blueprint, чтобы было легче понимать, что происходит. Test Thoroughly: Тщательно тестируйте поведение мобов, чтобы убедиться, что оно работает правильно. Optimize Performance: Оптимизируйте свой код, чтобы он работал быстро и эффективно. Use EQS Sparingly: Environment Queries могут быть ресурсоемкими. Используйте их только тогда, когда это необходимо. Consider AI Difficulty: Подумайте о создании нескольких уровней сложности AI.
V. Примеры поведения мобов:
Patrolling: Моб перемещается между заданными точками. Chasing: Моб преследует игрока, когда он находится в поле зрения. Attacking: Моб атакует игрока, когда он находится в определенном радиусе. Fleeing: Моб убегает от игрока, когда он получает урон. Healing: Моб исцеляет себя или других мобов, когда они получают урон. Supporting: Моб поддерживает других мобов, например, защищает их или усиливает их способности.
Создание мобов в Unreal Engine 4 — это сложный, но увлекательный процесс. Следуя этим шагам и рекомендациям, вы сможете создать интересных и реалистичных персонажей, которые сделают вашу игру более захватывающей.