16.05.13

История развития анимации. Обзор основных методов компьютерной анимации.


Мареіал взятий з 
http://cgm.computergraphics.ru/issues/issue19/animhist 
ви зможета  скачати статтю в PDF
Авторы: 
 Виталий Синявский

История развития

Анимировать дословно обозначает «давать жизнь»; анимирование – передвижение чего-нибудь (или впечатление того, что что-либо двигается), что не может двигаться само по себе [1, с.16].

Первые попытки запечатлеть движение в рисунках относят к палеолитическим пещерным рисункам, где животных изображали с множеством ног, перекрывающих друг друга (рисунок 1). В Шахр-и Сохта (Иран) был найден глиняный сосуд, возраст которого оценивается в 5000 лет. На стенках сосуда сделано 5 изображений козла в движении (рисунок 3). Также были найдены рисунки (как, например, на рисунке 2, изображающие борьбу двух людей), в Египте (относят к 2000 году до н.э.). Были заявления о том, что эти рисунки необходимо назвать первыми примерами анимации, однако, это не совсем корректно, так как не было оборудования, способного показать эти рисунки в движении.
Описание: boar
Рисунок 1
Описание: wrestlers
Рисунок 2
Описание: 500px-Vase_animation
Рисунок 3
Первые упоминания о таких устройствах относят ко второму веку нашей эры – в Китае изобрели зоетроп (около 180 г. н.э., изобретатель – Дин Хуань). Современный вариант зоетропа изображен на рисунке 4. В 18 веке были изобретены и стали первыми популярными устройствами для проигрывания анимации фенакистископ, праксиноскоп и кинеограф (рисунки 5, 6, 7). Фенакистоскоп использует набор вращающихся щелей, чтобы показать наблюдателю последовательнгость изображений посредством помещения двух дисков, вращающихся вместе, на одну ось; на одном диске имеются щели, на другом – изображения. Наблюдатель смотрит вдоль оси вращения, так что щели проходят перед его глазами, и может видеть последовательность изображений с другого диска. Праксиноскоп использует набор вращающихся зеркал внутри большого цилиндра с изображениями, смотрящими в сторону зеркал. Расположены зеркала таким образом, что показывают изображения наблюдателю.
Описание: 600px-Phenakistoscope_3g07690uОписание: Reynaud_praxinoscopeОписание: 446px-Linnet_kineograph_1886Описание: Zoetrope   
Рисунок 4 – слева направо: современный вариант зоетропа,кинеограф,праксиноскоп, фенакистоскоп
Бурное развитие анимации началось в начале 20 века. Сразу несколько человек примерно в одно время и независимо друг от друга начали работу над созданием анимационных фильмов. Джордж Мелис случайно изобрел технику съемки, называемую «остановка-движение». Суть этой техники заключалась в следующем: Мелис снимал кадр, затем менял что-то в снимаемой сцене, затем снимал следующий кадр и так далее. После чего, быстро сменяя эти кадры, добивался анимационного эффекта. Американец Стюарт Блэктон анимировал дым в сцене в 1900 году. Винсер Мак Кей, вероятно, создал первый анимационный мультфильм в 1906 году. Уолт Дисней был первым, кто использовал звук в анимации. Дисней также был одним из пионером в использовании цвета в анимации. Одним из наиболее существенных нововведений студии Диснея было изобретение многоплоскостной камеры, позволявшей получать эффекты параллакса, вытянутых форм фигур, глубины и нечеткости. Его студией создано множество анимаций, персонажи которых известны по сей день (Микки Маус, Плутто, Гуффи и т.д.). Коммерческий успех первых аниматоров широкого показа создал почву для появления новых анимационных студий. К 1930 году уже функционировало множество таких студий, среди которых – функционирующие по сей день Universal Pictures , Paramount , Warner Brothers и другие.
Наиболее ранние компьютерные анимации конца 60- начала 70-х годов были получены совместными усилиями исследователей в университетских лабораториях и отдельных художников. Первые исследования в области компьютерной графики и анимации проводились в 1963 году в MIT (Массачусетском технологическом институте), когда Иван Сазерленд разработал диалоговую систему решения задач с ограничениями на векторном дисплее.
Первые работы по компьютерной анимации в СССР связаны с именем Юрия Баяковского. В 1964 году Юрий Матвеевич выполнил первую в СССР работу моделированию обтекания цилиндра плазмой (рисунок 5) в соавторстве с физиком Тамарой Сушкевич.
Описание: cylinder_plasma
Рисунок 5 – визуализация модели процесса обтекания цилиндра плазмой
В начале 70-х несколько значительных работ по анимации были произведены в штате Юта: анимированная рука и лицо, созданные Эддом Кэтмулом (1972), идущая и говорящая фигура, сделанная Берри Веслером в 1973, говорящее лицо, созданное Фредом Парком в 1974. По нынешним меркам качество изображения анимации было примитивным, однако для той поры это были впечатляющие результаты.
В конце 70х Нью-Йоркский технологический институт начал работу над проектом создания фильма «The works», полностью созданным с помощью компьютера с использованием трехмерной компьютерной анимации. Проект не был закончен, но отдельные фрагменты показывались на конференциях SIGGRAPH . Эти фрагменты демонстрировали высокое качество визуализации, сочлененные фигуры и взаимодействующие объекты. При создании « The works » использовалась система BBOP – трехмерная система анимации сочлененных фигур [2].
В начале 80х годов вклад в развитие анимации внесла лаборатория Даниэля Толман и Нади Магнинат-Толман (компьютерные анимации «Dream Flight», «Tony de Peltrie», «Rendez - vous a Montrual»). Среди других, внесших вклад в этот период были Эд Эмшвиллер, который показал двигающиеся текстурные карты в Sunstone ; Джим Блинн, который создал анимацию «Voyager»; Дон Гринберг, создавший архитектурные обходы университетского городка Корнельского университета и другие.
К 1980-м годам заметно продвинулось аппаратное обеспечение. В это же время графические программы становились все более сложными: Тернер Виттед ввел понятие трассировки лучей с устранением погрешностей дискретизации; Нельсон Макс создал несколько фильмов о молекулах и один из первых фильмов с анимированными волнами; Лорен Карпентер создал полет вокруг фрактального ландшафта и т.д. Фильм «Young Sherlock Holmes» (1986) был первым, который поместил искусственный персонаж в художественный фильм. Начинают выходить фильмы, в которых все чаще используются компьютерные спецэффекты: имитация торнадо системой частиц, превращения в вампиров, летающие персонажи, персонажи без ног и т.д. 1993 год – выход «Jurassic Park» с анимированными моделями динозавров, 1995 год – выход «Jumanji» с моделями как реальных, так и выдуманных животных.
Очень важным направлением в компьютерной анимации является создание искусственного человека, неотличимого от настоящего. Пионеры – фильмы «Tony de Peltrie» (1985), «Rendez-vous a Montrual» (1988) и другие. В этих фильмах качество анимации человека было таким, что для кинозрителей было очевидно, что персонаж нереален, и в этих фильмах компьютерные актеры играли второстепенные роли. Последние же достижения в моделях освещения и текстурирования позволяют много более реалистично моделировать человека.

