Как сделать мультфильм в Scratch: 5 этапов
Работа над мультфильмом идёт в 5 этапов: сюжет, раскадровка, персонажи и фоны, анимация с диалогами, синхронизация сцен. Пропущенный первый этап — главная причина, по которой мультфильм бросают на середине.
В отличие от игры, мультфильм не ждёт действий зрителя: после нажатия на зелёный флаг история проигрывается сама от начала до конца. Это делает его хорошим первым проектом для тех, кто любит рисовать и сочинять. Здесь меньше условий и переменных, зато много последовательностей, событий и параллельных скриптов, а главное — нужно продумать время: кто говорит первым, когда появляется второй герой, когда меняется фон.
Митчел Резник из MIT Media Lab описывает творческое обучение через проекты, увлечённость, сверстников и игру[1]. Мультфильм в Scratch подходит под эту формулу почти идеально: ребёнок рассказывает свою историю, показывает её друзьям и сразу получает реакцию.
Scratch разрабатывает группа Lifelong Kindergarten в MIT Media Lab, а поддерживает Scratch Foundation; среда бесплатна и работает прямо в браузере. Для мультфильма в Scratch не нужны ни камера, ни программа для монтажа: всё, от рисования героя до озвучки, делается в одном окне. По справке Scratch Foundation, Scratch рассчитан прежде всего на 8–16 лет, и короткая история из трёх сцен по силам уже младшим из этой группы. Не стоит ждать от первой работы идеальной картинки: важнее, чтобы история была доведена до конца.
Сюжет и раскадровка на бумаге
Раскадровка — это таблица или ряд рисунков, где каждый кадр описывает одну сцену: где происходит действие, кто в кадре и что он говорит. Для первого мультфильма хватает 3–6 кадров.
Простая формула сюжета: герой чего-то хочет, ему что-то мешает, он справляется. «Кот хочет рыбу, рыба уплывает, кот строит удочку» — уже готовая история на три сцены. Запишите раскадровку прежде, чем открывать редактор:
| Кадр | Фон | Кто в кадре | Что происходит | Сообщение в конце |
| 1 | Берег реки | Кот, рыба | Кот: «Какая вкусная рыба!» Рыба уплывает | «сцена 2» |
| 2 | Дом | Кот | Кот думает и мастерит удочку | «сцена 3» |
| 3 | Берег реки | Кот, рыба | Кот ловит рыбу, но отпускает её | «конец» |
Последний столбец пригодится при сборке: каждая сцена заканчивается сообщением, которое запускает следующую. Мультфильм в Scratch, у которого есть такая таблица, собирается вдвое быстрее, потому что не приходится придумывать на ходу.
Персонажи, костюмы и фоны
Персонажи мультфильма — это спрайты, декорации — фоны сцены, а движение героя создаётся сменой костюмов. Всё можно взять из библиотеки Scratch или нарисовать во встроенном редакторе.
Для ходьбы нужен спрайт хотя бы с 2 костюмами, где ноги стоят по-разному. Многие спрайты библиотеки уже содержат такие наборы. Фоны добавляют на вкладке «Фоны» у сцены; удобно сразу назвать их по раскадровке: «берег», «дом». Тогда в блоке «переключить фон на» не придётся гадать, что значит «фон3».
(ходьба кота)
повторить (10) раз
следующий костюм
изменить x на (8)
ждать (0.1) секунд
Блок «ждать 0.1 секунд» здесь обязателен: без него десять смен костюма произойдут почти мгновенно, и глаз не заметит движения. Подробнее о костюмах, их центре и рисовании — в уроке про спрайты и костюмы в Scratch.
Диалоги: «говорить» и «думать»
Реплики героев делают блоками «говорить [текст] (2) секунд» и «думать [текст] (2) секунд». Пока облачко на экране, скрипт этого спрайта ждёт, а скрипты других спрайтов продолжают работать.
Отсюда главная трудность диалога. Если кот говорит «Привет!» 2 секунды, а собака должна ответить после него, собаке нужно подождать. Новички ставят ей «ждать 2 секунды»:
(кот) (собака)
когда щёлкнут по зелёному флагу когда щёлкнут по зелёному флагу
говорить [Привет!] (2) секунд ждать (2) секунд
говорить [Как дела?] (2) секунд говорить [Привет, кот!] (2) секунд
Это работает, пока диалог короткий, и только если никто не трогает длительность реплик. Но если позже удлинить реплику кота до 3 секунд, придётся пересчитывать все паузы у собаки, а в длинном мультфильме их десятки. Ошибка в одном числе — и герои говорят одновременно. Решение — сообщения.
Синхронизация через сообщения
Чтобы герои говорили по очереди без подсчёта секунд, один спрайт после своей реплики передаёт сообщение, а другой начинает говорить по блоку «когда я получу». Так мультфильм перестаёт зависеть от точных пауз.
(кот)
когда щёлкнут по зелёному флагу
говорить [Привет!] (2) секунд
передать [собака отвечает] и ждать
говорить [Пойдём гулять?] (2) секунд
(собака)
когда я получу [собака отвечает]
говорить [Привет, кот!] (2) секунд
Блок «передать и ждать» особенно удобен: кот не продолжит, пока собака не закончит весь свой скрипт под «когда я получу». Теперь любую реплику можно удлинять и укорачивать — порядок сохранится. Обычный «передать» без «и ждать» запускает чужой скрипт и сразу идёт дальше, он подходит, когда герои действуют одновременно.
Бреннан и Резник называют события и параллельность базовыми понятиями вычислительного мышления[2], и в мультфильме дети встречают их в чистом виде. Подробно о видах событий — в уроке про события и сообщения в Scratch.
Смена сцен и фонов
Сцену меняют 2 способами: блоком «переключить фон на [дом]» и шапкой «когда фон меняется на [дом]», по которой каждый персонаж сам решает, появиться ему или спрятаться.
(сцена)
когда я получу [сцена 2]
переключить фон на [дом]
(рыба)
когда фон меняется на [дом]
спрятаться
когда фон меняется на [берег]
показаться
Такой подход избавляет от длинного списка «спрятаться» в одном месте: каждый спрайт отвечает за себя. Не забудьте стартовый скрипт: по зелёному флагу сцена ставит первый фон, а герои встают в начальные точки и принимают нужные костюмы. Без этого при повторном просмотре мультфильм начнётся с последнего кадра.
Для плавных переходов пригодятся графические эффекты: «изменить эффект [призрак] на 10» в цикле из 10 повторов растворяет героя, а обратный цикл — проявляет. Плавное движение к точке даёт блок «плыть 1 секунд к x: y:».
Озвучка и титры
Озвучка делает историю живой: реплику можно записать своим голосом на вкладке «Звуки» и запускать её блоком «играть звук до конца» вместе с облачком. Титры в конце — это отдельный спрайт с текстом, который медленно поднимается вверх.
Если озвучка и облачко должны совпадать, ставьте «включить звук» перед «говорить … секунд» — звук начнётся одновременно с появлением текста. Фоновую мелодию держите у сцены и приглушите, чтобы голоса было слышно. Блоки звука и расширение «Музыка» подробно разобраны в статье «звук и музыка в Scratch».
Когда история из блоков не подходит
Такой формат не подходит, если от истории ждут кинематографического качества или если ребёнок не готов к долгой работе. Вот 4 ситуации, где лучше выбрать что-то другое.
- Нужна плавная покадровая анимация 24 кадра в секунду. Блоки дают простую смену костюмов; для рисованной анимации есть специальные программы.
- История длиннее 5 минут. Сотни сообщений и пауз трудно отлаживать — разбейте её на серии.
- Ребёнку 5–7 лет и он не читает. Реплики придётся набирать взрослому; удобнее ScratchJr с записью голоса.
- Цель — освоить условия и переменные за 1–2 занятия. В таком проекте их почти нет, лучше сделать игру или викторину.
Мифы о детской анимации
Миф о том, что анимация — «не программирование», встречается часто. Разберём 2 заблуждения.
Миф: «если в проекте нет игры, ребёнок ничему не учится». Это не подтверждается: синхронизация героев требует событий, параллельных скриптов и точной последовательности — тех же понятий, что лежат в основе любой программы.
Миф: «без умения рисовать ничего не получится». Такого требования не существует: в библиотеке есть сотни готовых персонажей и фонов, а простые фигуры из встроенного редактора выглядят вполне выразительно.
Создатели Scratch (Maloney и соавторы) изначально задумывали среду для работы с медиа — картинками, звуком и анимацией[3]. Истории и мультфильмы — такой же законный жанр, как игры, и многим детям именно они открывают программирование.
Чего делать нельзя
Нельзя строить длинный диалог только на паузах «ждать» — при любой правке реплики все тайминги поедут. Вот остальные правила.
- Нельзя пропускать стартовый скрипт, который возвращает фон, положение и костюмы героев.
- Не стоит менять костюмы в цикле без паузы — анимации не будет видно.
- Не следует называть фоны и сообщения «фон1», «сообщение1»: через неделю будет непонятно, что есть что.
- Не стоит начинать с 10 сцен. Первый проект — 3 кадра, которые доведены до конца.
- Нельзя публиковать в сообществе реплики с настоящими именами одноклассников без их согласия.
Если захочется следующий проект, загляните в подборку «идеи проектов в Scratch»: там есть открытки, истории и игры по уровням.
Источники
[1] Resnick M. Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. Cambridge, MA: MIT Press, 2017.
[2] Brennan K., Resnick M. New frameworks for studying and assessing the development of computational thinking // Proceedings of the 2012 Annual Meeting of the American Educational Research Association. Vancouver, 2012.
[3] Maloney J., Resnick M., Rusk N., Silverman B., Eastmond E. The Scratch Programming Language and Environment // ACM Transactions on Computing Education. 2010. Vol. 10, № 4. Article 16.
Вопросы и ответы
Сколько длится мультфильм в Scratch для начинающих?
Обычно 30–90 секунд. Этого достаточно для истории из трёх сцен, и такой проект реально закончить за 2–3 занятия.
Почему герои говорят одновременно?
Оба скрипта стартуют от зелёного флага и не ждут друг друга. Свяжите реплики сообщениями: «передать и ждать» у одного героя, «когда я получу» у другого.
Как сделать, чтобы мультфильм начинался заново?
Добавьте каждому спрайту стартовый скрипт по зелёному флагу: начальная точка, костюм, «показаться» или «спрятаться». Сцена ставит первый фон.
Можно ли сохранить проект как видео?
Встроенной функции экспорта в видео нет. Проект публикуют в сообществе Scratch или показывают в полноэкранном режиме.
Как добавить титры?
Нарисуйте спрайт с текстом, поставьте его под нижний край сцены и в цикле поднимайте вверх блоком «изменить y на 2» после сообщения «конец».
С какого возраста можно делать такие истории?
В Scratch — с 8 лет, когда ребёнок читает и печатает короткие фразы. Младшим подойдёт ScratchJr: там истории собирают из блоков-картинок.