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

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

Основы лицевой анимации

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

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

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

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

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

Использование комбинированного морфирования

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

296

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

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

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

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

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

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

нажи опускают углы рта, хмурясь, в то время как счастливые персонажи растягивают рот в улыбке.

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

Рис. 11.2. Вместо использования двух целевых морфируемых мешей, вы можете скомбинировать их в один целевой меш, таким образом, сохраняя время и место

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

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

иих использовании в синхронизированной анимации губ.

1.Зачастую даже вместо термина визема используют термин "визуальная фонема". - Примеч. науч. ред.

298 Гл

Использования фонем для речи

Как я только что заметил, фонемы являются звуками, произносимыми нами; каждое слово языка (любого языка) состоит из набора фонем. Например, слово "program" состоит из следующих семи фонем: р, r, ow, gh, r, ae, и m.

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

Замечание.ВместотогочтобыприводитьзначенияуникодаIPAвдесятичнойсистеме счисления, намного проще (и является стандартом) привести их в шестнадцатеричной системе счисления. Таким образом, в этой главе я буду использовать шестнадцатеричныезначенияIPA,находящиесявдиапазонеот0x0000до0x0FFF.

Я скоро вернусь к созданию лицевых мешей, произносящих звуки. А пока я хочу немного подробнее рассмотреть фонемы, чтобы увидеть, как вы можете использовать их в своих проектах. Фонемы создаются набором уникальных символов, при этом для усугубления уникальности каждому символу присваивается уникальное значение. Эти значения, известные как IPA (International Phonetic Alphabet (Международный фонетический алфавит)) значения уникода2, изменяются в диапазоне от 0 до 1024 (для англоязычных пользователей), при этом каждая группа значений присваивается различным языкам и произношениям (как показано в таблице 11.1).

Таблица 11.5. Группы фонем Unicode IPA

Диапазон значений

Язык

 

 

0x0041 to 0x00FF

Стандартная латынь

 

 

0x0010 to 0x01F0

Европейская и расширенная латынь

 

 

0x0250 to 0x02AF

Стандартные фонемы

 

 

0x02B0 to 0x02FF

Символы изменения

 

 

0x0300 to 0x036F

Диакритическиезнаки

 

 

Англоговорящие люди используют значения, показанные в таблице 11.1, но большей частью используются значения (и фонемы) таблицы 11.2.

2. Unicode - уникод,16-битный стандарт кодирования символов, позволяющий представлять алфавиты всех существующих в мире языков. - Примеч. науч. ред.

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

 

299

 

 

 

Таблица 11.6. Фонемы американского английского

 

 

 

 

 

 

Значение

Фонема

Пример

 

 

 

 

0x0069

iy

Feel

 

 

 

 

0х026А

h

Fill

 

 

 

 

0х00Е6

Carry

 

 

 

 

0x0251

Father

 

 

 

 

0х028С

ah

Cut

 

 

 

 

0x0254

Lawn

 

 

 

 

0x0259

ах

Ago

 

 

 

 

0x0065

еу

Ate

 

 

 

 

0х025В

eh

Ten

 

 

 

 

0х025А

er

Turn

 

 

 

 

0x006F

OW

Own

 

 

 

 

0х028А

uh

Pull

 

 

 

 

0x0075

UW

Crew

 

 

 

 

0x0062

b

Big

 

 

 

 

0x0070

p

Put

 

 

 

 

0x0064

d

Dug

 

 

 

 

0x0074

t

Talk

 

 

 

 

0x0067

g

Go

 

0х006В

k

Cut

 

 

 

 

0x0066

f

Forever

 

 

 

 

0x0076

V

Veil

 

 

 

 

0x0073

s

Sit

 

 

 

 

0х007А

z

Lazy

 

 

 

 

0х03В8

th

Think

 

 

 

 

0x00F0

dh

Then

 

 

 

 

0x0283

sh

She

 

 

 

 

0x0292

zh

Azure

 

 

 

 

0х006С

l

Length

 

 

 

 

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