Базовые методы в анимации

Методы компьютерной анимации разделяют на методы, основанные на процедурной анимации, и методы, основанные на использовании ключевых кадров [20].

Процедурная анимация

В этом виде анимации движение алгоритмически описывается списком преобразований (переносов, поворотов и т.д.). Каждое преобразование определяется параметрами (такими как угол поворота). Эти параметры могут изменяться в процессе анимации согласно законам физики.
Типичный пример анимационной последовательности (взято в [20]):
Create CLOCK(…);
For FRAME:=1 to NB_FRAMES
TIME:= TIME + 1/24;
ANGLE:= A * SIN(OMEGA*TIME + PHI);
MODIFY(CLOCK,ANGLE);
draw CLOCK;
record CLOCK;
erase CLOCK;

Анимация, основанная на использовании ключевых кадров

Задание анимации объектов во многих ранних компьютерных анимационных системах было основано на задании значений переменных, связанных с этими объектами, на некоторых кадрах (называемых ключевыми), и автоматизированном расчете значений этих переменных в остальных кадрах. Вышеупомянутые переменные могут отражать в себе координаты положения или углы ориентации объекта, степень прозрачности грани объекта и т.д. Эти переменные в литературе часто называют сочлененными переменными (articulation variables – avars [3]).

Интерполяция

В кадрах, которые не являются ключевыми, значения интересующих параметров получают, интерполируя значения в ключевых кадрах. При этом, основываясь на особенностях конкретной решаемой задачи, рассматривают следующие моменты [1, с.83–87]:
  1. Выбирают между интерполяцией и аппроксимацией. Если задано множество точек, описывающих кривую, важно вначале определить, представляют ли заданные в ключевых кадрах значения точки, через которые кривая должна пройти, или они используются для управления формой кривой и не являются точными значениями. В первом случае часто используют сплайны Эрмита и сплайны Кэтмула-Рома. Во втором – кривые Безье и Б-сплайны.
  2. Рисунок 6 – интерполяция (слева) и аппроксимация (справа)
  3. Сложность. Напрямую зависит от выбранного интерполирующего уравнения – чем оно проще, тем быстрее вычислить значение интерполирующей функции, заданной этим уравнением.
  4. Непрерывность. Выбор интерполирующего или уравнения в зависимости от необходимой гладкости кривой.
  5. Глобальное или локальное управление. Определение метода интерполирования в зависимости от нужд пользователя при редактировании значений кривой в ключевых кадрах – необходимо ли, чтобы при изменении значения в какой-либо ключевом кадре менялась вся кривая, либо только ее ограниченная область.

