Мультик на ЭВМ БЭСМ-4 или Как в 1968 году в СССР начиналась компьютерная анимация

Мы привыкли, что в 21 веке для создания мультфильмов используются современные компьютеры. Красивой трехмерной графикой и тонкими деталями прорисовки никого уже не удивишь. Но когда-то сама идея использования компьютера для мультипликации была фантастической. В 1960-х годах наша страна была мировым лидером по развитию собственной вычислительной техники. Поэтому тогдашние советские программисты и решили первыми использовать свои ЭВМ для творчества. Так в 1968 году появился необычный мультфильм «Кошечка», который создали на универсальной цифровой вычислительной машине БЭСМ-4.

Про черно-белую любительскую «Кошечку» и ее авторов почему-то редко вспоминают сегодня, спустя почти 55 лет. Хотя по тем временам создатели мультика подошли к теме с большим энтузиазмом и можно сказать во-многом опередили своё время. Начнем с того, что сама технология была оригинальной: на отечественном принтере, а вернее на «алфавитно-печатающем устройстве АЦПУ-128», напечатали кадры мультфильма (с ними позже поработал профессиональный художник-мультипликатор, но пока не об этом). Кадры были не рисунками в сегодняшнем понимании, а композициями из символов.
Чтобы из этих самых символов получились кадры близкого к реалистичному простого движения кошки потребовалось создание системы дифференциальных уравнений второго порядка. Уравнения движения и модель четвероногой походки были специально разработаны для данного фильма. Моделирование движения использует аналитическую обратную кинематику, дерево решений, управляющее выбором подходящего в данный момент уравнения и механизм обратной связи, синхронизирующий движение ног. Применив эти методы для анимации, авторы обогнали свое время. Это был первый случай использования таких уравнений движения при создании компьютерной анимации.
Стоит заметить, что 4 годами ранее (в 1964 году!) еще два советских ученых — Юрий Баяковский и Тамара Сушкевич — в Институте прикладной математики имени Келдыша (ИПМ) Российской Академии наук создали первую отечественную анимацию (ролик об обтекании цилиндра плазмой). А в 1971 году в ИПМ выполнили 2 компьютерных анимации (движение робота и модель взаимодействия двух галактик) с использованием собственного программного обеспечения и сняв полученный результат кинокамерой с экрана дисплея. Впрочем, сам Юрий Баяковский в одном из своих интервью вспоминал, что еще во второй половине 1950-х годов в том же Институте прикладной математики на ЭВМ «Стрела» инженеры делали своего рода попытки анимации, «заполняя соответствующим образом память ноликами и единичками»…

Про БЭСМ-4 (НА ФОТО). Эта советская ЭВМ была создана в 1962 году и относилась ко второму поколению советских компьютеров.  Быстродействие по тем временам было хорошим: 20 тысяч операций в секунду. Использовалась оперативная память на ферритных сердечниках емкостью 16384. Для внешней памяти применялись магнитные барабаны. Машина имела 4 входа с телефонных линий связи и 32 входа с телеграфных линий связи.

Но вернемся к «Кошечке». Идеологом проекта был Николай Константинов, известный математик, сделавший немало для популяризации этой науки и ее развития в нашей стране. В работе над мультиком использовали базу ИТЭФ (Института теоретической и экспериментальной физики), ИПУ (Института проблем управления) и Педагогического института имени Ленина. Расчеты проводились на разных экземплярах ЭВМ БЭСМ-4, во время их выполнения возникала проблема несовместимости некоторых машинных кодов, и авторы поправляли их самостоятельно. Вот как описывали в своей статье, вышедшей в 1974 году в специализированном журнале «Проблемы кибернетики», свою работу ученые:

