Формат файла Microsoft .X является не единственным, используемым для хранения данных мешей и анимаций. Есть еще два формата, сравнимые с ним по простоте использования, которые являются замечательными для хранения данных мешей и анимаций, - форматы chUmbaLum sOft's Milkshape 3D .MS3D и id Software's Quake 2 .MD2.
Формат файла Milkshape .MS3D похож на двоичный .X, за исключением того, что файл .MD3D хранит только один меш и иерархию костей. На самом деле, формат .MS3D является очень простым, т. к. не использует шаблоны; вместо этого в файле хранится заранее определенная последовательность структур.
Формат файла Quake 2 .MD2 является простым набором мешей, помещенных в один файл. Каждый меш представляет собой один кадр анимации из последовательности ее наборов. В то время как файлы .MS3D содержат скелетные анимации, формат .MD2 содержит только наборы морфируемых анимаций.
Замечание. Морфированная анимация мешей является еще одной привлекательной темой, освещенной в книге, так что я просто указал на двойственность программы MeshConv. Пока что просто игнорируйте любые упоминания морфированной анимации и вернитесь к теме: преобразование наборов скелетных анимаций, основанных на ключевых кадрах из .MS3D в .X.
Итак, для скелетных анимаций вы можете использовать файлы .MS3D, а для морфируемых анимаций .MD2. Как же конкретно их использовать? Существует множество информации об этих форматах. Посмотрите книжку Focus On 3D Models (Premier Press, 2002) или веб-сайты http://www.gamedev.net или http://nehe.gamedev.net.
Компакт-диск содержит программу MeshConv, которую вы можете использовать для преобразования файлов .MS3D и .MD2 в .X. После запуска программы вы увидите диалоговое окно MeshConv, показанное на рис. 5.2.
Не дайте неказистости кнопок в программе MeshConv напугать вас - она конвертирует все файлы .MS3D и .MD2 files в .X, используя шаблоны, виденные вами в этой главе. Файлы .MS3D сохраняются, используя иерархию фреймов и один объект AnimationSet, в то время как файлы .MD2 сохраняются, используя набор объектов Mesh и MorphAnimationSet, которые хранят названия мешей, используемых для морфированной анимации.

Рис. 5.2. Диалоговое окно MeshConv содержит две кнопки, щелкнув на которые вы можете преобразовать файлы .MS3D и .MD2 в .X
Замечание. На компакт-диске содержится полностью комментированный исходный код программы MeshConv. Читайте конец этой главы, чтобы подробнее узнать о программах и их местоположениях.
Для преобразования файла (.MS3D или .MD2) в .X файл щелкните по соответствующей кнопке в диалоговом окне MeshConv. Появится диалоговое окно "Open File". Это диалоговое окно позволяет вам перемещаться по директориям для указания расположения конвертируемого файла. Выберете необходимый для конвертации файл и нажмите "Open".
Появится диалоговое окно "Save .X File". Вы можете использовать его для указания имени и положения файла, в котором вы хотите сохранить данные мешей и анимации. Введите имя файла и нажмите "Save". Через некоторое время вы должны увидеть окно сообщений, говорящее о том, что преобразование было выполнено успешно.
Теперь вы готовы использовать .X файлы при помощи классов, разработанных ранее в этой главе, для загрузки наборов скелетной или морфируемой анимации. Набор скелетных анимаций использует один исходный меш, деформируемый (shaped) иерархией костей; для получения дополнительной информации об использовании скелетных мешей читайте эту главу и главу 2.
Для морфируемых анимаций (из .MD2) используется последовательность объектов Mesh, содержащих все цели морфирования меша из исходного файла. Всего один объект MorphAnimationSet поможет вам загрузить данные анимации в ваш проект, используя ранее изученные классы и технологии.
В качестве примера работы с конвертированным, при использовании программы MeshConv, .X файлом смотрите демонстрационные программы, включенные в эту главу. Вы правильно поняли - программы BoneAnim и MorphAnim используют конвертированные файлы .MS3D и .MD2 для иллюстрирования скелетной и морфируе-мой анимации. Посмотрите их и получайте удовольствие!
Посмотрите демонстрационные программы
В этой главе вы научились загружать наборы анимаций и использовать их данные для анимирования мешей. Для лучшего иллюстрирования этих концепций анимации я создал программу (SkeletalAnim), которая показывает вашу любимую даму скелетной анимации, Microsoft's Tiny (из примеров DirectX SDK), делающую то, что она может лучше всего, - ходящую! При запуске приложения вы увидите что-то подобное изображенному на рис. 5.3.

Рис. 5.3. Двигающаяся Tiny в демонстрационной программе SkeletalAnim! Эта программа иллюстрирует использование анимированных скелетных мешей
Программы на компакт-диске
В директории главы 5 компакт-диска этой книги вы найдете следующие две демонстрационные программы, которые вы можете использовать в своих проектах:
• MeshConv. Вы можете использовать эту полезную программу для преобразования файлов .MS3D и .MD2 в .X. Она расположена в \BookCode\Chap05\MeshConv.
• SkeletalAnim. Эта программа показывает, как считывать и использовать скелетную анимацию, основанную на ключевых кадрах. Она расположена в Воок-
Code\Chap05\SkeletalAnim.
Глава 6
Комбинирование скелетныханимаций
В главе 5 "Использование скелетной анимации, основанной на ключевых кадрах", вы видели, как использовать заранее созданные последовательности анимаций в ваших игровых проектах. Это хорошо; единственная проблема в том, что эти анимации статические. Так и есть, анимации никогда не изменятся и всегда будут оставаться постоянными, сколько раз вы бы их не проигрывали.
На самом деле, проделав небольшую работу, вы можете соединить последовательности плавных анимаций в набор новых динамических анимаций, которые будут уникальными при каждом воспроизведении. Например, комбинируя игровую анимацию передвижения персонажа с его отдельной анимацией удара, вы можете сделать так, чтобы персонаж шел и бил одновременно!
Все правильно, соединив (иногда говорят смешав) движения разнообразных анимаций, вы можете создать сотни новых, используя заранее вычисленные наборы анимаций, основанных на ключевых кадрах. Эта глава покажет, как комбинировать анимации.
В этой главе вы научитесь:
• Комбинировать наборы скелетных анимаций;
• Изменять программный код работы со скелетной анимацией для поддержки комбинированной анимации.
⇐Обновление анимации || Оглавление || Комбинирование скелетных анимаций⇒