Управление скоростью

Построение кривой, связанной со значениями параметром в ключевых кадрах, является только первым шагом в анимации. Скорость, с которой происходит движение вдоль кривой, зачастую должна быть под контролем аниматора. Прежде всего, он должен иметь возможность двигаться вдоль кривой значений параметров с постоянным шагом, после чего он может легко ускорить или замедлить движение. Для движения с постоянным шагом требуется установить связь между расстоянием вдоль кривой и значением параметра. Эту связь называют параметризацией длиной дуги пространственной кривой. Для ее определения используют методы численного интегрирования [1, с.91-102]. После параметризации пространственной кривой становится возможным управлять скоростью, с которой происходит движение по кривой. Движение по кривой с постоянной длиной дуги приводит к движению с постоянной скоростью. Возможности ускорения/замедления могут быть получены при помощи функций управления скоростью, которые сопоставляют равноотстоящим значениям параметра (т.е. времени) такие длины дуг, что получается желаемое движение по кривой. Наиболее распространенным примером такого управления скоростью является движение с плавным входом/плавным выходом. При таком способе управления скоростью происходит плавное движение при ускорении объекта из состояния с нулевой скоростью до некоторой, плавное достижение максимальной скорости и плавное торможение. Для этого функцию скорости часто выбирают синусоидой.

Движение вдоль кривой.

Различные сложности могут возникнуть при движении (изменении интересующего параметра) по выбранной кривой с определенной скоростью. Если, к примеру, этим параметром является положение трехмерного объекта, а параметрической кривой – траектория его движения, то необходимо принять во внимание также и ориентацию объекта. Если объект или камера движутся вдоль кривой, то их ориентацию можно сделать непосредственно зависимой от кривой. Для этого используют рамку Френе. Рамку Френе определяют как движущуюся правостороннюю координатную систему, задаваемую тремя нормализованными векторами TNB, где – вектор, обладающий направлением касательной к кривой, B ортогонален к T и имеет направление второй производной кривой, N является векторным произведением T и [4].
Описание: frenet_frame
Рисунок 7 – рамка Френе
При движении камеры по кривой для определения ее ориентации обычно опираются на задание точки, в которую камера смотрит (центр интереса камеры).
Если один объект движется по поверхности другого объекта, то ориентацию первого можно рассчитывать исходя из нормали к поверхности второго в точке, где находится первый объект.

Преобразование кривой в кривую

Параметрами, заданными в ключевых кадрах, также могут быть кривые. К примеру, в одном ключевом кадре задана окружность, в следующем – граница квадрата. Задача состоит в определении промежуточных кадров (т.е. в определении кривых, составляющих анимацию перехода от окружности к квадрату). В общем случае решение задачи зависит напрямую от способа задания кривых. В простом случае, если известно поточечное соответствие между кривыми в ключевых кадрах, то решение данной задачи сводится к интерполяции между соответствующими точками кривых во времени.
Рисунок 8 – преобразование окружности в границу квадрата
В другом случае, если кривые заданы коэффициентами параметрических функций, то промежуточные кривые получают посредством интерполяции параметров этих функций.

Интерполяция между трехмерными объектами

Общего решения пока не существует. Однако для частных случаев есть решения. Методы этих решений делят на две категории[5]:
  • основанные на работе с поверхностями (surface based). Используют граничное представление объектов и изменяют один из них или оба, чтобы их реберно-вершинные топологии совпадали. После этого вершины объектов интерполируют между собой. Имеются ограничения на типы объектов, с которыми они могут работать, особенно на объекты со сквозными дырками через них.
  • основанные на работа с объемами (volume based). Рассматривают объемы, заключенные внутри объектов, и приводят один объем к другому. Эти методы имеют преимущество в том, что они менее чувствительны к различным топологиям объектов. Вычислительно более затратные, чем методы, основанные на работе с поверхностями.

Деформация 2D и 3D объектов

