14 декабря 2022 14.12.22 7 1412

Может ли нейронная сеть нарисовать вам игру?

+18

Да, но есть нюансы.

 

Итак, Mechahearts это визуальная новелла в атмосфере стимпанка и нарисована она с помощью нейросети Midjourney с небольшими вкраплениями Dall-e 2.

Я весьма скептически отношусь к нейросетям: выдать ряд взаимосвязанных самостоятельных произведений они всё ещё неспособны. Нейросети вдохновляют в первую очередь разлетевшимися по сети работами в духе такой:

И объективно эта картинка выглядит очень неплохо, но если посмотреть на команду (prompt) которую использовал автор, то станет ясно, что нейросеть не особо то и придерживалась его требованиям:

Человек несколько раз уточнил, что девушка должна быть изображена во весь рост, что у неё должны быть кошачьи ушки и жёлтые волосы, но в итоге midjourney выдала ему абстрактное изображение «на тему». И это изображение красивое, но оно не соответствует требованиям «заказчика».

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

Сильнее всего страдают глаза. Вы посмотрите на это:

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

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

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

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

Другой проблемой стали эмоции — что за визуальная новелла, когда персонажи демонстрируют одно и тоже выражение лица? Но любые попытки скормить нейросети уже нарисованных персонажей и подписать к promtу что-то вроде «angry» выдавала совсем абсурдные результаты:

Эта орущая рожа — очень прикольная, но она вообще не похожа на тот результат, который я хотел получить. Как итог — мне снова пришлось пытаться что-то рисовать поверх полученного от нейросети результата:

К слову, я не такой уж и классный художник, а стилистика, выбранная для Mechahearts излишне реалистична для моих навыков. Реализмом я хотел усилить эффект «зловещей долины» и лишить себя возможности отойти от задуманного концепта и нарисовать всю игру самостоятельно. Я привык к более мультяшному стилю и к жёстким кистям, реализм и стилизацию под «картины маслом» я не тяну.

Так я рисую без нейросетей
Так я рисую без нейросетей

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

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

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

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

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

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

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

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

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

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

При работе с нейросетью возникают не трудности. При работе с ней возникают неудобства.

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

От разработки нужно получать удовольствие, чтобы мозг воспринимал работу над проектом как награду. В противном случае он вас всегда будет пытаться заставить заниматься чем-то другим, а создание игр станет мучительным трудом.

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

В случае же работы с нейросетью я не развиваюсь совсем никак. Формулировка «prompt-artist» это, имхо, чушь, которая как раз должна создать иллюзию того, что ты набираешься навыков и развиваешься как специалист, пока перебираешь различные запросы или вообще по 50 раз повторяешь один и тот же.

Но это нейронная сеть учится и развивается, а не promt-artist.

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

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

Добавить игру в желаемое можно здесь: ​ https://store.steampowered.com/app/2241450/Mechahearts/


Лучшие комментарии

Слава, вот так не ожидал увидеть здесь анонс твоей новой игры!

Так себе работу с нейросетью и представлял.

Все таки отрисовывать картинку real-time с помощью GAN это редкий мазохизм.
А вот 3д модели рисовать они умеют только в духе майнкрафта.

Ну, как я понял, в видео не просто отрисовка картинки. Сама сеть — игровая среда. То есть никакого стандартного графического конвеера тут нет (Ну там просчет процессором вершин полигонов, запросы видеокарте на отрисовку и вот это вот все). Честно, если в каком то из вариантов нашего светлого будущего нечто подобное разовьется и взлетит, я бы глянул :D

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

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

Читай также