Как используя силу 30 нейронных сетей, создать игру?

Предисловие

Мы несколько лет следим за развитием ИИ в компьютерной графике и более 4 лет используем концепцию ко-креаторства внутри студии. У нас уже есть пара статей-разборов и проектов с использованием данного подхода (1, 2). Мы начали собирать всевозможные технологии, продукты и нейронные сети для использования в компьютерной графике и сделали библиотеку Generative AI инструментов, в которой уже более 1000 сегментированных продуктов.

Рисунок 1. Возможности нейронных сетей в графике
Рисунок 1. Возможности нейронных сетей в графике

В итоге на основе нашего опыта решили сделать продукт Phygital+, который позволяет иллюстратору или даже геймдизайнеру использовать возможности самых современных нейронных сетей для генерации контента. Сейчас нейронных сетей в продукте 30, некоторые из них заточены на решение конкретной задачи, например, создание панорам или текстур. Другие подойдут для обучения нейронных сетей на своем стиле, генерации персонажей и локаций. Количество нейронных сетей в продукте постоянно растет, у нас уходит 1 день, чтобы добавить новый AI сервис. Вышел инструмент, видим, что стал популярным у креаторов, сразу добавляем к нам. Иллюстратору не надо разбираться в коде коллаба, иметь мощные GPU, все происходит у нас в облаке.

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

На DTF есть отличные статьи от других компаний — как использование Midjourney или Stable Diffusion им помогло в оптимизации стоимости и времени реализации. Я же хочу рассказать про возможности использования ИИ для игровых компаний на всем пайплайне: из 1000+ нейронных сетей уже как минимум 30+ сетей вам действительно могут пригодиться. Конкретнее, как уже используется ИИ в генерации 2D, 3D контента и для улучшения производительности приложений. И как уже сегодня нейронные сети используются на этапах концепта, пре-продакшна, продакшна и пост-продакшна. Я каждую неделю провожу АМА-сессии с арт-директорами и гейм-девелоперами на данную тему, если у вас есть интерес пишите мне, с удовольствием проведем совместно.

Саму статью разделю на несколько частей. Первая часть про использование ИИ в пред-продакшне.

Рисунок 2: Использование ИИ на этапах разных пайплайна
Рисунок 2: Использование ИИ на этапах разных пайплайна

Часть 1. Пре-продакшн

  • Вдохновение и Мудбоард

Если у нас есть визуальный референс и мы не понимаем, как лучше описать его для генерации из текста, что мы от нейронной сети хотим, нужно использовать нейронную сеть CLIP Interrgorator, которая из изображения делает промпт. Промпт — это текст для нейронной сети, написанный определенным образом, используя отсылки к углу камеры, стилям художников и тп. Далее на этом этапе можно для перефразированная использовать chatGPT, а также поисковик по промптам Lexica.

Рисунок 3. Написание промпта с помощью Image to Text
Рисунок 3. Написание промпта с помощью Image to Text
Рисунок 4. Написание промптов с помощью Lexica
Рисунок 4. Написание промптов с помощью Lexica

Если нужно совсем быстро получить результат, мы разработали Artistic Mode, режим, в котором мы невидимо дописываем за вас промпт так, чтобы изображение получалось более художественным. Мы в Phygital+ называем это PromptOps — автоматизация вашей работы с промптами, потому что промпт-инжиниринг — это действительно искусство и этому нужно обучаться. Для этого мы выпустили Prompt Guide, который помогает научиться лучше генерировать арты.

Рисунок 5. Artistic mode
Рисунок 5. Artistic mode
  • Концептинг

Далее для работы у нас есть большое количество предобученных чекпоинтов, моделей Stable Diffusion, обученных на конкретном стиле изображений. При использовании этих моделей, генерация всегда будет в заданном стиле отличного качества. Для этого нужно соединить результат CLIP Interrogator (в нашем интерфейсе Image To Text prompt) с нодой Stable Diffusion и выбрать любую понравившуюся модель.

Рисунок 6. Один и тот же промпт в разных стилистиках
Рисунок 6. Один и тот же промпт в разных стилистиках

Вот пример, как взяв 30 скриншотов игры Project Winter за 30 минут мы получили собственную модель, которая генерирует изображения в этом стиле. Модель доступна только вам, другие пользователи ее не увидят.

Рисунок 7: Пример обучения на собственном стиле
Рисунок 7: Пример обучения на собственном стиле

Каждая модель весит около 3гб, многим нашим клиентам требуются десятки моделей: можно создать модель для каждого отдельного персонажа, для стилистики вашей игры в целом или для какого-то определенного типа объектов, например, растений.

