Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Делаю игру на Unreal Engine 5 с ИИ: от выбора нейросетей до озвучки существ

Дата публикации: 18-10-2026 16:10:02

Для Dungeon Cult на Unreal Engine 5 попробовал 13 ИИ-моделей и сервисов — для кода, картинок, 3D, голосов и музыки. Рассказываю, какие оставил в работе и почему. Подробнее — о локальной озвучке на RTX 5060 Ti 16 ГБ: 24 звука за 94 секунды в одном запуске и целиком забракованная подборка из 45 звуков в другом. А ещё — как существа выбирают занятия и что проверяю в бою 45 на 45. Читать далее

Основное содержимое страницы с новостью.

В первой статье я показывал, как делаю существ для Dungeon Cult — игры про строительство подземелья в духе Dungeon Keeper, но с лавкрафтовскими обитателями.

Теперь расскажу, как устроено само подземелье, как его жители выбирают занятия и как добавляю им голоса. А ещё — как слежу за развитием проекта, когда задач становится больше, чем помещается в голове.

В разработке мне помогают ИИ‑агенты: пишут код и инструменты, собирают ассеты, запускают проверки. А поведением существ внутри игры управляет логика на C++ — без запросов к нейросетям.

Заодно разберу 13 ИИ‑моделей и сервисов, которые использовал или тестировал: для кода, картинок, 3D, голосов и музыки. Что я думаю о каждой модели, какие запускаю локально и что в итоге оставил в работе — собрал в таблице ниже. Там же указал, какие из них открытые.

Что это за игра

Игрок — хранитель подземелья. Он распоряжается, где копать и какие комнаты строить, заботится о жителях: обеспечивает их едой и отдыхом, следит за настроением, тренирует и отправляет воевать. Пока на карте два хранителя. Цель каждого — разрушить сердце вражеского подземелья и защитить своё.

От веб‑прототипа к подземелью, которое можно копать

Всё началось с веб‑прототипа и нескольких изометрических вариантов. Картинки были, но производительность и поведение существ не радовали. Потом перешёл на Unreal Engine и полноценное 3D. Один из ранних вариантов подземелья попал в игру из Blender цельной статической моделью. Красиво, но копать нечего: игра не знала, где отдельный блок породы, кому принадлежит земля и что должно измениться после удара рабочего.

Поэтому основой подземелья стала сетка клеток. Каждая хранит своё состояние: порода, открытый пол, присвоенная земля или комната. Unreal уже по этим данным рисует подземелье из повторяющихся моделей. Теперь можно изменить одну клетку, а не переделывать целую сцену. Не вся обстановка здесь нейросетевая. Часть мебели собрал скриптами в Blender, предусмотрев отдельные оси для подвижных деталей.

ИИ хранителя и ИИ существ

В игре два уровня управления. Хранитель планирует копку, строит комнаты, нанимает рабочих, выбирает исследования и собирает отряд. У отдельного существа свои заботы: поесть, поспать, полечиться, поработать или драться.

Как выбирает существо. За выбор мирных занятий отвечает Utility AI — система оценок полезности. На оценку влияют голод, усталость, здоровье, склонности вида и расстояние до нужной комнаты. Нет подходящей комнаты — нет и этого варианта. Это собственная реализация на C++, а не обученная нейросеть. Правила заданы в проекте, многие коэффициенты вынесены в отдельный конфиг.

Пример с текущими коэффициентами: чтение набрало 0,70. Существо уже читает, поэтому получает ещё 0,15 за продолжение — итого 0,85. При голоде 70 из 100 оценка еды достигает 0,88 и при прочих равных побеждает. Решение обычно пересчитывается раз в 0,5–0,7 секунды. Чтобы монстр не метался между книгой и курицей, текущее доступное занятие удерживается минимум 3 секунды, если не вмешалось внешнее событие. Бонус за продолжение тоже помогает избежать постоянных переключений. Бой и бегство обрабатываются отдельно.

Как решает хранитель. Здесь работает планировщик на правилах с оценками срочности. Отсутствие курятника даёт стройке 0,95, а необходимость первой библиотеки — 0,80. Если обе задачи допустимы, еда важнее исследований. При этом учитываются деньги, условия развития и уже начатая работа. Зал, который сейчас копают, хранитель не бросает из‑за нового желания. Поэтому в отладочном журнале полезно видеть не только решение, но и его причину: «курятник: 0,95, нет еды».

Ночной гаунт в библиотеке. Комнаты нужны не только для вида: у жителей есть занятия и потребности.

Ночной гаунт в библиотеке. Комнаты нужны не только для вида: у жителей есть занятия и потребности

Самая полезная просьба агенту здесь — не «улучши ИИ», а «запиши, почему он выбрал это действие». В журнале нужны существо, время, цель и причина. На видео видно, что кто‑то тупит. Из журнала уже можно понять, что ему не хватило места, денег или доступного пути.

Как существа получили голоса