Объекты с одинаковой структурой ребер могут быть интерполированы между ключевыми кадрами по вершинам этих ребер для плавного перехода от одной формы объекта к другой.
Стоит сказать несколько слов о возможностях и методах, которые предоставляют средства анимации для деформации двумерных и трехмерных объектов, чтобы задавать их в ключевых кадрах.
  1. Искажение объекта. Аниматор может двигать за какие-то вершины на объекте, при этом изменяются либо только смежные с этой вершиной точки, либо более широкая область.
  2. Рисунок 9 – преобразование окружности в границу квадрата
  3. Деформация координатной сетки. Метод приписывается Сэдербергу [6]. Выбирается локальная система координат, связанная с объектом. Эта локальная координатная система каким-либо образом искажается пользователем, и локальные координаты вершин отображаются в глобальной системе координат.
Рисунок 10 – деформация координатной сетки

Методы, связанные со структурными моделями объекта

Часто более важной задачей для аниматора является создать общее качество движения, нежели точно управлять положением и ориентацией каждого объекта в каждом кадре. Это имеет место в случае физического моделирования; при работе с большим количеством объектов; при анимировании объектов, движение которых ограничено тем или иным образом; при работе с фоновыми объектами, точное движение которых не является важным для анимации. В таких случаях выявляют структуру работы анимируемого объекта, и на ее основе строят структурную модель. Разделяют кинематические идинамические структурные модели. Кинематическое управление относится к движению объектов без рассмотрения сил, вовлеченных в получение движения. Динамическое управление связано с вычислением сил, используемых для получения движения.

Кинематические модели

Одним из простых примеров является модель, описывающая положение и ориентацию камеры. В анимации часто необходимо задавать параметры камеры таким образом, чтобы захватить разговор, отследить действие и т.д. При использовании высокоуровневых алгоритмов для управления движением объектов аниматор может быть не в состоянии предвидеть точное положение объектов в сцене во время анимационной последовательности. Вследствие этого аниматор не может точно знать, как расположить и ориентировать камеру так, чтобы захватить важное действие. В подобных случаях стандартным решением является расположение камеры и/или центра ее взгляда относительно положений одного или нескольких объектов в анимации. К примеру, центр ее взгляда может быть всегда направлен в центр масс объектов, составляющих анимацию, а положение быть таким, чтобы захватывать все объекты анимации.
Анимация объектов, состоящих из нескольких соединенных жестких частей, описывается обычно с помощью иерархических кинематических моделей. Соединения различают по количеству степеней свободы (от одной до трех). Строится древовидная модель объекта, состоящая из вершин и дуг, отвечающих соединениям и жестким частям объекта соответственно. Дерево строят таким образом, что изменение соединения, соответствующего какой-либо вершине дерева, влечет за собой изменение частей объекта и соединений между ними, соответствующих поддереву измененной вершины.
Если необходимо промоделировать изменение одного из соединений, применяют преобразование к соответствующему поддереву, последовательно обходя его вершины «в глубину» (этот процесс называют прямой кинематикой). [1, с. 203]
Бывают и обратные задачи, когда задано начальное и конечное положение одной из дуг, входящих в лист структурного дерева, и необходимо вычислить углы в соединениях, необходимые для данной конфигурации. Например, структурная модель – каркас человеческого скелета; дуга, входящая в лист – кисть руки; начальное положение - кисть находится выше уровня головы; конечное положение – кисть находится ниже уровня головы; необходимо определить, каким образом нужно развернуть плечевой и локтевой сустав, чтобы из начального положения перейти в конечное положение. Такие задачи как могут не иметь решений вовсе, так и иметь одно или несколько решений. Процесс их решения называют обратной кинематикой [1, с.210]. Для достаточно простых соединений углы можно определить аналитически. Для более сложных механизмов, которых большинство, применяют итеративные численные методы [1, с.211-221].

Динамические модели

Кинематические модели часто не годятся для передачи реалистичного движения объектов, так как не имеют в своей основе физических законов. Динамические модели, напротив, ставят в основу реалистичную передачу реакции твердых тел на воздействие физических сил, таких как сила тяжести, вязкость, трение, силы, возникающие при столкновениях. Силы могут возникать из-за положения объектов относительно друг друга (например, силы тяжести, трения, при столкновении), или абсолютного положения объектов в задаваемых пользователем условиях (например, пользователь указал, что на объект воздействует такая-то сила извне). При воздействии на объекты силы порождают линейные и угловые ускорения, зависящие от массы объекта (линейное) и от распределения массы внутри объекта (угловое). Эти ускорения изменяют скорости объектов (линейные и угловые). Скорости изменяют положения и ориентации объектов. Новые положения и ориентации объектов приводят к новым силам, и процесс повторяется до следующего шага по времени. На основе этого алгоритма работает большинство имитаторов воздействия физических сил на объекты.
Важной задачей, связанной с динамическими моделями, является определение наступления столкновения тел и их реакции на это столкновение. Проверка на столкновение может происходить в конкретный момент времени либо на протяжении конечного интервала времени. Эти вычисления могут быть достаточно сложными при работе со сложной геометрией. Реакцию на столкновение моделируют, основываясь на физических законах столкновения твердых тел. Есть два подхода к моделированию реакции на столкновение. Первый заключается в продолжении движения проникающего объекта в другой насколько это получится, при этом накладывая в момент проникновения соответствующие силы, возникающие при столкновении, на элементы столкновения (штрафной метод). Зачастую, при использовании такого метода проникновение может быть замечено визуально. Второй подход заключается в отходе к предыдущему моменту времени перед столкновением и придаче соответствующих сил столкновения в тот момент.

