Войти
АртСтатьи

«Говорящие головы» — лицевая анимация в проекте GETAWAY.

В этой статье я собираюсь описать Talking Heads (Говорящие головы) — нашу систему анимации лица, которая использует анализ речи и скелетную систему для того, чтобы уменьшить затраты труда, применяемые в таких больших игровых проектах. SCEE's Team Soho располагается в центре Лондона и окружена большим количеством постпродакшн-студий.

Автор: Gavin Moore

Введение
Обзор
Лепка Вашей Головы
Создание скелета
Веса
Эмоции и лицо
Эмоции и Система
  Фонемы
  Особенности
  Четвертый Локатор
Подсказки и трюки

Введение

Getaway — один из самых значительных проектов SCEE. Этот проект впитал в себя темноту и мрачную атмосферу криминального Лондона. Игрок может почувствовать себя и в роли профессионального преступника и в шкуре озлобленного детектива полиции, побыть одним из двух совершенно разных персонажей.

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

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

Обзор

Сперва нужно было решить, использовать обычную blend-shape (морфинг форм) анимацию или скелетную анимацию. Когда вы подсчитываете число фонем и эмоций, необходимых для создания правдоподобной анимации лица, вы вскоре осознаете, что blend-shape метод становится непрактичным. Один персонаж должен иметь минимум 6 эмоций, 16 фонем, и кучу лицевых движений, таких как моргание, дыхание и движение бровями. Blend-shape требует гигантских объемов моделирования, а так же больших объемов данных на выбранной вами игровой платформе.

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

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

Лепка Вашей Головы

Только часть лица используется в большинстве выражений. Полностью лицо не задействуется. Область вокруг глаз, бровей и рта содержит впечатляющее число мускульных групп. Большинство из этих областей используются при создании выражения лица. Сначала мы взглянем на эти две области и соберем информацию о них. Хотя другие части лица двигаются (например, щеки во время улыбки), 80 процентов всех эмоций изображаются именно этими двумя областями.

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

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

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


Изображение
Изучение лицевых пропорций Леонардом да Винчи.

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

Ширина носа в основании равна ширине глаза
Расстояние от бровей до основания носа контролируется нижней и верхней точками уха
Ширина рта эквивалентна расстоянию между зрачками глаз
Угол между верхней и нижней губами равен 7.5 градусов
Низ скул находится на той же высоте что и кончик носа

Все модели голов для проекта Getaway были сделаны на основе одной модели. Эта модель содержала корректное число полигонов, систему анимации и веса. Мы сканировали актеров, используя систему, созданную компанией Eyetronics, очень мощную и эффективную для сканирования. Решетка проецировалась на лицо, которое мы хотели отсканировать, и делались снимки. Эти снимки обрабатывались программой и конвертировались в 3D-mesh. Эти "меши" программно сшивались вместе и в результате мы получали прекрасную 3D-модель, сканируемого лица. В то же время создавались текстуры для этой модели.

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


Изображение
Полигональная модель для высокого разрешения (1.500 полигонов)

Модели голов для проекта Getaway имели невероятный уровень детализации. Мы использовали 1500 полигонов на модель включающую язык, зубы, ресницы и волосы.

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

Создание скелета

Иерархия скелета была создана, базируясь на материалах, изложенных выше. Две главные кости были контрольными: шея и голова. "Шея" - была основной костью, прикрепленной в свою очередь к основному скелету персонажа. Эта кость могла управляться либо constraints - "ограничителями", либо motion-capture данными. Это давало нам возможность осуществлять бесшовное взаимодействие, между головой и телом. Кость "Голова" контролировала бы небольшие движения головы: покачивание и кивание, случайные шевеления головы и позиции, принимаемые головой в определенных выражениях лица. Голова наклонялась вперед при выражении гнева, и опускалась, когда лицо было печально. Эта кость была предком всех остальных костей. Куда бы она ни двигалась, остальные кости следовали за ней. Другие кости, связанные с определенными мускульными группами, это:

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


Изображение  Изображение
Фронтальный и боковой виды системы лицевой анимации, показывающие скелетную иерархию.

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

Веса

Как мы назначали произвольную модель головы к этому скелету? Исходный skinning персонажа занял два полных дня тщательной работы над весами. Мы использовали Maya и Paint Weight Tool для достижения нашей цели.

Мы не собирались тратить столько времени на каждую голову. Поэтому мы написали скрипт на языке MEL, который мог копировать "веса" с одной модели на другую. Скрипт по существу сохранял веса вершин, используя два основных принципа: направление нормали вершины, и UV-координаты. Это позволило нам экспортировать "веса" с одной головы, и затем импортировать их в другую.

Чтобы это работало, мы должны были быть уверены, что все текстуры нашей головы были согласованы с особым неизменным шаблоном. Это позволило нам назначать определенную текстуру на любые головы. Также шаблон значительно облегчил создание текстур для голов.

Эмоции и лицо

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

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


Изображение
Типичная текстура для лица в проекте Getaway.

Кто ничего не понял - может почитать на английском:
http://www.gamasutra.com/features/20010418/moore_01.htm

Страницы: 1 2 Следующая »

#Maya, #анимация, #лицевая анимация, #скелет

15 июня 2002 (Обновление: 20 сен 2009)

Комментарии [4]