Как сделать мультик с помощью ИИ и Claude Code
Как сделать 3D-мультик с нейросетью: Claude Code пишет код на Remotion, а ты режиссируешь. Девять шагов от идеи до ролика и грабли, на которых я терял время.
Мультик, в котором я не нарисовал ни кадра
Мой Clawd, маскот Claude Code, стоит на пасмурном берегу рядом с мультяшным мной и спрашивает: «Ты что, ни разу не довёл проект до прода?» Дальше монолог о том, что на небесах только и говорят что о проде, падение, и Clawd на лету рассыпается на кубики. Над кучей всплывает «Сжимаю контекст…», музыка обрывается в тишину, кубики слетаются обратно: «Привет! Чем могу помочь?»
Это пародия на финал «Достучаться до небес» (прод на языке разработчиков это рабочая версия, которой пользуются люди). Ни одного нарисованного кадра, ни After Effects, ни Blender: главный файл ролика это около 330 строк React, и написал их Claude Code. Я был режиссёром: придумал, утвердил, забраковал лишнее.
К концу гайда у тебя будет свой первый мультик, сделанный с помощью нейросети: два героя из кубиков, диалог живыми голосами, субтитры и готовый mp4 для вертикального видео. Код писать не придётся, но с терминалом подружиться нужно.
Что понадобится
- Claude Code: он пишет весь код.
- Remotion, библиотека, которая делает видео из React. Установка и первый
ролик в отдельном гайде. Для мультиков к
ней добавляется пакет
@remotion/threeс 3D на three.js. - ElevenLabs для голоса: вместе со звуком он отдаёт разметку времени.
Шаг 1. Боль зрителя плюс сцена, которую все узнают
Формула моих роликов: боль, знакомая каждому, кто работает с AI, плюс сцена из фильма, которую все помнят. Агент забыл всё, потому что кончился контекст. Лимиты закончились в разгар работы. Ассистент на любую романтику отвечает дисклеймером.
Сцена должна работать на шутку. В фильме Руди ни разу не видел моря, а на небесах только о нём и говорят. У меня говорят о проде, и тогда «там тебя окрестят вайбкодером» звучит как приговор: стыдно только тому, у кого прода не было. Боль тоже подбирается под панч, финальную шутку. «Привет! Чем могу помочь?» смешно, только если агент всё забыл, поэтому ролик про контекст, а не про лимиты.
«Бойцовский клуб» про мои пет-проекты я выкинул целиком: «очень непонятно, что происходит». Твои проекты зрителю ничего не говорят, говорит его собственная боль.
фраза «боль плюс сцена плюс панч». Например: агент забыл контекст, финал «Достучаться до небес», «Привет! Чем могу помочь?».
Шаг 2. Сценарий и голос
Сценарий это реплики и то, кто их говорит. Для голоса понадобится API
ElevenLabs, а не сайт: только через него вместе со звуком приходит разметка
времени. Удобнее всего озвучка диалога, обе роли одним запросом. Положи ключ в
.env и попроси Claude написать скрипт, который озвучит реплики и сохранит
время каждого слова в JSON.
От этого JSON считается весь ролик: кто когда поворачивается, падает, когда всплывает надпись. Перегенерил голос, и ролик пересобрался сам.
Разметке не верь вслепую: в «Сумерках» одно слово звучит на пять кадров раньше своей метки. Реплики ставь по самому звуку. А цитаты из фильмов говори своим голосом: Instagram сверяет звук с файлами правообладателей и может заглушить ролик. Поэтому «I'll be back» у меня говорит сам Clawd.
звук и JSON, где у каждого слова есть время начала и конца.
Шаг 3. Герои из кубиков
Персонажа не нужно рисовать: попроси Claude собрать его из простых фигур three.js. Мой Clawd собран из кубиков не сразу. Сначала был Clawd со звёздочкой-логотипом, потом «мягкий», потом с толстым контуром и бликами, «кринжово мультяшный». С кубиками всё встало на место, да и рассыпаются они красиво.
В коде персонаж это React-компонент, а костюм это его настройка. Для «Терминатора» Clawd получил очки и красный сбоящий глаз, для «Сумерек» бледность Эдварда Каллена и второй облик, оборотня. Каждая деталь по умолчанию выключена, поэтому старые ролики от новых костюмов не меняются.

стоп-кадр, где каждого героя можно узнать без подписи.
Шаг 4. Место действия на стоп-кадрах
Прежде чем что-то задвигается, утверди сцену на стоп-кадрах: анимировать то, что не нравится, значит выбросить время. В «Достучаться» закат заменили на пасмурное небо, как в фильме, а низкие облака подняли выше, иначе они съедали горизонт.
стоп-кадры места действия, которые нравятся тебе ещё до движения.
Шаг 5. Камера
Самая частая моя правка за серию: «очень близко». Вертикальный кадр узкий, и герой, который кажется на нормальном расстоянии, превращается в стену. В одном ролике я сказал это пять раз, и теперь в навыке Claude записано: по умолчанию полный рост и шире.
Дальше, но не мельче, помогает длинный объектив: камера далеко и смотрит узко, как бинокль. Герой того же размера, а фон сжимается и нависает над ним. Так в «Достучаться» волны заполняют весь кадр.
И ещё два правила: сначала раскадровка табличкой, план, крупность и что происходит, а код потом. И меньше обрывков: 7–10 планов на 25 секунд, мелкие планы по одной фразе смотрятся рвано.
Когда камеру не объяснить словами, её ставят мышью в режиссёрском пульте прямо в Remotion Studio и пишут заметки к кадрам, а Claude правит ролик по ним. Собрать такой пульт с нуля это отдельная работа, а не одна просьба. Мой, тот самый, что на скриншоте, лежит в наборе для подписчиков: агент ставит его одной командой. Финальные камеры «Сумерек» я ставил именно в нём.