Моделирование природных явлений

Среди объектов, наиболее сложных для моделирования и анимации на компьютере есть такие, которые не определяются устойчивыми статическими структурами с простой топологией.

Моделирование газообразных явлений

Существует три подхода к моделированию газа: метод, использующий решетки, метод частиц и комбинированный метод.
В методе, использующем решетки, пространство разбивают на отдельные ячейки, и рассчитывается перемещение газа внутрь и из каждой ячейки (перемещение плотностей).
Рисунок 11 – схематичное распределение плотностей и скоростей газа в ячейках решетки.
Чем сильнее сила штриховки, тем плотнее газ в данной ячейке решетки.
Чем длиннее стрелка, тем больше скорость газа в данной ячейке решетки
Плотность газа в каждой ячейке используется для определения видимости и освещенности газа в процессе расчета изображения. Поток в ячейку рассчитывается перераспределением плотностей из соседних ячеек. Внешние силы (ветер, препятствия) используются для перерасчета ускорений частиц внутри ячейки. Основной недостаток – статическая решетка, которая не позволяет при больших ячейках передавать изменения плотности газа в небольших участках, а при малых ячейках вычислительно сложно рассчитывать все изменения плотностей. Для устранения этого недостатка применяют динамическое разбиение пространства (которое, правда, увеличивает сложность алгоритма). Визуализация газа основана на проектировании плотностей газа в ячейках сетки на плоскость изображения.
В методе частиц отслеживается перемещение в пространстве частиц или шариков газа. Недостаток – нужно очень много мелких частиц для моделирования плотного газа. Преимущество – к частицам применимы физические законы для твердых тел, поэтому легко описать их движение. Визуализируются все частицы отдельно.
Рисунок 12 – схематичное представление системы частиц с различными направлениями и скоростями, соответствующими длинам стрелок
Комбинированный метод совмещает вышеупомянутые методы решеток и частиц. В таких методах отслеживается перемещение частиц в пространственной сетке. На основе количества частиц в ячейке делается вывод о ее плотности, и визуализация аналогично визуализации в методе, использующем решетки.
Физически более точные методы основываются на уравнениях Навье-Стокса [7].

Огонь

Огонь является особенно сложным и вычислительно емким для моделирования процессом. Существует несколько подходов к моделированию огня.
Один из них – использование систем частиц. Частицы взрывообразно, в различных случайных направлениях выпускают из «очага» пламени.
Другой подход – использование двумерных анимированных текстурных карт, ориентированных к наблюдателю и изменяющихся во времени.
Были попытки и физически корректного моделирования огня. Стем и Фьюм представили адвективно-диффузные уравнения для расчета плотностного и температурного полей [8]. Пользователь при этом может управлять моделью, определяя ветровое поле.

Моделирование воды

Воду моделируют в зависимости от применения по-разному.
Можно моделировать воду как неподвижную, выглядящую твердой поверхность, к которой рябь добавляется с помощью возмущения нормалей к поверхности, как при отображении шероховатости поверхности. Такого способа обычно достаточно для моделирования спокойных озер и луж со стоячей водой. Для возмущения нормали используется одна или более синусоидальных функций, чтобы изменить направление вектора нормали к поверхности. Примером такой функции является следующая [1, с.302] :
где h – высота волны, s – расстояние от источника возмущения волны, L – длина волны, t – время, T – период волны (время, необходимое волне, чтобы пройти через заданную точку), A – амплитуда волны. По высоте волны в конкретной точке и высотам в окружающих точках рассчитывают нормаль в этой точке. Можно использовать сетку для моделирования поверхности воды, и привязать высоты точек этой сетки к уравнению, записанному выше.
Для моделирования более реалистичных волн используют более сложные модели, учитывающие больше физических эффектов. При моделировании океанских волн, например, вводят зависимость высоты волны от глубины воды в данной точке; волновую функцию представляют как сумму волн различной формы с различными амплитудами [9].
Брызги и пена, образующиеся при разрушении волн и на волнах, сталкивающихся с препятствиями, можно имитировать с использованием вероятностной управляемой системы частиц.

