Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DirectX. Продвинутая Анимация (2004) [rus].pdf
Скачиваний:
335
Добавлен:
16.08.2013
Размер:
8.39 Mб
Скачать

Глава 6

Комбинирование скелетных анимаций

В главе 5 "Использование скелетной анимации, основанной на ключевых кадрах", вы видели, как использовать заранее созданные последовательности анимаций в ваших игровых проектах. Это хорошо; единственная проблема в том, что эти анимации статические. Так и есть, анимации никогда не изменятся и всегда будут оставаться постоянными, сколько раз вы бы их не проигрывали.

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

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

В этой главе вы научитесь:

Комбинировать наборы скелетных анимаций;

Изменять программный код работы со скелетной анимацией для поддержки комбинированнойанимации.

172

Глава 6

Комбинирование скелетных анимаций

Как я уже упоминал во введении этой главы, обычно вы используете последовательности заранее вычисленных анимаций на основе ключевых кадров в ваших игровых проектах. Вы создаете эти анимации при помощи программ трехмерного моделирования, таких как 3DStudio Max фирмы Discreet или trueSpace фирмы Caligari. Хотя они и прекрасно справляются со своей задачей, у этих заранее вычисленных последовательностей анимаций отсутствует самое главное - уникальность. Это означает, что анимации всегда одинаковы, независимо от того, сколько раз вы их проиграли.

Двигаясь к миру более динамических анимаций, технология комбинирования анимаций становится более чем актуальной. Как так, вы не знаете что такое комбинирование анимаций? Комбинирование анимаций - это возможность смешивать или комбинировать различные анимации для получения новых.

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

Вам не надо останавливаться на комбинировании двух анимаций, вы можете соединять три, четыре или даже десять различных анимаций в одну уникальную! С каждой новой добавляемой анимацией возможности комбинирования возрастают экспоненциально. Имея небольшой набор анимаций, вы можете создать сотни новых, используя их комбинирование.

Я не буду вам врать - теория и практическое воплощение комбинирования анимаций мучительно... просты. Так и есть; комбинирование анимаций является одной из тех вещей, о которых вы говорите: почему я не додумался сделать это раньше, это на самом деле просто! Вам тоолько нужно определиться со способом соединения разнообразных преобразований структуры костей.

Соединение преобразований

Как вы видели в главах 4 и 5, скелетная анимация просто является последовательностью матриц преобразования, применяемых к костям скелетной структуры меша. Эти преобразования включают перемещение, масштабирование и вращение. Большей частью преобразования являются вращениями. Кости поворачиваются в сочленениях; обычно только корневая кость может перемещаться по миру, и даже тогда лучше преобразовывать мир (чем напрямую перемещать кости). Принимая во внимание все вышесказанное еще раз заметим, что анимация создается с помощью преобразований.

Комбинированиескелетныханимаций

173

Рис. 6.1. Хотя две анимации, показанные слева, и определены раздельно, вы можете соединить их в одну уникальную анимацию, как показано справа

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

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

Так что на самом примитивном уровне вы имеете дело с преобразованием матриц для создания анимации; существует одна матрица преобразования, накладываемая на каждую кость в меше. Набор предварительно вычисленных анимаций является источником матриц преобразования, накладываемых на преобразования кости.

Соседние файлы в предмете Программирование на C++