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

Advanced Animation with DirectX

Jim Adams

PREMIER PRESS

Джим Адамс

DirectX:

продвинутая

анимация

КУДИЦ-ОБРАЗ Москва • 2004

ББК 32.973.26

Адамс Д.

DirectX: продвинутая анимация / Пер. с англ. - М.: КУДИЦ-ОБРАЗ, 2004.-480 с.

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

ISBN 1-59200-037-1

ISBN 5-9579-0025-7

Джим Адамс

DirectX: продвинутая анимация

Учебно-справочное издание

Перевод с англ. В. Ю. Щербаков Науч. ред. И. В. Кошечкин

«ИД КУДИЦ-ОБРАЗ».

119049, Москва, Ленинский пр-т, д. 4, стр. 1А. Тел.: 333-82-11, ok@kudits.ru

Подписано в печать 30.06.2004

Формат 70x90/16. Бум. газетная. Печать офсетная Усл. печ. л. 35,1. Тираж 3000. Заказ 1375

Отпечатано в ОАО «Щербинская типография» 117623, г. Москва, ул. Типографская, д. 10

ISBN 1-59200-037-1

ISBN 5-9579-0025-7 «ИД КУДИЦ-ОБРАЗ», 2004

© 2003 by Premier Press, an imprint ofCourse Technology (a division ofThomson Learning). Translation Copyright © 2004 by KUDITZ-OBRAZ.

Краткое содержание

Введение

Часть I. Подготовка

Глава 1. Подготовка к изучению книги

Часть и. Основы а н и м а ц и и

 

Глава 2. Синхронизация анимации и движения

 

Глава 3. Использование формата файла .X

 

Часть Ill. Скелетная анимация

124

Глава 4. Работа со скелетной анимацией

 

Глава 5. Использование скелетной анимации, основанной

 

на ключевых кадрах

 

Глава 6.

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

 

Глава 7.

Создание кукольной анимации

 

Часть IV. Морфирующая анимация

 

Глава 8.

Работа с морфирующей анимацией

 

Глава 9.

Использование морфирующей анимации, основанной на ключевых кадрах

261

Глава 10. Комбинирование морфированных анимаций

 

Глава 11. Морфируемая лицевая анимация

 

Часть V. Прочие типы а н и м а ц и и

 

Глава 12. Использование частиц в анимации

 

Глава 13. Имитирование одежды и анимация мешей мягких тел

3

Глава 14. Использование анимированных текстур

Часть VI. Приложения

Приложение А. Ссылки на книги и сайты Приложение Б. Содержимое компакт-диска

Благодарности

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

Прежде всего, я хотел бы поблагодарить свою семью, за поддержу. Мою любящую жену, за ее терпение, пока я писал эту книгу. Моих детей, Michael и John, за то что были со мной. Хочу также сказать спасибо за поддержку моей матери Раm, братьям John, Jeff и Jason, сестре Jennifer, и племяннику Jordan. Bill and Doris Fong - за все, что они сделали для меня. Моему приятелю Jeff Young - за предоставление помощи в завершении книги и Richard Young - за предоставление места на сайте для этой книги.

Всей издательской команде - Emi Smith, Cathleen Snyder, Andre LaMothe и Brandon Penticuff - я бы хотел сказать спасибо, в т. ч. и за возможность поработать с вами снова. Emi, твое бесконечное терпение просто поражает. Спасибо тебе, Cathleen зато, что процесс редактирования прошел таклегко. И, наконец, Andre за помощь в создании такой великолепной серии книг. И, конечно же, Brandon, - спасибо, что смог поместить все так быстро на компакт-диск!

Также я бы хотел поблагодарить фирму Caligari, которая помогает игровому сообществу своими замечательными продуктами , за создание trueSpace и такой замечательной вещи как Facial Animator; Discreet за их программу моделирования 3D Studio Max; Curious Labs за их необычайную программу Poser для создания фигур человека; Microsoft, за создание такой полезной вещи как DirectX.

