Привет. Я — Андрей Макар-Уваров, Head of Frontend в Surf. Недавно решил проверить одну гипотезу: насколько далеко можно уехать на ИИ в разработке, если взять задачу, в которой ты абсолютный ноль.
В качестве эксперимента выбрал микро-игру. Идея простая: рыжий кот с фонарём ходит по тёмному лабиринту, находит других животных и передаёт им свет. Можно оставить свет зайчику, чтобы он подсвечивал проход, или забрать его, чтобы усилить свой фонарь. Должен был получиться атмосферный пазл про свет, тьму и управление ограниченным ресурсом.
Что использовал:
- модель — Grok;
- движок — Godot;
- текстуры — через fal.ai.
Сначала всё шло легко: за вечер нагенерировал логику, интерфейс, лабиринт. Казалось, что дальше я просто диктую идеи, а код появляется сам. Но эйфория быстро закончилась, когда увидел, что получилось.
1-й этап: если всё идёт хорошо, значит, что-то идёт не так
Начали всплывать мелкие проблемы. Спрайты превращались в розовые квадраты. Освещение не работало. Камера улетала в бесконечность, а источник света оказывался вне сцены.
Через несколько часов понял: проблема не в модели, а в том, что я не понимаю GDScript. Когда работаешь с незнакомым стеком, почти невозможно отличить баг в коде от галлюцинации нейросети.
В итоге я переписал проект на C#. Godot его поддерживает, а знакомый синтаксис резко снизил уровень хаоса.
2-й этап: кастинг ИИ-моделей
Попробовал несколько моделей: Minimax, Codex, DeepSeek, GLM. У каждой свои особенности:
- GLM мог зависнуть посреди ответа.
- Minimax и Codex воспроизводили одни и те же баги.
- DeepSeek иногда не решал задачу, а морально поддерживал.
Лучше всех показал себя Kimi. С ним удалось легко сгенерировать котика. Но создать его в разных ракурсах и в одном стиле — уже сложнее. Модель просто не понимала консистентности. Плюс fal.ai упорно не рисовал на прозрачном фоне. Пришлось написать Python-скрипт, чтобы вырезать фон и сделать его прозрачным.
В итоге игра заработала: кот с фонарём, собачка — всё светится, выглядит уютно. Базовая версия была готова. Но впереди меня ждал
3-й этап: АНИМАЦИЯ!
Пишу это слово капсом и с восклицательным знаком, потому что именно так я к ней подходил. Я был уверен: если ИИ может вставить Люка Скайуокера в «Властелин колец», то заставить котика махать лапкой — задача на 15 минут. Спойлер: нет.
План А: быстро сделаем спрайты
Мой бэкграунд — веб-фронтенд. До этого я знал об анимации только одно: нужен спрайт-лист. Это картинка, на которой последовательно расположены кадры. Персонаж двигается, если быстро их переключать.
Логика была простая: 5 кадров «кот идёт направо», 5 кадров «налево».
Но здесь важна консистентность. Для большинства моделей пять кадров — это пять независимых вселенных. Да, есть reference image, каскадная генерация и ползунки «похожести». Но в одном из кадров фонарь превращается в банан, у кота появляется шляпа или он становится полосатым, хотя был рыжим.
Я потратил много часов на промпты, маски и инпейнтинг, пытаясь добиться стабильности. Получались интересные изображения, но не рабочая анимация — на третьем кадре кот терял лапу, на четвёртом обретал крылья.
Мои выводы: почему ИИ хорошо рисует объект, но плохо передаёт движение
Я понял: сгенерировать один кадр и серию кадров — задачи разного уровня сложности.
- Когда просишь нарисовать кота с фонарём в определённом стиле — это задача на создание одного образа.
- Когда просишь показать, как он движется, оставаясь тем же самым, — задача усложняется. Нужно удерживать идентичность: движение лап, смену силуэта, пропорции от кадра к кадру.
На практике это намного сложнее, чем генерация одного изображения.
План Б: смотрим видюшки на YouTube
После неудач решил выяснить, как вообще делают анимацию для инди-игр с ИИ в 2024–2026 годах.
Варианта два:
- Видео → спрайты: сгенерировать 1–2 секунды видео, потом вытащить кадры.
- Blender: собрать 3D-модель, сделать риг, анимировать, рендерить в 2D.
Blender мне не знаком, поэтому выбрал первый путь. И получил первый хороший результат: видео-модели Runway, Pika и аналоги дают консистентность. Котик шагает плавно, фонарь не скачет, персонаж узнаваем. На фоне прошлых попыток — прорыв.
Но возникла другая проблема: у них нет LoRA — возможности задавать стиль. Без этого модель выдаёт 3D-видео в стиле китайских маньхуа — слишком глянцевое и пластиковое.
Мои акварельные котики превратились в пластилиновых смурфиков. Попытки настроить стиль через negative prompts и сиды — бесполезны.
План В: скелетная анимация
Решил попробовать встроенную в Godot 2D skeletal animation:
- Берём статичную картинку.
- Разрезаем персонажа на части: голова, тело, лапы, хвост.
- Собираем скелет.
- Двигаем костями — получаем анимацию.
Главный плюс — визуальная консистентность. Персонаж остаётся тем же, стиль не меняется, нет случайных деталей. Для игры — сильный вариант.
Но и здесь есть нюанс. Нужно вручную разрезать спрайт, расставить pivot points, связать костями, настроить инверсную кинематику.
Это уже не задача про код. Это — про ручную работу и базовое понимание анимации.
Я открыл редактор Godot, посмотрел на ноды, mesh’и, кости, веса — и понял, что снова ничего не понимаю. Почему при движении одной части деформируется другая? Как настроить скелет? Как добиться естественного движения?
Что в итоге получилось
Остались статичные спрайты: рыжий кот с фонарём, белый зайчик, пес с умными глазами. Они милые, рисованные, с акварельной текстурой. Но не двигаются. Скользят по лабиринту, как фигурки на доске, а не бродят.
Итог: игра работает. Механика передачи света понятна и без анимации. Атмосфера держится на освещении, темноте, звуке и ощущении пространства. Отсутствие анимации не сломало продукт — просто не позволило его полировать.
Что важно для разработчиков и лидов
Сформулировал основные выводы:
- ИИ хорошо ускоряет то, что можно описать словами. Пока задача укладывается в понятную текстовую постановку и не требует глубокого ручного навыка, ускорение заметное.
- ИИ плохо заменяет навык там, где нужны насмотренность и ручная работа. Анимация — это не просто кадры, а ремесло. То же касается визуального полиша, motion design, иллюстрации, 3D.
- Незнакомый стек сильно повышает цену ошибки. Когда знаешь платформу, ИИ ускоряет работу. Когда не знаешь ни движок, ни язык, ни пайплайн — часть времени уходит на выяснение, кто ошибся: ты или модель. В команде лучше сочетать ИИ с областью, где уже есть экспертиза.
Что буду делать дальше
На следующий заход у меня три варианта:
- взять Blender и разобраться глубже;
- отдать анимацию специалисту;
- оставить всё как есть и признать, что статичные персонажи — тоже рабочий стиль.
Сейчас склоняюсь к третьему. Даже без анимации игра работает, а персонажи выглядят так, как и задумывались.