Существам нужны не только движения, но и звуки: рычание, дыхание, крик от боли, шум атаки. Я начинал с ElevenLabs, затем попробовал локальные модели. В итоге большую часть новых голосов и эффектов подбирал в Stable Audio 3 Medium, прямо на своём ПК.

Сколько времени занимает локальная генерация

Конкретный запуск на моей RTX 5060 Ti 16 ГБ: Stable Audio 3 Medium подготовила для ночного гаунта 24 звука примерно за 94 секунды. Восемь действий, по три варианта на каждое. Длительность отдельных записей — от 1,5 до 3,5 секунды, суммарно получилось 53 секунды исходного аудио. Настройки: 12 шагов, CFG 1,8.

До первого сохранённого звука прошло около 64 секунд, остальные 23 появились за следующие 30 секунд. В этом запуске ожидание первого результата заняло больше времени, чем вся оставшаяся пачка.

Время приблизительное: восстановлено по журналу запуска и времени записи исходных файлов. Установка и скачивание модели сюда не входят. Прослушивание и дальнейшая обработка — тоже.

А вот сколько попыток может потребоваться до принятого результата: для Ноденса первая подборка из 45 звуков была целиком отклонена. Нужен был брутальный мужской бас. Сделал вторую подборку — ещё 45 вариантов на те же 15 действий. Два результата дополнительно перегенерировал из‑за ухода высоты голоса вверх. В игру в итоге попали 15 выбранных записей.

Поэтому «сколько генерируется звук» и «сколько времени нужно на подходящий звук» — разные вопросы. На первый у меня есть замер. На второй нет честного числа в минутах: время прослушивания я отдельно не фиксировал.

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

Не делай сразу полный набор звуков. Сначала подготовь три разных характера голоса, по две короткие реакции на каждый. Дай послушать и дождись выбора. После этого делай остальные реакции в выбранном характере. Финальная проверка — в игре: отдельно одно существо, затем несколько одновременно.

Что локальная модель действительно заменила

Переход с ElevenLabs не был полной заменой одного сервиса другим:

Звук

Что осталось в игре

Реакция гуля на поднятие

Локальный вариант Stable Audio заменил ElevenLabs

Реакция гуля на боль

Тоже заменена локальным вариантом

Удар кирки

Остался ElevenLabs, но потребовалась обрезка

Сердцебиение подземелья

Осталось ElevenLabs

При этом объявлять Stable Audio победителем такого сравнения нельзя. Для заменённых голосов гуля использовались аудиореференсы, то есть условия отличались от первоначальных облачных генераций. Это история выбора звуков для проекта, а не тест двух моделей с одинаковыми вводными.

Хороший аудиофайл ещё нужно подогнать под игру. У кирки главный удар начинался примерно через 0,943 секунды от начала файла. Даже при правильном запуске на контакте кирки звук запаздывал. После удаления первых 0,91 секунды сильный удар начинался примерно через 0,033 секунды. Перегенерировать его не понадобилось. Поэтому при рассинхроне стоит проверить и момент запуска, и сам файл.

И обязательно слушать всё в толпе. Один монстр рычит убедительно, десять одновременно — уже гул. У одного из персонажей я ограничил голос атаки одним срабатыванием в 8 секунд, а звук самого заклинания оставил на каждый выстрел. Так атаки слышны, но существо не орёт без остановки.

Проверка в массовом боюСвежая запись тестовой арены. На старте 45 на 45, девять видов существ. GIF без звука.

Свежая запись тестовой арены. На старте 45 на 45, девять видов существ

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

Молнии, заморозка и ближний бой в одном кадре. Красивый эффект отдельно ещё надо проверить в толпе.

Молнии, заморозка и ближний бой в одном кадре. Красивый эффект отдельно ещё надо проверить в толпе.

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

Какие ИИ в итоге пригодились

Собрал весь набор, который использовал в разработке, ассетах и сюжетных роликах. «Лучшее» здесь — что прижилось у меня, а не рейтинг моделей вообще. Версии агентов менялись, поэтому Sol, Astra и Opus называю семействами.

Модель или сервис

Открытость

Для чего и что в итоге

OpenAI Sol

Нет, закрытая

Решение простых задач. Например, Sol настроил открытие заклинаний по уровням: паук со 2-м уровнем только кусает, с 3-м применяет паутину, с 5-м — ещё и ускорение. Для проверки сделал отдельную сцену.

OpenAI Astra

Нет, закрытая

Основная модель от чата ГПТ. Например, Astra довела лунную тварь до игры: подключила три способности, восемь выбранных звуков, занятия в комнатах и проверила существо в бою.

Claude Opus

Нет, закрытая

Лучшая модель в проекте, решает самые сложные задачи, справляется чаще лучше Astra. Например, Opus разобрал неравный старт хранителей: один успевал нанять рабочего до создания второй стороны. Исправил порядок запуска и подготовил автоматические серии боёв для проверки.

ImageGen / GPT Image

Нет, закрытая