И, наконец, я бы хотел поблагодарить всех читателей за покупку этой книги!

06 авторе

Джим Адамс начал свою карьеру программиста в зрелом возрасте 9 лет, когда проявились его любопытство и воображение. Двадцать один год спустя в возрасте 30 лет (очень зрелый!) Джим все еще интересуетсяъ современными технологиями создания игр, как например описанными в этой книге. Несмотря на все это, Джим находит время для семьи, успевает написать книгу-другую и изредка помочь своей жене.

Между моментами, когда Джим занимается написанием книг и программированием, вы можете его найти модерирующим DirectX форум на одном из лучших веб-сайтов посвященных программированию игр http://www.GameDev.net. Обязательно зайдите туда!

Письмо редактора серии

Добро пожаловать в DirectX: продвинутая анимация. Эта книга полностью посвящена технологиям трехмерного анимирования, используемым при разработке высококачественных ААА тайтлов, таких как Unreal, Doom III и др., позволяющих использовать скелетную и лицевую анимации трехмерных моделей. Большей частью, материал этой книги никогда раньше не издавался. Вы можете

найти некоторые темы этой книги в Интернете, в статьях или других книгах, но это единственная книга, посвященная продвинутым методам анимирования в играх. Целью автора этой книги и моей было показать продвинутые технологии анимирования и базовую физику, на которую он опирается. Конечно при слове "физика" или "математика" у вас начинают бегать мурашки, но Джим постарался использовать объяснения физических моделей с точки зрения программиста.

Вэтой книге рассмотрены замечательные вещи, как например физика "кукол". Великолепным примером этой технологии является Unreal Tournament; когда вы убиваете оппонента, его тело подкашивается, и сила выстрела отбрасывает его, совсем как куклу!

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

Наконец, самыми замечательными технологиями являются лицевая анимация

исинхронизация губ. Эти технологии используются в очень малом количестве игр, и наверное, пока не будут использоваться. Опять же, Джим объясняет все тонкости этой технологии.

Взавершение хотелось бы сказать, что эта книга действительно является продвинутой и содержит очень серьёзный материал. Если вы начинающий программист, то некоторые моменты останутся непонятными для вас, но прежде чем погружаться в это безумие, я рекомендую вам изучить основы трехмерной графики, математику и физику на уровне средней школы. Тем не менее, после того как вы освоите эту книгу, 90% разработчиков игр даже не будут иметь понятия о известных вам технологиях.

Искренне ваш,

Андрё ЛаМот (Andre LaMothe), редактор серии Premier Press Game Development

Введение

Итак, вы уже знаете основы. Вы уже научились рисовать полигоны и мешы, смешивать текстуры, управлять буферами вершин и работать с вершинными шейдерами, так чему же еще необходимо научиться честолюбивому программисту игр? Замечательно, вы обратились по правильному адресу, если готовы двинуться далее основ.

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

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

О чем эта книга

Как вы можете видеть из содержания (вы же его смотрели?) эта книга была написана для средних и продвинутых программистов. Поэтому в ней нет разделов для начинающих (ну, почти нет) - только сложные теории и код!

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

Введение

9

Почему вам следует прочитать эту книгу

Это вопрос на миллион долларов - зачем читать эту книгу? Давайте смотреть правде в глаза: игровые технологии развивают очень быстро, и многие из нас не успевают уследить за ними. Сегодня одно, завтра другое. В целом, книга содержит информацию о продвинутых технологиях, которые вы можете использовать в своих проектах и которые удивят остальных!

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

Что содержится в этой книге?

В этой книге содержится 14 глав, полностью посвященных продвинутой анимации. Каждая глава освещает одну технологию анимации; если не брать несколько первых глав, книга является полностью модульной, т. е. вы можете пропустить не интересные вам главы и перейти к интересующим вас темам.

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

