Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #64, МАРТ 2006 г.

dead can dance

ФЛЕНОВ МИХАИЛ AKA HORRIFIC

Спецвыпуск: Хакер, номер #064, стр. 064-052-5


И напоследок — несколько советов по использованию скелетной анимации.

После модификации матрицы преобразований одной кости у тебя могут возникнуть проблемы с получением первоначального состояния — мой первый совет призван избавить тебя от этой напасти. Дело в том, что в любом случае существует какая-то погрешность, которая со временем начинает влиять на качество сцены. Например, ноги человека неожиданно откажутся выравниваться в тот момент, когда ты попытаешься остановить своего персонажа и поставить его ровно. Ликвидировать такой эффект легко: можно создать свой вариант структуры D3DXFRAME, то есть расширить ее, добавив еще одно поле типа D3DXMATRIX. В этом поле можно хранить матрицу преобразований кости на этапе начала анимации и при каждом отображении сцены плясать именно от этого значения.

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

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

итого

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

Даже такая большая статья, как эта, не может вместить всю информацию. Я постарался показать основы, заинтересовать тебя и убедить в необходимости использовать эту технологию. Дальнейшее совершенствование знаний и умений оставляю на твоей совести. Думаю, через некоторое время я вновь подниму эту тему на моем сайте. Если возникли вопросы — пиши.

Напоследок загляни на сайт http://cherb.web.ur.ru/mal.html — увидишь танцующего мальчика в памперсе. Это рисованная анимация, но есть и демка, в которой тот же самый мальчик танцует под хорошую музыку, причем персонаж реализован в виде сетки mesh и скелета. Я видел эту демку примерно три года назад, а сейчас что-то не смог найти. Жаль, хотелось выложить ее для тебя на диск

ОТЛИЧНЫЙ ПРИМЕР СКЕЛЕТНОЙ АНИМАЦИИ ИДЕТ В СОСТАВЕ DX SDK, И ЕГО МОЖНО УВИДЕТЬ В ДИРЕКТОРИИ DXSDK\SAMPLES\C++\DIRECT3D\MESHES\SKINNEDMESH

СКЕЛЕТНАЯ АНИМАЦИЯ ХОРОШО ПОДХОДИТ ДЛЯ СОЗДАНИЯ ДВИЖЕНИЯ ПЕРСОНАЖЕЙ В ИГРАХ. ЗАГРУЖАЯ ГОТОВЫЕ ТРАЕКТОРИИ ДВИЖЕНИЯ И ВРАЩЕНИЯ КОСТЕЙ ИЗ .X-ФАЙЛА, МЫ ЭКОНОМИМ ПРОЦЕССОРНЫЕ РЕСУРСЫ

Назад на стр. 064-052-4  Содержание  Вперед на стр. 064-052-6