Рисунок 13 – карта высот океанских волн
В большом количестве ситуаций необходимо еще моделировать перемещение воды из одного положения в другое (при моделировании океанских волн этого обычно не требуется). Например, необходимо промоделировать сбегающий поток воды с возвышенности. Для моделирования течения используют упрощенные уравнения Навье-Стокса [7].

Моделирование растений

Растения обладают ветвистой рекурсивной структурой с неограниченной сложностью. Топология растений описывается ветвистой рекурсивной структурой. Существует несколько методов моделирования изменения структуры растения по мере роста – это использование систем частиц, фракталов и L -систем [10]. L -системы представляют собой систему правил вывода, к примеру   . Правило вывода применяется к строке, если его левая часть содержится в этой строке. Символы системы интерпретируют в терминах структурных элементов растения, а применение правила интерпретируется как изменение структуры (рост). Для введения недетерминированности роста вводят так называемые вероятностные L -системы : правил вывода для одной и той же левой части может быть несколько, и выбор между ними осуществляется на основе распределения вероятности. Например, для системы правил   , где означает порождение ветви растения в левую сторону, B – в правую, и, к примеру, можно задать равные вероятности на первое и второе правило.
Помимо структурной составляющей по мере роста учитывают удлинение соответствующих элементов растения. Это обычно делается путем внесения параметров в модель, отвечающую за рост структуры растения. В случае L -системы имеем параметрические L -системы .
Рисунок 14 – схематичная модель дерева, построенная
Кроме того, уделяют внимание и взаимодействию растущего растения с окружающим его пространством. Различные физические препятствия (как части самого растения, так и другие объекты пространства), различные глобальные факторы, такие как гравитация, ветер, количество света могут влиять на рост растения. Учет данных влияний опять таки приходится на добавление параметров к модели, отвечающей за рост структуры растения.

Анимация модели человека

Моделирование и анимация человека – очень сложная задача по нескольким причинам. Люди в вопросах анимации людей являются первыми критиками - человек легко различит кажущиеся ненастоящими движения анимированной модели. Помимо этого, форма человеческого тела очень сложна (содержит более двухсот костей и более шестисот мускулов). Кроме того, части тела могут деформироваться, а это еще более усложняет задачу анимации. К тому же человекоподобное движение вычислительно плохо описываемо.

Руки

Задача анимации моделей человеческих рук является одной из самых распространенных в области анимации человеческой модели. Базовая модель человеческой руки может быть представлена манипулятором с семью степенями свободы (рисунок 7). Поза руки – набор из семи углов в соединениях, по одному на каждую степень свободы. Базовая модель должна учитывать и ограничения на соединения в человеческой руке. Например, локтевой сустав может сгибаться приблизительно до 20 градусов и разгибаться приблизительно до 160 градусов.
Рисунок 15 – базовая модель руки человека
Некоторые движения руки можно успешно моделировать вышеописанной прямой кинематикой. Обратная кинематика позволяет решать задачи, связанные с поиском поворотов руки для достижения необходимого положения и ориентации кисти. Однако в связи с ограничениями на повороты решения, полученные применением обратной кинематики, могут выглядеть неестественно. Анатомическая основа получения человекоподобных положений тела отсутствует [1, стр. 335]. Существуют работы, посвященные моделированию отдельных суставов руки, такие как диссертационная работа Шиперса о моделировании плечевого сустава [11], и работа Риджпкема и Жирар по моделированию хватания кистью [12].

Ноги

Другой задачей, относящейся к анимации модели человека, является моделирование ходьбы или бега. Строят структурную модель ног человека, сохраняющую основную информацию о суставах, участвующих в движении, и описывают цикл движения (ходьбы или бега) в терминах структурных элементов модели ног. После этого прямой кинематикой описывают различные походки, согласно указанному циклу и структурной модели ног. Иногда, как отмечают Жирар и Масижевски [13], для создания физически более правильного движения для отображения описанных действий и ограничений можно использовать динамическое моделирование (моделирование, основанное на законах физики). Они отмечают, что динамику можно применять в разумных пределах, пока она будет помогать аниматору, а не окажется препятствием, с которым аниматору придется бороться. Существует несколько способов упрощения. Один из них - некоторые динамические свойства игнорируются, например, воздействие машущей ноги на равновесие. Другой – относительно небольшие изменения игнорируются, и сила считается постоянной на некотором временном интервале. Третий – сложная структура, вроде ноги с семью степенями свободы, заменяется упрощенной структурой, например, ноги с одной степенью свободы.

