Чем нейронки могут помочь разработчику в Gamedev

Собрал и протестировал AI инструменты - от генерации иконок и бесшовных текстур до Motion Capture. Все инструменты бесплатны и доступны OpenSource.

ДИСКЛЕЙМЕР

Все проекты OpenSource и поддерживаются силами энтузиастов, что увеличивает порог вхождения. Разворачивать проекты придется на своей машине, а нейронки на слабых компах особо не погоняешь - у меня RTX 3080 TI и I7-13700k с 32 ГБ ОЗУ, следовательно я не могу трезво оценить как все эти чудеса работают на более слабых конфигурациях.

Простенькое для разогрева. Апскейл с помощью Upscayl

По моему мнению лучший бесплатный OpenSource проект для апскейла изображений. Имеет удобный пользовательский интерфейс, дает на выбор несколько типов апскейла и максимально дружелюбен к рядовому пользователю.

Чем нейронки могут помочь разработчику в Gamedev

Основа основ - Stable Diffusion

В этой статье не будут рассматриваться всякие проприетарные Midjourney, DALL-E и прочие Chat-GPT дегинеративные сети. Только OpenSource, только хардкор.

Stable Diffusion - это OpenSource модель глубокого обучения. С помощью моделей на его основе мы будем генерировать текстуры, иконки, да и вообще все что угодно.

Сам по себе Stable Diffusion не имеет пользовательского интерфейса и вся работа с ним происходит через консоль. Для решения этой проблемы существует легендарный OpenSource проект stable-diffusion-webui от AUTOMATIC1111 - в гайдах часто называется просто AUTOMATIC1111 или A1111 для краткости - далее по тексту я буду называть его именно A1111.

Так пользоваться Stable Diffusion намного удобнее.
Так пользоваться Stable Diffusion намного удобнее.

С ПО понятно, как все это запустить?

На STABLE DIFFUSION ART собранно большое количество полезных гайдов касаемых Stable Diffusion:

Что такое модели и какие они бывают

После того как мы установили A1111- мы получаем интерфейс для удобного доступа к генерации изображений. Но перед этим бы должны выбрать модель, с помощью которой мы будем генерировать изображения. Для понимая что такое модели и какие они бывают, можно почитать следующий гайд:

И тут мы знакомимся со следующим важнейшим ресурсом - Сivitai. Это библиотека моделей на основе Stable Diffusion, и по совместительству галерея созданных с его помощью изображений.

Да, на сайте также очень много моделей для генерации порно и хентая
Да, на сайте также очень много моделей для генерации порно и хентая

Давайте уже что-нибудь сгенерируем - модель для создания иконок

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

Вот мы скачали модель, добавили ее в наш A1111 WebUI (скачанную модель gameIconInstitute_v40.safetensors нужно кинуть в папку по пути webui\models\Stable-diffusion\), выбрали модель как активную, и в собственном наивном неведении пытаемся сгенерировать иконку меча, а получаем.... лолю

Их хлебом не корми дай сгенерить лолю на любой запрос. Страшно представить на чем эти модели обучают.
Их хлебом не корми дай сгенерить лолю на любой запрос. Страшно представить на чем эти модели обучают.

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

((sword gameicon)), HD, White background, ((((((No Human))))))

Скобки "()" служат для повышения приоритета выделенного предложения, скобки "[]" служат для понижения.

Жмякаем Generate и опять получаем какую-то чертовщину. Как с этим вообще работать?

Чем нейронки могут помочь разработчику в Gamedev

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

Чем нейронки могут помочь разработчику в Gamedev

Секрет очень простой - для генерации иконки нужно использовать референс того, что мы хотим получить. Для этого открываем вкладку img2img, вставляем в левое поле первую попавшуюся в интернете картинку меча и получаем то что нужно.

Чем нейронки могут помочь разработчику в Gamedev

Если нейронка слишком фантазирует и не следует референсу, то нужно уменьшить параметр Denoising Strange. Чем больше значение, тем больше нейронка фантазирует и меньше следует референсу.

Чем нейронки могут помочь разработчику в Gamedev

Небольшие примеры того, что у меня получилось сгенерить

Сфоткал свою трубку - впечатляет, что он меняет серебренное кольцо на прозрачную колбу. Промпт был с просьбой сгенерировать футуристическую курительную трубку
Сфоткал свою трубку - впечатляет, что он меняет серебренное кольцо на прозрачную колбу. Промпт был с просьбой сгенерировать футуристическую курительную трубку

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

Бесшовные текстуры

Пытался пробовать готовые модели, но их результат мне не понравился. Поэтому использовал "ультра реалистичные модели", такие как Juggernaut XL (по моему мнению выдал лучший результат), Realistic Vision и Cyber Realistic. Следующие примеры будут на Juggernaut XL.

Начинаем сразу с того с чем у нейронок огромные проблемы - с ровных форм, и для этого идеально подойдет текстура паркета. Но перед этим надо научить A1111 делать именно бесшовные текстуры, делается это выставлением одной галочки "Tilling" (что делать если нет галочки)

