Основной объем анимации обеспечивала компания Weta Digital в Новой Зеландии, известная своей работой над «Властелином колец» и «Хоббитом». Почти две сотни видеопоследовательностей – в основном это были летательные аппараты в финальном сражении – создала компания Industrial Light & Magic, основанная в 1975 году Джорджем Лукасом для создания спецэффектов для первого фильма саги «Звездные войны». Остальные компании из Великобритании, Канады и США добавляли к изображению важные детали, такие как экраны в аппаратной и информационные табло на забралах шлемов, имитирующие технологии будущего. Большая часть подобных кадров была сделана в редакторе Autodesk Maya. Дизайн моделей летательных аппаратов, в особенности Scorpion, был сделан в программе MODO компании Luxology. Сцены в поселке Хеллс-Гейт и интерьеры создавались в редакторе трехмерной графики Houdini. Инопланетные существа были нарисованы с помощью ZBrush. Первоначальный концепт и текстуры создавались при помощи программы Adobe Photoshop. Всего в работе над фильмом участвовало около десятка компаний и использовалось 22 пакета программ плюс бесчисленные специально написанные плагины.
В настоящее время комплекс инструментов, применяемых для компьютерной анимации, пополняют кое-какой весьма хитроумной математикой. Цель, как всегда, – сделать задачу аниматора как можно более простой, получить реалистичный результат и снизить затраты денег и времени. Мы хотим всё, причем сразу и дешево.
Предположим, например, что у киностудии имеется библиотека анимаций динозавра, содержащих последовательности его движений. В одной он несется вперед, совершая один «цикл бега», то есть один сегмент периодически повторяющегося движения. В другой – подпрыгивает и приземляется. Вам нужно создать последовательность, в которой он гонится за небольшим травоядным животным и прыгает на него. Эффективным началом работы над этой последовательностью будет сшивание десятка-другого циклов бега и добавление в конце прыжка. Конечно, затем придется чуть-чуть все поменять, чтобы зрителю не было видно, что повторяется одна и та же анимация, но для начала это совсем неплохо.
Разумно сшивать и выстраивать последовательности на уровне скелета. Все остальное – набросить сетки, добавить цвет и текстуру – можно сделать позже. Поэтому вы делаете очевидное – соединяете подряд 12 копий цикла бега и прыжок и смотрите, как выглядит результат.
Он выглядит ужасно.
Отдельные кусочки ничего, но друг с другом они гладко не стыкуются. Результат получается дерганым и неубедительным.
До недавнего времени единственным выходом была модификация стыков вручную с интерполяцией новых небольших кусочков движений. Но это было не очень просто. Однако кое-какие недавние новинки в области математических методов обещают облегчить эту задачу. Идея заключается в использовании методов сглаживания для заполнения прорех и выравнивания резких переходов. Главное – найти способы делать это с единичной костью скелета или, в более общем случае, с единичной кривой. Решив такую задачу, можно вновь сшить скелет воедино из отдельных костей.
Область математики, которую сейчас пытаются применить, называется теорией форм. Поэтому начнем с очевидного вопроса: что такое форма?
В обычной геометрии встречается множество стандартных форм: треугольник, квадрат, параллелограмм, окружность. При интерпретации в координатной геометрии эти формы превращаются в уравнения. На плоскости, например, точки (
Стандартные параметрические формулы для окружности имеют тригонометрический характер:
Можно также изменить вид параметра в формуле и все равно получить окружность. Например, если заменить
тоже определяют окружность, причем ту же самую. Такой эффект наблюдается потому, что параметр времени несет больше информации – не только о том, как меняются