Глава 1: Подготовка к изучению книги. Подготовьте себя, потому что эта книга сразу же переходит к использованию DirectX для создания привлекательных анимаций в ваших программах! Эта глава поможет проинстал-

лировать DirectX и настроить компилятор, а потом сразу же переходит к рассмотрению библиотеки объектов и функций, созданных для ускорения разработки приложений. Прежде чем читать остальные главы, вы должны обязательно прочитать эту главу.

Глава 2: Синхронизация анимации и движения. Синхронизация является важной частью анимации, и эта глава является вводной по отношению к остальным. В ней содержится информация о перемещении и анимировании мешей во времени.

Глава 3: Использование формата файла .X. Получение данных меша является достаточно сложным. В этой главе содержится информация об использовании собственного формата хранения трехмерной графики корпорации Microsoft .X. В этой главе вы научитесь сохранять и загружать информацию о трехмерном меше и использовать файлы .X для хранения специализированных данных проекта.

Глава 4: Работа со скелетной анимацией. Наверное, наиболее продвинутой техникой анимации в реальном времени является скелетная анимация. Эта

10

Введение

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

Глава 5: Использование скелетной анимации, основанной на ключевых кадрах. Одна из самых распространенных технологий анимации использует наборы анимаций, основанных на ключевых кадрах (создаваемых в пакетах трехмерного моделирования, таких как 3D Studio Max фирмы Discreet или trueSpace фирмы Caligari). Эта глава показывает, как использовать информацию скелетной анимации, основанной на ключевых кадрах (хранимой в файле .X) для анимирования меша.

Глава 6: Комбинирование скелетных анимаций. Вам надоела статичность анимаций, основанных на ключевых кадрах? Я говорю об анимациях, которые никогда не меняются! А как насчет комбинирования нескольких наборов анимаций для создания новых?

Глава 7: Создание кукольной анимации. Вот оно; я знаю вы этого ждали. В этой главе содержится информация о создании собственных кукольных анимаций. Вам не потребуются учебники по физике; в этой книге содержится вся необходимая информация, изложенная в простом виде.

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

Глава 9: Использование морфирующей анимации, основанной на ключевых кадрах. Даже морфирующие анимации должны быть последовательными, не так ли? Посмотрите, как определять и создавать собственные

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

Глава 10: Комбинирование морфированных анимаций. Еще раз мы используем комбинирование, на этот раз для соединения различных комбинированных анимаций в новые в реальном времени!

Глава 11: Морфируемая лицевая анимация. Они ходят, прыгают и даже разговаривают! При использовании технологий лицевой анимации, показанной в этой главе, игровые персонажи оживают. Если вы не знаете возможностей лицевой анимации, посмотрите на игры Medal of Honor: Frontline фирмы Electronic Art или Gate: Dark Alliance фирмы Interplay.

Введение

Глава 12: Использование частиц в анимации. Какая же современная игра не использует сверкающие, клубящиеся, хлещущие капли графических пикселей, которые называются частицами? Ваша, скажите вы? Хорошо, не волнуйтесь, - эта глава покажет, как можно эффективно использовать анимацию частиц.

Глава 13: Имитирование одежды и анимация мешей мягких тел. Закройте глаза и представьте, что игровой персонаж носит шелковый плащ, простирающийся до земли, который развевается при малейшем ветре. При использовании имитации одежды вы можете дать вашему персонажу плащ, одежду и еще множество всего. Дополните это использованием мешей мягких тел, которые могут деформироваться от малейшего прикосновения, и вы получите продвинутую технологию анимации!

• Глава 14: Использование анимированных текстур. Лучшее я оставил на потом. Эта глава иллюстрирует применение анимированных текстур, используемых для рисования трехмерного мира. Анимированный огонь, текущая вода и еще множество всяких возможностей, и все это при использовании анимированных текстур, рассмотренных в этой главе!

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

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

Часть I

Подготовка

1. Подготовка к изучению книги

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