UE 5 State Tree - AI для ботов и не только

Мощная система, позволяющая отслеживать определенные состояния, менять их при различных условиях и выполнять все в реальном времени.

Давайте подробнее расскажу, что это за зверь и с чем его кушают.

Система State Tree появилась недавно, в 5 версии Unreal. Она использовалась в примере от Epic Games – Matrix для управления искусственным интеллектом людей на карте. Прежде чем начать работать с данной системой, необходимо активировать плагины движка:

Перезапускаем проект и, непосредственно, нам стали доступны новые Blueprint классы. Это один основной компонент и 3 вспомогательных класса. У персонажа который является ботом, или класс, к которому мы хотим добавить дерево состояний – добавляется компонентом State Tree Component в иерархии объекта. А в него, в details – подставляется наш созданный в контент браузере State Tree. И так, посмотрим на эти классы:

Главный класс, в котором происходит детальная настройка состояний. Именно он подставляется в компонент объекта и начинает взаимодействие

Blueprint, в котором мы можем построить схему для определения условий и состояний. 

Объект служит для инициализации переменных, проверок в таймере и т.д. В общем, в нем мы 1 раз делаем нужные касты, установку значений – и в дальнейшем используем для построения логики.

Таски выполняются в дереве и могут возвращать bool ответ, был ли он выполнен. Как раз в них и описывается поведение объекта и условие выхода из этого состояния. 

А так выглядит сам главный класс Stete Tree. Слева – мы указываем какому классу принадлежит дерево, вставляем наши EValuators  и биндим input значения, основываясь на владельце.

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

Справа – Указываем Таск, выставляем переменные Таска, добавляем условия перехода на другие ветки дерева.

Достаточно мощный и оптимизированный инструмент для изменения состояний объеков.

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