При моделировании механизма полезно иметь возможность получать изображения различных состояний механизма. При этом удобно использовать такой способ задания формы механизма, при котором информация о его положении в данном состоянии и информация о его устройстве были бы разделены. Это требование вполне естественно. В человеческом языке такое разделение имеет место. Скажем, слова «моя кошка» обозначают определенный предмет. При этом ничего не сказано о позе кошки. Можно сказать, что мы стремились к такому способу задания информации о форме предмета, чтобы все, что относится к понятию «кошка вообще», было отделено от информации о положении и позе кошки в данный момент. Практическим признаком того, что информация обладает указанным свойством, является то, что становится просто и удобно задавать машине законы движения механизма. В случае кошки информация о ее походке и траектории, т. е. сценарий ее движения, задается совершенно независимо от информации о форме. Нужно только, чтобы в описании формы присутствовали переменные, о которых говорится в описании движения. Требования, которые мы предъявляем к информационной системе, можно сформулировать так: это должна быть такая система задания информации о предмете, пользуясь которой легко писать программы, которые выдают мультфильм о предмете по самым разнообразным сценариям. Наша работа задумана как пробный шаг в направлении создания программ, моделирующих механизмы, и не преследовала никаких целей, кроме опробования некоторой системы задания формы предмета с точки зрения вышеуказанных требований. Мы задаем программе строение тела кошки и законы ее движения и получаем мультфильм, на котором кошка делает несколько шагов, постепенно замедляясь, поворачивает голову и останавливается. Подбирая уравнения, определяющие походку, мы заботились только о внешнем благополучии, а не о том, чтобы описывать истинные физиологические механизмы управления. Но наша программа может быть полезна и для физиологов. Если мы имеем гипотезу о механизме походки, которую мы можем записать в виде дифференциальных уравнений (как правило, второго порядка) относительно переменных, участвующих в описании позы кошки, то мы можем с помощью нашей программы посмотреть, как эта гипотеза работает. Принятая система задания информации удобна для механизмов, являющихся шарнирными системами, состоящими из твердых частей. С известным приближением такой системой является молекула. Программу, подобную нашей, можно применять для визуализации гипотез о строении и работе молекул при химических реакциях. Интересно провести опыт использования программ, рисующих мультфильм, в качестве вспомогательной техники при создании художественных мультфильмов. Работу над одним монтажным куском длительностью от 10 до 30 сек можно представить себе так. Художник-математик должен записать действующих лиц этого куска в виде нашей или подобной информационной системы, а их движения в пределах этого куска — в виде дифференциальных уравнений. Затем машина печатает бумажную ленту — «папирфильм». После этого художники рисуют по папирфильму мультфильм. Таким образом, по-прежнему зритель увидит руку художника. Смысл же всего этого в том, что моделирование движения сделано машиной — это как раз та часть работы, с которой человек справляется плохо (сошлемся на одного из мультипликаторов; для того чтобы нарисовать танец лягушки, он заснял танец настоящей балерины и, используя этот фильм как модель движения, рисовал по нему фильм о лягушке).
В качестве рисующего устройства использовалась широкая печать — АЦПУ-128. Градация яркости не применялась, и качество изображения сравнительно невысокое. Но большее и не требуется при нашей системе задания формы предметов — рисунки производят неприятное впечатление, если качество передачи формы на бумаге выше, чем качество информации о форме. Когда передача на бумаге приблизительная, воображение зрителя восполняет недостающие детали именно так, как нужно, и впечатление от рисунков получается приличное. Еще лучше выглядит фильм в движении, так как моделирование движения имеет более высокое качество, чем моделирование формы. Зритель получает много «хорошей» информации, и восполнение недостающего облегчается. Интересно, что многие зрители после просмотра фильма не помнили, что изображение было просто теневой проекцией.
Изображения, прежде чем попасть на страницы этого издания, прошли следующие стадии:
1) на папирфильме, выходящем из АЦПУ-128, проекция кошки остается белой, а весь остальной фон выбит некоторой буквой (бралась буква Ш как самая чёрная);
2) кадр фотографируется; на негативе — чёрная кошка и серый фон;
3) серый фон убирается вручную с целью придания этим рисункам более высокого качества как полиграфической продукции.
Работа выполнена на кафедре общих проблем управления механико-математического факультета Московского университета. Отладка программы и ее эксплуатация проводились в Вычислительном центре Московского государственного педагогического института им. В. И. Ленина.
Статья, введение из которой вы сейчас прочитали, целиком доступна на сайте «Математические этюды» (http://www.etudes.ru/ru/etudes/cat/). Там же можно посмотреть и сам мультфильм. Оцифрованная российскими любителями в начале 21 века «Кошечка», к сожалению, несет на себе груз времени: на экране мелькают пленочные артефакты и прочие прелести аналоговой эпохи. Но наверное это и не нужно. Достаточно самого факта создания в нашей стране в 1968 году мультика с использованием своих компьютерных технологий.
p.s. Примененная техника анимации в мультфильме «Кошечка» (представление трёхмерного анимируемого объекта в виде иерархической структуры данных, напоминающей октодерево) за рубежом была «открыта» только в 1980-х годах…
ПОДЕЛИТЬСЯ В СОЦСЕТЯХ: