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

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

Из комментариев к предыдущему коду вы можете увидеть, что я проверяю тип кода события, полученного вызовом GetEvent. Единственным интересующим нас событием является завершение проигрывания, которое представлено макросом EC_COMPLETE. Внутри блока условия вы можете делать все, что пожелаете. Например, вы можете переместиться в начало звука и начать проигрывать его, как

ясделал тут:

//Обработать событие завершения проигрывания if(Code == EC_COMPLETE) {

//Переместиться в начало звука и проиграть его опять pPosition->put_CurrentPosition(0.0f);

pControl->Run();

}

Вы также могли заметить вызов функции IMediaEvent::FreeEventParams. Вы должны всегда вызывать IMediaEvent::FreeEventParams, чтобы позволить DirectSound освободить все ресурсы, которые были выделены для получения событий при вызове функции GetEvent.

Реализовав это, функция проигрывания звука завершена! Ну, почти завершена. После завершения работы со звуком, вы можете вызвать IMediaControl::Stop для остановки проигрывания всех звуков и освободить все интерфейсы CОМ при помощи функции Release.

Посмотрите демонстрационные программы

Гмм! Лицевую анимацию невероятно просто использовать, если вы знаете как, а эффект от ее использования просто потрясающ. На компакт-диске книги вы обнаружите две программы, связанные с лицевой анимацией - FacialAnim и ConvLWV.

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

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

330

Глава 11

Рис. 11.14. Прослушайте футбольный репортаж игрового персонажа, с полностью синхронизированными губами, в демонстрационной программе FacialAnim!

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

Программы на компакт-диске

Директория главы 11 компакт-диска включает проект (демонстрационную программу) FacialAnim и две программы (программный пакет Agent фирмы Microsoft и программу ConvLWV). В директорию входят:

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

FacialAnim. Посмотрите на пример лицевой анимации, приведенный в этой демонстрационной программе, содержащей говорящий меш, меняющий свое поведение во времени. Она расположена в \BookCode\Chap11\FacialAnim.

Agent. Программный пакет Agent фирмы Microsoft включает в себя Linguistic Information Sound Editing Tool. Он расположен в \BookCode\Chap11\Agent.

ConvLWV. Эта программа преобразует файлы .LWV в .X и сохраняет последо-

вательность фонем в объектах, легко импортируемых

игровым

проектом.

По причинам лицензирования исходный код для этого

проекта

недоступен.

Программа расположена в \BookCode\Chap11\ConvLWV.

 

 

Часть V

Прочие типы анимации

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

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

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

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