Рисунок 8: Пример генерации объектов, лиц и стилистики
Рисунок 8: Пример генерации объектов, лиц и стилистики

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

Рисунок 9: Пример генерации персонажей
Рисунок 9: Пример генерации персонажей
Рисунок 10: Пример генерации локаций
Рисунок 10: Пример генерации локаций

Для работы с понравившимся персонажем есть возможность редактирования и доработки его с помощью ControlNet, InstructPix2Pix и еще рядом нейронных сетей. К примеру, нам понравилась сгенерированная девушка номер 4. Мы можем поменять ей волосы, сделать ее роботом или добавить очки, просто попросив нейросеть об этом текстом.

Рисунок 11. Пример редактирования изображений
Рисунок 11. Пример редактирования изображений

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

Рисунок 12: Пример редактирования изображений с маской
Рисунок 12: Пример редактирования изображений с маской

Маску можно рисовать прямо в интерфейсе

Gif 13. Создание маски для инпейнтинга в Phygital+

Слева на панели есть список доступных нейронных сетей для изменения изображения.

Скрин 14: Возможности для редактирования
Скрин 14: Возможности для редактирования

Далее мы хотим представить, как этот персонаж будет смотреться в окружении, или как будет выглядеть в определенной одежде. Для этого мы можем использовать outpainting: добавляем персонажа на белый фон и просим нейронную сеть сгенерировать окружение. Расширять изображение можно раз за разом.

Скрин 15. Использование маски для аутпейнтинга портрета и получения нового концепта
Скрин 15. Использование маски для аутпейнтинга портрета и получения нового концепта

Или хотим поместить этого персонажа в другую локацию — для этого ищем подходящий промт, генерируем локацию в Stable Diffusion, удаляем и заменяем фон и помощью Remove Background.

Скрин 16. Замена фона на сгенерированном персонаже
Скрин 16. Замена фона на сгенерированном персонаже
  • Сторителлинг (раскадровка, сторибоарды, комиксы и тритменты)

На этапе концептинга мы решили, что нам подходит данный персонаж, и теперь мы хотим попробовать погенерировать раскадровку и другие позы именно этого персонажа. Для этого нам нужно, чтобы нейронная сеть запомнила информацию об этой девушке и дала ей отдельное имя. В этом нам поможет нода Dreambooth, которая обучает Stable Diffusion на своих данных. Но нам необходимы синтетические данные (дополнительные картинки) с персонажем, для этого мы используем генерацию Portrait Animation, которая помогает представить разные ракурсы для сгенерированного персонажа. А далее мы даем персонажу имя (мы назвали девушку PinkyMiel) и отправляем на обучение нейронную сеть.

Gif 17. Подготовка данных для обучения

После обучения вы можете генерировать сторителлинг с вашим персонажем

Скрин 18: Генерация на основе обученной модели
Скрин 18: Генерация на основе обученной модели

Для удобства мы собираем нужные ноды в темплейты, доступные для использования и пошагового воспроизведения.

Доступные темплейты
Доступные темплейты

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

Мы также активно добавляем новых пользователей в наш продукт Phygital+, записывайтесь в наш Waitlist.

Если вы используете нейронные сети в своей работе, поделитесь с нами в комментариях.

6464
37 комментариев

Как используя силу 30 нейронных сетей, создать игруне игру, а игровые ассеты. Графика, текст и звук - это не игра, это просто контент для игры. Создать из безусловно можно, только игру всё равно надо делать человеку. И это прекрасно. Если бы нейросети делали игры, в прямом настоящем понимании, а не как сейчас это понимают, то играть в них было бы некому.

14
Ответить

У меня для вас ОЧЕНЬ плохие новости.

Ответить

Хотел лайк поставить, но, начав читать понял что тут все реклама ваших сервисов, потому диз.

5
Ответить

диз за информацию с кучей бесплатной и полезной библиотекой и информацией объяснения почему это важно и интересно и как это можно использовать ?

1
Ответить

Так не будет работать экономика. Вы сэкономили 90% денег на разработчиках, но будете продавать свою игру за такую же цену людям.
Так сделает одна, компания, вторая, все. Компании из 10 человек будут с помощью нейронок делать игры ААА качества за год, но только кому это будет нужно, если всех людей так заменят нейросети и останутся только суперэффективные компании, продукты которых никому не нужны, так как все люди будут бомжевать на улице в таком случае.

Ответить

я думаю будет увеличиваться эффективность бизнеса, будут становится лучше продукты и люди будут меньше заниматься рутинной работой, и меньше работы не станет - она станет еще более эффективной и креативной

Ответить

Тэк, а где игра-то?

Ответить