Лицо

Реалистичная анимация лица – одна из самых трудных задач компьютерной анимации. Лицо является сложной изменяющейся формой, у которой имеются четко выделяемые связанные части. Хорошая модель лица должна быть способна обеспечить геометрическое представление конкретного человека (эту способность называют статичностью [14]).
Если требуется создать анимацию мультипликационного типа, то для анимации лица зачастую хватает простой геометрической формы (например, сферы), на которую накладывают анимированные текстуры.
Для более реалистичной анимации лица используются сложные геометрические модели, которые намного более приближены к геометрическим свойствам человеческих лиц.
Модель можно рассматривать с точки зрения ее статических или динамических свойств. Статические свойства связаны с геометрией лица в неподвижной форме, динамические – с деформацией геометрии модели лица при выполнении анимации. Для представления геометрии используют три основных метода:
  • Полигональные модели. Плюсы данных моделей в том, что их легко создавать и деформировать, но гладкость поверхности напрямую зависит от сложности полигональной модели. Используются наиболее часто ввиду их простоты [15].
  • Сплайновые модели. Обычно используют кривые Безье или В-сплайны. Достигается визуально приемлемая гладкость модели, однако очень сложно сохранять низкую сложность данных при моделировании маленьких элементов и заостренных локальных черт лица.
  • Поверхности подразбиения [16]. Используют полигональную управляющую сетку, которая уточняется, в пределе стремясь к описываемой поверхности. Преимущество использования данного метода в том, что есть возможность создания локальных усложнений модели без глобального усложнения. Однако интерполяция заданного набора данных поверхностями подразбиения является сложной задачей, поэтому этот метод практически неприменим для моделирования конкретного лица.
Создание моделей лица ведется либо вручную в специальных средах по трехмерному редактированию геометрии (либо с нуля, либо, что делается чаще, изменением стандартных моделей), либо используются методы построения трехмерных моделей лица по фотографиям [17].
Наиболее часто в основе анимации лица лежит использование параметризованной модели лица. Пример одной из таких моделей создан Парке [15]. Параметры его модели разделяются на конформационные (служат отличительными признаками данных головы и лица) и выразительные (связаны с анимацией лица). В модели Парке 22 конформационных параметра, предполагается, что лицо симметрично. Имеются следующие выразительные параметры:
  • Пять параметров управляют формой лба, скул, щек, подбородка и шеи.
  • Тринадцать параметров описывают размеры и расстояния между элементами лица (размеры головы; расстояние от подбородка до рта; расстояние от подбородка до глаза; расстояние от глаза до лба; размеры глаза; ширина челюсти, щек, переносы и ноздрей).
  • Пять параметров описывают смещение элементов лица (подбородка, кончика носа, бровей).
Рисунок 16 – изменение параметров лицевой модели для достижения нужного выражения лица
Простейшим подходом к анимации лица является определение ключевых положений лица. Для получения анимации выбирается два ключевых положения (заданные параметрами), после чего между ними происходит интерполяция. Обобщением этого подхода является использование взвешенной суммы двух или более ключевых положений – так добиваются получения положений лица, отличающихся от ключевых.
Психологи Экман и Фризен провели исследование [18], в результате которого выявили 46 базовых движений лица, из которых могут быть получены все выражения лица. Проблемы применения данной работы в практической компьютерной анимации в том, что все выражения лица могут быть получены только из нейтрального.
Существуют также модели анимации лица, основанные на мускулах. Они более сложны, нежели параметрические модели. Различают модели, в которых мышцы моделируются на поверхности кожи и модели, в которых мышцы присоединяются к структурному слою, расположенному под кожей. Первый способ проще тем, что для системы моделирования необходимо наличие только поверхностной модели лица. Второй – анатомически корректен и поэтому потенциально представляет более точные результаты, однако требует более сложной структуры модели [17].

Захват движения

Захват движения (motion capture) включает обнаружение, оцифровку и запись движения объекта [19]. Объект захвата движения обычно оборудуется какой-либо измерительной аппаратурой так, чтобы положение ключевых точек на нем было легко обнаружить и зафиксировать в любой момент времени. После этого в эти положения можно поместить трехмерную компьютерную модель и анимировать ее так, что она будет повторять движения рассчитанных положений.
Существует два основных подхода к измерению:
  • Электромагнитные датчики. Датчики размещают на суставах, и они передают информацию о своем положении и ориентации на центральных процессор для записи их перемещений. Для передачи данных на ЦП датчики используют проводную или беспроводную передачу. Преимущество – положение и ориентацию каждого датчика в трехмерном пространстве можно записывать и показывать в реальном времени. Недостатки – размеры и точность магнитного поля.
  • Оптические метки. Носителям этих меток необходимо носить на себе только отражающие метки. Этот метод не представляет информации в реальном времени. Движения носителя записывают на видео, после чего видео обрабатывают на предмет нахождения данных меток и определения их положений в пространстве. Для качественного определения положения меток требуется вести запись с нескольких калиброванных камер, при этом на теле носителя должно быть большое количество меток (большее, чем при использовании электромагнитных датчиков).