раскадровка и стоп-кадр каждого плана, где герои видны в полный рост.
Шаг 6. Движение, которое не выглядит AI-шным
Анимацию от нейросети видно сразу: всё проявляется одинаково, прыгает пружинкой, карточки «дышат». Лечится четырьмя правилами:
- одновременно двигается что-то одно
- текст встал, и кадр замирает хотя бы на полторы секунды
- уход всегда быстрее входа
- пружинка только для живого и смешного, надписи двигаются спокойно
Пятое родилось в «Сумерках»: показывай взаимодействие героев, а не плашку. Номер горячей линии на экране я убрал, сильнее вышло, когда Clawd вскакивает и нависает над героем.
черновик, где в каждый момент двигается что-то одно.
Шаг 7. Звук и тишина
Музыку бери свою, я генерирую её в ElevenLabs Music: чужой трек Instagram может заглушить. Под репликами она на 18–20 децибел тише. В «Достучаться» после «Давай…» музыка выходит в полную силу и на прыжке обрывается в тишину. Эта тишина и есть панч.
каждую реплику хорошо слышно поверх музыки.
Шаг 8. Смотри кадры, а не код
Claude рендерит стоп-кадры главных моментов, а я бракую то, что вижу. Так ловится то, чего в коде не заметишь: руки сквозь тело, трава, которая висит над дюнами.

Всё выясненное записывается: у каждого ролика README, что сработало, что забраковано и почему. Общие уроки Claude переносит в свои навыки, и следующий мультик стартует с опыта всех предыдущих. Навыки, которые выросли из этого журнала за всю серию, я собрал в набор: камера, движение, звук, проверка кадров и порядок работы.
README в папке ролика.
Шаг 9. Рендер и выкладка
Ролик рендерится командой npx remotion render, а детали сдачи Claude держит в
одном скрипте: двойной размер 2160×3840, громкость −14 LUFS и поправка яркости
под телефон, где тёмная сцена иначе проваливается в черноту. Перед публикацией
выключи автосубтитры Instagram, если субтитры вшиты, и поставь свою обложку.
mp4, который ты посмотрел на телефоне.
Если что-то не вышло
| Что видишь | Что проверить |
|---|---|
| Герой в кадре стеной | Камера слишком близко: ставь её дальше и сужай обзор |
| Кадры отличаются от рендера к рендеру | В коде таймеры, CSS-анимации или Math.random(). Движение должно считаться от номера кадра |
| Губы и субтитры не попадают в голос | Реплики стоят по разметке, а не по звуку |
| Кадр затянут белой пеленой | Полупрозрачный слой поверх, чаще всего вспышка, которая висит с первого кадра |
| Персонажа дёргает в конце движения | Движение обрывается, а должно плавно дойти до нуля |
| Ролик похож на слайд-шоу | Всё появилось в начале и замерло. Раскрывай по репликам |
| Instagram заглушил звук | В ролике чужая музыка или звук из фильма |
С чего начать сегодня
Поставь Remotion по нашему гайду, заведи ключ ElevenLabs и подставь в промпт свои две реплики:
Добавь в проект Remotion пакет @remotion/three и сделай 3D-мультик для вертикального видео 1080×1920, 30 fps. Два персонажа из кубиков стоят на берегу и обмениваются репликами. Первый: «[твоя реплика]». Второй: «[ответ]». Озвучь реплики через ElevenLabs API, ключ лежит в .env, и сохрани время каждого слова в JSON. Движения, рот и субтитры привяжи к этим таймингам. Каждого персонажа сделай отдельным React-компонентом со свойствами для позы и рта. Всё движение считай от useCurrentFrame, без таймеров и случайности. Сначала покажи мне стоп-кадры сцены через npx remotion still, анимацию делай только после моего ок. Всё, что я забракую, записывай в README.md рядом с роликом.
Первый мультик почти наверняка выйдет «очень близко», «кринжово» и «непонятно, что происходит». Мои начинались так же.
Первый мультик по этому гайду ты соберёшь сам. А если хочешь, чтобы Claude с первого же ролика работал по правилам, на которые у меня ушла вся серия, забирай мой набор: пять навыков, режиссёрский пульт, скрипт сдачи под Instagram и шаблон журнала. Он для подписчиков лаборатории.
Такие разборы выходят регулярно
Короткие мысли и находки я публикую в телеграм-канале, а глубокие разборы, курсы и сообщество, где растут инженеры, живут здесь, в Lab.
Заведи аккаунт в ITUZOV LAB и сохраняй материалы и прогресс чтения.
Зарегистрироваться