Чем нейронки могут помочь разработчику в Gamedev

Получаем что угодно, но не паркет - зато бесшовно (кстати бесшовность можно проверить онлайн). Тут снова применяем хитрость с референсом - повторяем за мной:

1. Находим безшовную векторную текстуру с контуром паркета

2. Генерим любую текстуру дерева

3. Накладываем ее на текстуру контура в Gimp или Photoshop

4. Суем результат во вкладку img2img в качестве референса

5. Выставляем Denoising Strength в районе 0.55

7. Используем следующий промпт "Old School, vintage, varnished ((((dark red)))) oak wood parquet, texture, perfect, hight quality"

8. Выставляем разрешение в 1024 на 1024

6. Получаем приличный на мой взгляд результат

Чем нейронки могут помочь разработчику в Gamedev

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

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

Анимация и Motion Capture

Если вы не смогли найти нужную анимацию на mixamo, а для нормального Motion Capture с костюмами, зеленым фоном и блэкджеком нет денег, то можно попробовать AI решения.

Первый тип решений считывает по заданному видео позу человека и на его основе строит анимацию. Для Motion Capture доступно несколько платных решений, таких как move.ai или DeepMotion. Их можно попробовать бесплатно (с большими ограничениями), но для полноценного использования нужно платить подписку.

Другой тип программ по ключевым кадрам может создать реалистичную, физически корректную анимацию. И на этом поле насколько я понимаю сейчас находиться только один игрок - Cascadeur, который можно попробовать бесплатно, но для нормально использования нужно платить подписку. Каких либо Open Source аналогов для него я к сожалению не нашел.

The FreeMoсap Project

Бесплатная OpenSource программа с удобным (ну почти), пользовательским интерфейсом для Motion Capture. Что радует, проект активно развивается, на Discord сервере постоянный движ - люди пишут плагины для Unity, Unreal Engine и Blender. Именно там я научился экспортировать все это чудо в Unreal Engine и Blender.

Чем нейронки могут помочь разработчику в Gamedev

Опыт использования

Подробно расписывать как все это запустить и использовать - займет отдельную статью, поэтому кратко опишу свой опыт. Видео снимал на обычный китайский телефон и вебку в 720p. Также пришлось распечатать доску Charuco Board на листе в формате A3 для калибровки камер.

Чем нейронки могут помочь разработчику в Gamedev

Пляшем с доской перед камерами секунд 40 для калибровки, после чего начинаем записывать Motion Capture. С помощью молитв, сервера дискорда разработчика и чей-то матери экспортируем это все в Blender, чистим анимацию (я этого не делал) и далее экспортируем это уже в Unreal Engine.

IK Rig, ретаргет, маты, боль, слезы, и наконец-то получаем это. Ладони колбасит потому что мне лень было удалить кривые ключевые кадры из анимации.

Заняло это все часов 8, но результат на мой взгляд приличный, учитывая что это все сделано на коленке с помощью двух шакальных камер.

Выводы

Если очень захотеть, иметь большое желание, упорство и нулевое количество денег (и при этом ПК тысяч за 200), то нейронки могут неплохо подсобить в такой нелегком деле как разработке игр в гараже одним человеком с бюджетом в банку пива.

Нейронки в геймдеве
Нужны
Не нужны
Если не видно, что это сделала нейронка, то ок
Я *profession_name* и боюсь быть вытесненым нейронками
14K14K показов
1.9K1.9K открытий
22 комментария

Вопрос уже не дискуссионный, нейроинструменты неизбежны как часть пайплайна. Я просто рисую вот, и моя локальная лорка, натренированная на моём персонаже, помогает с прототипированием и поиском идей. Ничего фундаментально не изменилось, просто то, что раньше занимало целый вечер, теперь занимает максимум час.

Ответить

Могу порекомендовать установщик SD, может поставить любую версию самого стейбла , плюс имеет большой выбор интерфейсов. https://lykos.ai/

Ответить

Для генерации тайлов можно использовать сетку DeepFloyd (IF), но это уже для смешариков, на большинстве видюх она не влезет, кодовая база не обновляется, зато эта сетка может генерировать гексагональные тайлы и со всякими плитками и спрайтами у неё тоже неплохо

Ответить
Ответить

Классный текст, спасибо.
Мне кажется, начинать знакомство со SD проще всего с оболочки Easy Diffusion. Работает "из коробки", автоматическая установка, интерфейс относительно эргономичный.

Ответить

Сколько ж такого пережёванного и высранного безмозглой нейросеткой говнеца нас всех ждёт в ближайшие 10-15 лет ) безыдейного, без единого стиля, уныло-"реалистичного", не тронутого рукой живого профессионального дизайнера...
И если б это касалось только визуала (многие живые художники и без нейросетки выдавали плюс-минус то же), но ведь щупальца потянутся и к сюжету, диалогами, текстам и проч.

Ответить

как будто до этого пережеванного высранного говнеца, но от человеков не было. Интернет уже давно помойка ебейшего масштаба. То, что этого станет еще больше, принципиально ничего не поменяет

Ответить