Добавить в корзинуПозвонить
Найти в Дзене
Уроки по Unreal Engine

Готовлю мощную систему создания классов

Готовлю мощную систему создания классов. Это в каком-то роде будет аналогом GAS, но для стратегии и с уникальными механиками. В этом конфиге мы создаем классы сущностей. Не важно что это будет, юнит или здание. Конфиг один для всех. Для каждого класса мы настраиваем атрибуты (Свойства, качества). Это может быть здоровье, уровень голода, вместимость жилья, количество потребляемой пищи или переносимый вес. В обще все, что только в голову придет. Работает это на GameplayTag, поэтому всем управляют теги. Это и классы и атрибуты и состояния и задачи и эффекты. Настраиваем значения, задаем тег, устанавливаем имя. Затем есть модификаторы атрибутов. Это то, что изменяет атрибут ежесекундно. Например регенерация здоровья или выносливости, рост уровня голода, потребление выносливости. И можно выбрать состояние, для которого применится модификатор. Например все настроили и в состоянии покоя голод растет на 0.1 каждую секунду. Меняем тег состояния на "Работает" и рост голода автоматически р

Готовлю мощную систему создания классов. Это в каком-то роде будет аналогом GAS, но для стратегии и с уникальными механиками.

В этом конфиге мы создаем классы сущностей. Не важно что это будет, юнит или здание. Конфиг один для всех.

Для каждого класса мы настраиваем атрибуты (Свойства, качества). Это может быть здоровье, уровень голода, вместимость жилья, количество потребляемой пищи или переносимый вес. В обще все, что только в голову придет.

Работает это на GameplayTag, поэтому всем управляют теги. Это и классы и атрибуты и состояния и задачи и эффекты. Настраиваем значения, задаем тег, устанавливаем имя.

Затем есть модификаторы атрибутов. Это то, что изменяет атрибут ежесекундно. Например регенерация здоровья или выносливости, рост уровня голода, потребление выносливости. И можно выбрать состояние, для которого применится модификатор. Например все настроили и в состоянии покоя голод растет на 0.1 каждую секунду. Меняем тег состояния на "Работает" и рост голода автоматически растет до 1 в секунду. Но есть еще функция для разовых изменений, например для нанесения урона и вообще для изменения любого атрибута.

Затем настройка весов. Это заготовка для ИИ для системы принятия решений на основе веса. Выбираем атрибут и задаем ему кривую от 0 до 1, например чтобы при высоком уровне голода вес рос быстрее. И есть модификатор веса, где можно выбрать состояния и настроить вес и итоговый будет результат кривой * на модификатор, если есть. Он может повышать или занижать вес.

И поле для выбора остальных тегов, которые присущи данному классу.

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

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

И настройка размера пакета. Чтобы итерации по всем элементами проходили не в одном кадре.

Это будет фундаментом вообще для всего плагина. Когда я его доделаю, то займусь адаптацией уже сделанных систем и функций. Это уже совершенно новый уровень.