Сегодня анимация персонажа занимает лидирующие позиции в программной индустрии. Она занимает не последнее место в создании современных фильмов, позволяя изобразить всю полноту фантазии сценаристов добавлением в фильм фантастических героев и наделением их сверхчеловеческими способностями. Но самое широкое применение компьютерной анимации персонажа можно встретить в производстве мультфильмов. На сегодняшний день рисованные мультфильмы уходят в прошлое, им на смену приходят мультфильмы созданные на компьютере. Кроме этого анимация персонажа встречается в компьютерных симуляторах сложных и дорогостоящих систем, например, авиа-тренажерах или тренажерах управления космическими кораблями и станциями. В таких программах необходима наивысшая детализация внешней среды и объектов управления, но главное, необходимо реалистично отображать самих участников тренинга (пилотов, космонавтов) и их действия. В статье [1] описана система имитационного моделирования деятельности космонавта как оператора одного из видов робототехнических средств космической станции. В таких программных тренажерах от точности представления самого анимированного персонажа и его движений зависит полезность применения программы в процессе обучения. Кинематография и мультипликация, создание программных тренажеров (симуляторов) и компьютерных игр - вот, далеко не полный, список направлений в программной индустрии, где используется компьютерная анимация персонажа.
При такой популярности и актуальности компьютерной анимации персонажа возникает необходимость создания систем, которые позволят пользователям создавать самих персонажей и наделять их движениями. Понятно, что создание таких сложных систем не под силу отдельным разработчикам, поэтому этим занимаются крупные корпорации. Наиболее известными и популярными на сегодняшний день являются: 3D Studio Max (и плагин для него - CharacterStudio), Maya и Poser.
Это система компьютерной графики, которая позволяет создать персонажа и окружающую его внешнюю среду, задать анимацию самого персонажа и всех объектов сцены. Подробную информацию о системе и ее обновлениях можно найти на сайте компании Dissect [2]. Проектирование персонажа в 3D Max заключается в создании скелета персонажа, как набора связанных объектов костей (Bones) и привязкой к ним объектов частей тела, которые будут связаны с элементами скелета. После этого задается сама анимация изменением положения отдельных костей, возможно применение инверсной кинематики, когда задаются положения только ключевых костей скелета, а положения промежуточных вычисляются системой. Но система 3D Max в основном направлена на создание реалистичных виртуальных сцен и не ориентирована непосредственно на анимацию персонажа, поэтому для этой цели была создана CharacterStudio, которая является плагином для 3D Studio Max.
Сайт системы Character Studio находится по адресу [3]. Этот пакет предназначен для трехмерной персонажной анимации в среде 3D Studio Max. Пакет интегрирует в себе два модуля (plug-ins) Biped и Physique. Первый осуществляет физически обоснованную постановку анимации по последовательности следов персонажа, а второй - скиннинг (skinning) и движение мускулатуры персонажа, то есть при движении различных частей скелета происходит адекватное изменение модели с сохранением гладкости ее поверхности.
Character Studio включает в себя гибридную систему анимации, сочетающую такие технологии, как: пошаговая анимация (footstep-driven), захват движения (motion capture) и анимация по ключевым кадрам (keyframe).
Следующая система компьютерной графики - Maya, ее официальный сайт можно найти по адресу [4]. Эта система является одним из конкурентов 3D Max. Она также ориентирована на создание реалистичной визуальной среды и персонажей. Maya позволяет создавать анимацию персонажей, но это не является основной целью системы. Правда, возможности Maya по анимации персонажей превышают возможности 3D Max. Начиная с третьей версии, появился редактор Trax - редактор нелинейной анимации, помогающий более эффективно анимировать персонажи с набором сложных и перекрывающихся движений. Концепция нелинейной анимации (NLA) является весьма мощной. Вместо работы с отдельными движениями персонажа во времени, поправляя и корректируя кривые и значения повтора, художник-мультипликатор может собрать вместе несколько мультяшных клипов. Им можно задать повторяющиеся и неповторяющиеся действия, например, цикл ходьбы, и затем врезать в анимационную последовательность. Эти клипы могут также перекрываться, так что редактирование стандартного цикла ходьбы в полном объеме, с размахиванием руками и покачиванием головы стало намного проще. Конечно же, можно задавать значения с возрастанием или убыванием от времени при повторах так, что такая анимация может продолжаться неопределенно долго.
Poser от компании Curious Labs - это программа для создания моделей людей и животных и их анимации. Эта программа непосредственно ориентирована на создание анимации персонажа. В базовой конфигурации программа содержит в себе большое количество уже готовых фигур, наборы поз и движений. Правда, методы генерации движений довольно ограничены по сравнению, например, с Character Studio. Но этот недостаток компенсируется встроенными редакторами движений. Например, редактор походки позволяет пользователю задать движение ходьба выбранному персонажу. Кроме этого этот редактор позволяет придать походке некие специфические особенности, например, придать характер походке (мужская, женская и т.д.). Преимуществами этой программы являются простота ее использования и возможность конвертирования созданных сцен в наиболее распространенные системы 3D-графики.
Рассмотрим методы анимации персонажа, которые наиболее распространенны и используются в описанных выше системах 3D-графики. Сам процесс создания анимированного персонажа можно условно разделить на следующие основные этапы:
Наиболее простая и широко использованная схема представления персонажа - это представление модели персонажа в виде дерева. Такой подход используется во всех описанных выше системах. Суть его в следующем: скелет персонажа представляется деревом S = D(V, E), где V - множество звеньев скелета (вершин дерева), E - множество соединений (ребер дерева). Такое дерево также называют кинематической схемой или скелетом персонажа. За корень, как правило, принимается узел, совпадающий с центром масс персонажа, а от него ответвляются ветки рук, ног и т.д. [6]. С каждым звеном связываются локальная система координат и матрица перехода от предыдущего звена к текущему звену [7], [10]. Матрицы перехода зависят от значения обобщенных координат, определяющих связи между звеньями, входящими в данную кинематическую пару. Для корневого узла скелета матрица перехода определяет переход из глобальной системы отсчета в систему отсчета персонажа [9]. Кроме матриц поворота могут использоваться кватернионы, их преимущество по сравнению с матрицами в том, что они содержат 4 параметра (против 9 параметров матрицы). Подробно теория динамики твердого тела и сравнение матриц поворота с кватернионами описаны в статьях [11], [12]. Для того чтобы определить положение, например, кисти руки персонажа в глобальной системе координат (Vw), необходимо вычислить следующую формулу:
Vw= Tw (x,y)Rw (Θw)TsRs (Θs) TcRc(Θc) TbRb (Θb) TfRf (Θf) ThRh (Θh)V, где T - матрицы относительного смещения, R - матрицы относительного поворота, Θ - значение обобщенной координаты. Индексы указывают относительно каких элементов выполняются смещения и повороты (w - относительно глобальной системы отсчета, s - живота, с - груди, b - плеча, f - предплечья, h - кисти). Вектор V - это положение точки на кисти в системе отсчета кисти, а Vw - положение этой точки в глобальной системе координат [8]. Изменение значение обобщенных координат ведет к изменению положения и ориентации элементов скелета персонажа. Ясно, что набором значений обобщенных координат может быть описано положение и ориентация всех элементов скелета в пространстве, т.е. такой набор определяет состояние кинематической цепи персонажа. Такой подход очень удобен для описания движения персонажа и используется в описанных выше системах и методах анимации, которые будут рассмотрены ниже.
Рассмотрим наиболее известные методы проектирования движения, используемые в современных системах 3D-графики. Сам процесс движения может быть представлен семейством функций m1(t), m2(t),:, mn(t) - изменение значений обобщенных координат во времени t, n - число обобщенных координат кинематической цепи скелета [6]. Кроме этого процесс движения персонажа может быть описан на основе методов моделирования физики и биомеханики [13], [14]. Тогда движения персонажа могут быть представлены семейством функций f1(t), f2(t),:, fn(t) - изменения значений напряжений в мышцах. Но такой подход требует большое количество параметров, описывающих динамическую схему персонажа. К преимуществам такого подхода можно отнести уменьшение количества информации о движении и использование физических свойств персонажа в процессе движения.
Но сам процесс проектирования движения такими методами не приемлем для пользователя систем 3D-графики, поскольку указывать в каждом кадре весь набор значений обобщенных координат или напряжений затруднительно и занимает слишком много времени, таким способом невозможно создать реалистичное и сложное движение. Поэтому системы 3D-графики используют алгоритмы и методы упрощения процесса проектирования движения.
Рассмотренная выше задача определения положения и ориентации, например, кисти персонажа в глобальной системе по известному набору обобщенных координат называется прямой задачей кинематики. Наряду с ней существует обратная задача кинематики, когда по известному положению звена необходимо рассчитать набор обобщенных координат. Как правило, метод обратной кинематики используется следующим образом: на скелетной модели персонажа выбираются ключевые звенья, например, для руки - плечевое звено и кисть, задаются положения и ориентации ключевых звеньев, а значения промежуточных звеньев вычисляются, используя методы обратной кинематики. Таким образом, для задания движения достаточно определить последовательность значений в ключевых звеньях кинематической цепи скелета персонажа, поскольку значения в промежуточных звеньях могут быть вычислены. Необходимым условием выбора ключевых звеньев является следующее условие: звенья, входящие в последовательность заключенную между двумя ключевыми звеньями должны образовывать группу 2 порядка [15], [16]. Метод обратной кинематики, как правило, используется в совокупности с другими методами описания анимации.
Цель этого метода - облегчить процесс проектирования движения. Суть метода в следующем: задаются состояния кинематической цепи скелета только в двух граничных кадрах движения, а в остальных кадрах состояния цепи рассчитывает компьютер. То есть пользователь системы указывает положение персонажа в начальном кадре движения и в конечном кадре, а положения в промежуточных кадрах определяет система, исходя из этих условий. Этот метод основывается на методе интерполяции. Функции изменения значений обобщенных координат достраиваются, как правило, кубическими сплайнами на основе информации о значениях этих координат на концах траекторий движения [17]. Иногда необходима дополнительная информация о скоростях изменения координат в ключевых кадрах. Метод анимации по ключевым кадрам используется во всех описанных выше системах.
Для моделирования движений, или эффектов, которые трудно воспроизвести с помощью ключевых кадров, используется процедурная анимация. В процедурной анимации рассчитывают текущие значения параметров анимации, основываясь на начальных значениях, заданных пользователем, и на математических выражениях, описывающих изменение параметров во времени.
Этот метод используется в CharacterStudio [3]. При использовании этого метода создаются следы шагов, по которым движется персонаж. Допускается изменять расположение шагов в пространстве и их тайминг (время, в течение которого нога соприкасается со следами или находится в воздухе) - движение автоматически подстроится под все изменения. В зависимости от кривизны пути и скорости персонаж автоматически наклоняется.
Эта технология включает в себя наложение движений реальных актеров на модели виртуальных персонажей. На теле актеров закрепляется набор датчиков, отслеживающих движения, которые после оцифровываются и записываются в определенный формат. Метод захвата движения заключается в преобразовании данных о положении датчиков в последовательность значений обобщенных координат скелетной модели персонажа [6], [18]. Технология захвата движения широко используется в кинематографии. Эта технология максимально упрощает процесс создания анимации персонажа, позволяя использовать уже готовые движения актеров.
Метод синтеза движений призван упростить процесс анимации персонажа его задача - генерация движения на основе высокоуровневой модели описания движения [19]. Такой подход не требует от пользователя глубокого понимания динамики естественных движений моделируемых персонажей, все низкоуровневые детали, такие как движения каждой части тела, доработает компьютер. Синтез движений включает в себя две основные задачи:
- Комбинирования движений - когда несколько движений могут быть скомбинированы в одно. Комбинируемые движения могут выполняться последовательно или параллельно.
- Заимствование движений - когда движения, спроектированные для одного персонажа, могут быть перенесены на другого, схожего по структуре.
Использование синтеза движений позволяет сократить число параметров необходимых для описания движения персонажей, а так же облегчить работу аниматора за счет использования комбинирования движений, а также их переноса на других персонажей.
Комментарии
Отправить комментарий