Основной путь для образов существ и иллюстраций. Для сюжетных кадров использовал gpt‑image-2

TRELLIS.2

Да, MIT*

С него я начинал перевод существ в 3D. Для новых моделей перешёл на Pixal3D: у моего культиста TRELLIS склеил щупальца на лице

Pixal3D

Да, MIT*

Текущий выбор для новых 3D‑существ. На том же исходнике щупальца разделились; проверка сетки дала 4 открытых ребра против 5629 у TRELLIS. Это один пример, не общий бенчмарк. Доводка всё равно нужна

ElevenLabs Sound Effects

Нет, закрытая

Первые игровые звуки; кирка и сердцебиение остались в проекте. Для дальнейшего подбора голосов я перешёл к локальным моделям

MOSS‑SoundEffect v2.0

Да, Apache 2.0

Пробовал для локальной генерации звуков существ. Качество меня не устроило, дальнейшие подборки делал в Stable Audio

Stable Audio 3 Medium

Открытые веса; Community License, не свободная MIT/Apache

Мой основной локальный инструмент для голосов существ и эффектов. Отдельные подборки я браковал, но после доработки результат меня устраивал

ACE‑Step 1.5 + LoRA

Да, MIT*

Локальная фоновая музыка. Принятые треки я уже подключил к игре и продолжаю использовать этот инструмент

Suno

Нет, закрытый сервис

Отдельный эксперимент с музыкой: я получил два варианта, но в игру их не подключал. Пока проба, а не замена ACE‑Step

gpt-4o‑mini‑tts

Нет, закрытая

Голос ранних сюжетных роликов, варианты Ash и Onyx. В ролике с Проводником затем использовал уже свой голос (про ролик будет в отдельной статье)

Whisper large‑v3

Да, MIT

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

* Указал лицензии основных проектов; у зависимостей могут быть другие условия. Локальный запуск сам по себе не означает open source. У Stable Audio есть ограничения Community License. И лицензия модели не даёт автоматически прав на чужую музыку для обучения LoRA или каверов — это отдельный вопрос перед релизом.

Чтобы проект не остался в переписке

Ещё я сделал себе отдельную локальную страницу — карту проекта. Когда существ, заклинаний и звуков стало много, вспоминать по чатам, что уже работает, стало неудобно. В карте собраны существа, комнаты, анимации, магия, аудио и оба уровня игрового ИИ.

Самое полезное — не одна галочка «готово», а раздельные состояния. Модель может быть принята внешне, но ещё не иметь нормальной атаки. Звук может лежать на диске, но не вызываться игрой. Поэтому «файл создан», «подключено» и «я посмотрел и принял» — разные вещи. После работы агенты фиксируют в файлах проекта, что поменяли, чем проверили, что не получилось и какой следующий шаг. Часть сведений карта собирает автоматически из ассетов и конфигов; оценки качества и причины отказа я записываю отдельно.

Практический совет: добавьте к задаче агенту требование «после выполнения обнови карточку: результат, путь к проверке, ограничения, следующий шаг; не ставь „принято“ без моего просмотра». Новый чат тогда начинает с состояния проекта, а не с пересказа предыдущих десяти разговоров.

Моя карта проекта: отдельно видно, что у ИИ хранителя работает, что я исправил, где остались проблемы и что делать дальше

Моя карта проекта: отдельно видно, что у ИИ хранителя работает, что я исправил, где остались проблемы и что делать дальше

На соседней вкладке — умения существ по уровням: что уже доступно в игре, что работает без ограничения по уровню, а что пока только в плане

На соседней вкладке — умения существ по уровням: что уже доступно в игре, что работает без ограничения по уровню, а что пока только в плане

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

О сотрудничестве и нетворкинге

Сам я работаю в hh.ru, а Dungeon Cult — мой личный проект. Готов к сотрудничеству и открыт к разным предложениям — по игре, инструментам или совместным экспериментам с ИИ. Если есть идея для совместной работы, напишите мне в личные сообщения на Хабре:)

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Не делайте NPC умнее игрока010.8413-10-2026
2LLM для игры в ДнД: эволюция подхода0723-06-2026
3Правильное использование ИИ: AnyPS5 успешно эмулирует больше 90% системных функций ...0.513.6719-10-2026
4Нейрогенератор игровых миров. Часть 2: «оно» ожило5813-06-2026
5Как ИИ не дал загнуться ещё одной ноунейм игре. Даже текстовой08.8824-07-2026
6Недельный геймдев: #297 — 18 октября, 2026013.2919-10-2026
7Как сделать портрет с помощью ИИ — чтобы действительно было похоже012.1419-08-2026
8Я не боюсь, что меня заменит ИИ. Я боюсь работать с ИИ06.425-09-2026
9Когда контекстное окно кончается, а проект — нет5723-06-2026
107 месяцев вайбкодинга: как в одиночку делать то, что раньше требовало команду0901-08-2026

Классификация: . Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 15.77. Источник: habr.com.