Метод захвата движения применяется для анимирования виртуальных моделей людей (или пришельцев, как в фильме Аватар) в современной киноиндустрии.
Рисунок 17 – пример технологии захвата движения

Заключение

Компьютерная анимация начинала с простых методов, пришедших из традиционной анимации, и основывалась в основном на интерполяции между ключевыми кадрами. Затем появились кинематические и динамические модели для структурных представлений объектов. Со временем методы компьютерной анимации все больше ориентируются на более точное соблюдение законов физики и динамические модели.
Соглашусь с предположением автора [20], что в будущем сложные анимационные системы реального времени будут разрабатываться с использованием преимуществ устройств виртуальной реальности и все более усложняющихся методов анимации. Типичной ситуацией может быть следующая – актер, движения которого захватываются в реальном времени датчиками на нем, и виртуальная модель человека, полностью управляемая компьютером, физически корректно взаимодействуют в одной виртуальной среде в реальном времени [20].

Литература

  1. Пэрент Р. Компьютерная анимация / Пер. с англ. М.: КУДИЦ-ОБРАЗ, 2004. 560 с.
  2. Stern G. BBop: A Program for 3-Dimensional Animation // Nycograph 83. 1983. P. 403-404.
  3. May S. Encapsulated Models: Procedural Representations for Computer Animation. Ph. D. dissertation, Ohio State University. 1998.
  4. Frenet-Serret Formulas [HTML] (http://en.wikipedia.org/wiki/Frenet–Serret_formulas).
  5. Kent J., Carlson W., Parent R. Shape Transformation for Polyhedral Objects // Proceedings of SIGGRAPH, 92. Computer Graphics. 1992. 26. № 2. P. 47-54.
  6. Sederberg T. Free-Form Deformation of Solid Geometric Models // Proceedings of SIGGRAPH, 86. Computer Graphics. 1986. 20. № 4. P. 151-160.
  7. Темам Р. Уравнения Навье-Стокса. Теория и численный анализ. 2-е изд. М.: Мир, 1981. 408 с.
  8. Stam. J, Fiume E. Depicting Fire and Other Gaseous Phenomena Using Diffusion Processes // Proceedings of SIGGRAPH, 95. Computer Graphics. 1995. P. 129-136.
  9. Peachey D. Modeling Waves and Surf. // Proceedings of SIGGRAPH, 86. Computer Graphics. 1986. 20. № 4. P. 65-74.
  10. Prusinkiewicz R., Hammel M., Mjolsness E. Animation of Plant Development // Proceedings of SIGGRAPH, 93. Computer Graphics. 1993. P. 351-360
  11. Sheepers F. Anatomy-Based Surface Generation for Articulated Models of Human Figures. Ph. D. dissertation, Ohio University. 1996.
  12. Rijpkema H., Girard M. Computer Animation of Knowledge-Based Human Grasping // Proceedings of SIGGRAPH 91. Computer Graphics. 1991. 25. № 4. P. 339-348.
  13. Girard M., Maciejewski A. Computational Modeling for the Computer Animation of Legged Figures // Proceedings of SIGGRAPH 85. Computer Graphics. 1985. 19. № 3. P. 263-270.
  14. Rydfalk M. CANDIDE: A Parameterized Face. Technical Report LiTH-ISY-I-8066. Sweden, 1987.
  15. Parke F. A Parametric Model for Human Faces. Ph.D. dissertation, University of Utah, 1974.
  16. DeRose T., Kass M., Truong T. Subdivision Surfaces for Character Animation // Proceedings of SIGGRAPH 98. Computer Graphics Proceedings. 1998. P. 85-94.
  17. Parke F., Waters K. Computer Facial Animation. A.K. Peters, Wellesey, Mass., 1996. ISBN 1-56881-014-8.
  18. Ekman P., Friesen W. Facial Action Coding System. Consulting Psychologists Press, Palo Alto, Calif. 1978.
  19. Menache A. Understanding Motion Capture for Computer Animation and Video Games. Morgan Kaufmann, New York, 2000.
  20. M. N. Thalmann, D. Thalmann Computer Animation in Future Technologies. Switzerlang. Miralab. 1998.

Немає коментарів:

Дописати коментар