netlib.narod.ru< Назад | Оглавление | Далее >

Типы анимации

Существует два основных типа анимации: анимация с ключевыми кадрами и скелетная анимация. Эти типы анимации используются в различных ситуациях и каждый имеет свои преимущества и недостатки.

Анимация с ключевыми кадрами

В анимации с ключевыми кадрами вы храните статические сетки модели для каждого кадра анимации. Если вы будете анимировать модель на рис. 11.1, вам потребуется экспортировать четыре различных статических сетки и менять рисуемую сетку во время каждого кадра. Такая анимация называется анимацией с ключевыми кадрами (keyframed) потому что экспортируются только ключевые кадры анимации. Например, в анимации на рис. 11.1 между первой и второй стадиями анимации может быть много промежуточных кадров, используемых для того, чтобы анимация была более плавной. Однако вам не требуется экспортировать их, потому что они получаются путем интерполяции первого и второго ключевых кадров. Например, в линейной интерполяции, местоположение каждой вершины сетки линейно интерполируется между первым и вторым кадром.

Одним из преимуществ анимации с ключевыми кадрами является быстрота, поскольку в ходе анимации ничего не требуется вычислять. Все кадры анимации хранятся в памяти и во время анимации вам надо только каждый раз менять рисуемую модель. Недостатком этого метода является необходимость хранить все сетки моделей в памяти, чтобы они могли быть быстро нарисованы. Если у модели сотни кадров анимации, ее сетку приходится сохранять сотни раз. В сценах с сотнями анимированных моделей, которые совместно используют одну и ту же анимацию, метод ключевых кадров может быть полезен. Использовать анимацию с ключевыми кадрами в XNA для моделей просто, поскольку в XNA уже есть классы, необходимые для поддержки статических моделей. Следовательно вы в XNA можете представить анимированную с использованием ключевых кадров модель как массив статических моделей, используя, например, класс Model.

Скелетная анимация

Другим способом анимации моделей является скелетная анимация. Для нее вам необходимо построить скелет модели, состоящий из нескольких костей, и затем присоединить каждую вершину сетки к кости скелета. В результате при анимации скелета анимируется также и присоединенная к нему сетка, следуя анимации скелета.

Чтобы построить сетку модели, скелет и анимацию, вы можете использовать различные программы моделирования, поддерживающие скелетную (или костевую) анимацию, такие как 3ds Max, Maya, Blender и т.д. После того, как вы создадите модель, вам надо экспортировать ее в формат, поддерживающий скелетную анимацию. Среди форматов моделей изначально поддерживаемых XNA, скелетную анимацию поддерживают форматы X (файлы DirectX) и FBX (Autodesk). Заметьте, что скелетная анимация является также анимацией с ключевыми кадрами, а это значит, что экспортируются только ключевые кадры скелетной анимации. Как и в анимации с ключевыми кадрами вы можете интерполировать кадры анимации скелета. На рис. 11.2 показана модель с ее сеткой и скелетом.


Рис. 11.2. Модель с ее сеткой и скелетом

Рис. 11.2. Модель с ее сеткой и скелетом


Скелетная анимация обладает несколькими преимуществами по сравнению с анимацией с ключевыми кадрами. Она позволяет легко смешивать анимации, позволяя одновременно применять к модели различные анимации. Например, вы можете применить к модели на рис. 11.2 две различные анимации, где одна анимация заставит модель ходить, а другая — оглядываться вокруг (поворачивая голову). Скелетная анимация также позволяет соединять кости одного объекта с костями другого. Например, если у вас есть персонаж, который орудует мечом, вы можете присоединить кость меча к кости руки персонажа, в результате чего меч будет перемещаться при перемещении руки персонажа. Сегодня скелетная анимация используется более широко, чем анимация с ключевыми кадрами. Держа это в уме мы сосредоточимся на скелетной анимации.

XNA не обладает встроенной поддержкой скелетной анимации. Хотя конвейер содержимого XNA и может импортировать модели со скелетной анимацией, используемый по умолчанию обработчик моделей в состоянии обработать только сетку модели и скелет, отбрасывая анимацию модели. Кроме того, формат экспорта скелета модели может быть несоответствующим и неоптимизированным для использования в процессе анимации.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz