Ключи деформации и лицевой риггинг персонажа в Blender

Ключи деформации и лицевой риггинг

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

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

Есть много способов лицевого риггинга и эта книга фокусируется на подходе, который основан на использовании мощной системы ключей деформации (shape key) Blender и драйверов интерполяционных кривых Ipo для связывания форм с позами арматуры. После знакомства с формами и драйверами Ipo и обсуждения их использования для лицевого риггинга, вы также примените их с другой целью: улучшите риг тела.

Основы ключей деформации

Blender позволяет создавать и анимировать множество разных форм одной и той же сетки с помощью ключей деформации (shape keys).

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

Начнём с очень простого примера.

Запустите Blender, выберите куб по умолчанию и перейдите на вкладку Shapes в кнопках редактирования.

В данный момент не определено ни одного ключа деформации, у вас просто есть сетка той формы, которую вы видите: кубической. Нажмите кнопку Add Shape Key для создания вашего первого ключа деформации. Вы увидите, что появился ключ деформации Basis, как на рисунке 5.1.

Ключи деформации и лицевой риггинг в Blender 5_1.jpg

Рисунок 5.1 Ключ деформации Basis

У ключа Basis, как вы скоро увидите, есть несколько уникальных особенностей. Он представляет собой форму вашей сетки в её «исходном» состоянии («rest» position), не затронутом ни одним из ключей деформации. В данном случае вы создали форму Basis в виде куба, а это значит, что позиции вершин этой формы куба представляются формой Basis.

Теперь, когда у вас есть форма Basis, вы можете воспользоваться ею для построения новой формы. Этот процесс прост:

  1. Используя кнопки со стрелками вправо и влево на вкладке Shapes, убедитесь, что форма Basis на данный момент является активным ключом. (В данном случае это так, потому что других ключей пока нет.)
  2. В объектном режиме нажмите кнопку Add Shape Key. Измените имя ключа с Key 1, заданного по умолчанию, на Taper 1. Вкладка должна выглядеть, как показано на рисунке 5.2.
    Ключи деформации и лицевой риггинг в Blender 5_2.jpg

    Рисунок 5.2 Ключ деформации Taper 1

  3. Перейдите в режим редактирования и отредактируйте форму по собственному усмотрению, перемещая вершины. Для первого примера выберите четыре верхние вершины и отмасштабируйте грань с помощью последовательного нажатия S и Shift+Z, чтобы ограничить масштабирование осями X и Y. Уменьшите верхушку куба, как на рисунке 5.3.
    Ключи деформации и лицевой риггинг в Blender 5_3.jpg

    Рисунок 5.3 Редактирование формы

  4. Вернитесь в объектный режим. Таким же образом добавьте ещё один ключ, но в этот раз назовите его Wedge и отредактируйте так, чтобы он стал похож на форму с рисунка 5.4, выбрав указанное ребро и перенеся его вниз по оси Z.
    Ключи деформации и лицевой риггинг в Blender 5_4.jpg

    Рисунок 5.4 Форма Wedge

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

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

Теперь у вас есть три формы: форма Basis и два анимируемых ключа деформации Taper 1 и Wedge. С помощью кнопок со стрелками на вкладке Shapes просмотрите вашу коллекцию пару раз.

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

Если вы нажмёте на стрелку вправо, делая Taper 1 активным ключом деформации, то немедленно увидите форму Taper в 3D-окне. Это особое состояние предпросмотра формы и это важно. Если вы передвинете слайдер, то перестанете находиться в этом состоянии.

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

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

Чтобы увидеть, как это работает, выставьте слайдер для Taper 1 в 1.0. Нажмите на правую кнопку, чтобы сделать Wedge активным ключом деформации.

В момент, когда вы переключаетесь на Wedge, вы увидите полную, несмешанную форму Wedge в 3D-окне, даже если слайдер Wedge выставлен на 0.0. В этом особом состоянии вы видите, что форма выглядит как при слайдере, установленном на 1.0, даже если он на самом деле выставлен на 0.0.

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

В момент, когда вы подбираете положение слайдера, вы имеете дело с реальной сеткой, подвергающейся одновременному воздействию нескольких ключей деформации. Если сейчас вы передвинете слайдер Wedge на 1.0, то увидите сетку, на которую одновременно влияют и Taper 1 и Wedge, причём оба ключа в полной мере воздействуют на форму сетки.

Вы должны увидеть что-то наподобие формы, показанной на рисунке 5.5. Если вы нажмёте на левую стрелку, то вернётесь в состояние предпросмотра для Taper 1. Хотя слайдер по-прежнему остаётся на 1.

Ключи деформации и лицевой риггинг в Blender 5_5.jpg

Рисунок 5.5 Сетка под одновременным воздействием Wedge и Taper 1

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

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

Если вы сделаете минимальное значение диапазона ключа деформации меньшим, чем ноль, то можете придавать слайдеру отрицательные положения. Чтобы увидеть пример, перейдите к вашему ключу деформации Wedge и присвойте Min: значение — .25. Теперь слайдер можно смещать ниже нуля.

Переместите слайдер вниз, чтобы увидеть, как форма приобретает очертания, обратные активному Wedge. Ребро, которое в Wedge опускалось, теперь поднимается, как на рисунке 5.6. Аналогично, вы можете расширять положительные изменения ключа деформации, увеличивая значение Max: выше 1.

Ключи деформации и лицевой риггинг в Blender 5_6.jpg

Рисунок 5.6 Форма Wedge при отрицательном значении слайдера

Хотя вы не можете выбирать ключи деформации в режиме редактирования, по некоторым причинам вы можете удалять эти ключи в режиме редактирования с помощью кнопки X.

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

Это значит, что следующий ключ унаследует информацию о положении текущих активных вершин, как будто вы отредактировали сетку. Предыдущая форма будет необратимо потеряна, поскольку теперь нет никакой возможности восстановить правильное положение вершин для этого ключа. Отмена (Ctrl+Z) может сработать, если вы нажмёте эту комбинацию до перехода в объектный режим, но всё же лучше знать об этой ситуации, и избегать её.

Аддитивность

Ключи деформации, которыми вы пользуетесь, работают путём сложения своих относительных координат. Это важная концепция, которую следует понимать, если вы будете пользоваться переходными формами (blended shapes).

Чтобы увидеть пример этого в действии, убедитесь, что все ваши ключи деформации выставлены в ноль, после чего с помощью кнопок со стрелками выберите Taper 1. Находясь в состоянии предпросмотра формы, нажмите кнопку Add Shape Key. После этого вы должны получить копию формы Taper 1. Переименуйте форму в Taper 2. С помощью слайдера убедитесь, что это, фактически, копия Taper 1, и что при выставленном в ноль слайдере видна форма куба по умолчанию.

Теперь выставьте Taper 2 в 1. С помощью стрелок перейдите к Taper 1. Выставьте значение Taper 1 на 0.5. Вы должны увидеть пирамиду, очень напоминающую рисунок 5.7. Не переживайте, если она не выглядит точно так же. Если вы подстроите значение Taper 1, то сможете добиться большой степени похожести. Более того, если вы увеличите значение Taper 1 — до 1, например — то увидите эффект, напоминающий рисунок 5.8.

Ключи деформации и лицевой риггинг в Blender 5_7.jpg

Рисунок 5.7 Аддитивный эффект двух форм Taper при частичном воздействии

Ключи деформации и лицевой риггинг в Blender 5_8.jpg

Рисунок 5.8 Аддитивный эффект двух форм Taper при полном воздействии

Хотя Taper 1 и Taper 2 это одна и та же форма, их совместный эффект не один и тот же, благодаря аддитивности. Поэтому важно быть осторожным при создании форм лица, которые вы планируете совмещать вместе.

Если две формы производят чрезмерный эффект, вы можете столкнуться с нежелательными аддитивными эффектами. Аддитивность также является причиной, по которой слайдер должен находиться на нуле, когда вы копируете ключ деформации с помощью Add Shape Key в состоянии предпросмотра формы.

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

Добавление и удаление вершин

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

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

Ключ Basis

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

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

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

Если вы действительно попадёте в такую ситуацию, то можно выбрать вершины, которые должны быть такими же во всех формах, нажать клавишу W и выбрать в меню Propagate to All Shapes. Это разместит выбранные вершины одинаково во всех формах. Есть и другие способы спасти часть ключа деформации, потеряв всё остальное, связанные с использованием групп вершин, но мы рассмотрим их далее в этой главе. В общем, старайтесь не изменять ключ Basis после того, как начали делать ключи деформации.

Наконец, особость ключа деформации Basis по отношению к остальным ключам состоит в том, что это первый созданный вами ключ и, таким образом, первый ключ в вашем наборе ключей. Фактически, порядок ключей деформации может изменяться, и любой ключ деформации может стать первым.

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

Чтобы изменить порядок ключей деформации, вам нужно открыть окно Ipo Editor и выбрать из меню Ipo Type пункт Shape. Названия доступных ключей будут перечислены с правой стороны окна, как вы видели ранее при создании драйверов Ipo. В самом верху этого списка находится особый ключ под названием «----». Щёлкните левой кнопкой мыши по имени этого ключа. Теперь вы видите особое отображение Ipo, которое, фактически, вместо самих Ipo отображает набор голубых горизонтальных линий с жёлтой линией внизу.

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

Пользуясь этим приёмом, вы можете тасовать ключи деформации как угодно, но важно, чтобы линия, представляющая ваш ключ Basis, всегда была нижней. Если по какой-то причине вы обнаружили, что у ключа Basis появился слайдер, то здесь можно исправить эту проблему. Вы можете увидеть окно Ipo ключей деформации на рисунке 5.9.

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

Ключи деформации и лицевой риггинг в Blender 5_9.jpg

Рисунок 5.9 Если вам нужно поменять порядок ключей деформации, это делается
здесь.

Драйверы Ipo

Как и в случае с ограничениями действий из предыдущей главы, драйвера Ipo являются ещё одним примером вторжения концепций анимации в процесс риггинга. Драйвера Ipo критичны для того способа, которым мы хотим выполнить риггинг Капитана Blender, так что необходимо ознакомиться с ними, прежде чем продолжать работу. Однако, если вы совершенно незнакомы с концепцией кривых Ipo, то вам, наверное, лучше будет пропустить этот раздел и вернуться к нему после того, как прочтёте о кривых Ipo Blender в главе 6.

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

Однако анимация (изменение во времени) не единственная вещь, которую можно сделать с помощью кривых Ipo. Вместо того чтобы делать Ipo функцией от времени, вы можете сделать кривую функцией от любого другого изменяющегося значения. При изменении одного значения (например, угла вращения определённой кости) будет изменяться другое значения (такое, как значение слайдера ключа деформации). В этом случае мы можем сказать, что Ipo ключа деформации управляется (is driven) вращением кости.

Сейчас мы создадим очень простой драйвер Ipo с помощью только что созданных ключей деформации.

  1. В объектном режиме добавьте арматуру сбоку куба по умолчанию, как на рисунке 5.10.
    Ключи деформации и лицевой риггинг в Blender 5_10.jpg

    Рисунок 5.10 Куб по умолчанию и кость арматуры, вид спереди

  2. Разделите 3D-вид пополам и откройте в одной половине окно Ipo Editor.
  3. В объектном режиме выберите куб. Из выпадающего меню в Ipo Editor выберите Shape. Вы должны увидеть список ключей деформации с правой стороны окна Ipo Editor. Выберите Taper 1, щёлкнув левой кнопкой мыши по имени. В Ipo Editor должна быть видна плоская линия.
  4. Удерживая Ctrl, щёлкните в окне Ipo Editor, чтобы добавить новую вершину к кривой Ipo ключа деформации. Теперь у вас есть две контрольных точки для этой кривой. В меню Curve, находящемся в заголовке Ipo Editor, выберите Interpolation mode → Linear. (Если вместо меню Curve в заголовке имеется меню Point, то нажмите Tab, чтобы выйти из режима редактирования кривой.)
  5. Нажмите N, чтобы вызвать виджет Transform Properties. Нажмите кнопку Add Driver.
  6. Разместите контрольные точки для кривой драйвера, как показано на рисунке 5.11. Введите Armature в поле Object, выберите тип драйвера Pose, введите Bone в поле Bone и выберите Rot Z как Ipo, которая будет использоваться как драйвер.

    Это сделает Ipo вашего ключа деформации функцией от вращения кости по локальной оси Z. Обратите внимание, что горизонтальная (X) ось окна Ipo Editor теперь градуирована градусами. Вертикальная ось (Y) отображает слайдер ключа деформации. Ваша кривая должна проходить от 0 до 1 по вертикальной оси и между указанными вами углами, соответствующими интенсивности деформации.

    В данном случае нам нужно, чтобы деформация отсутствовала при нулевом вращении кости и достигала максимума, когда кость повёрнута на 90 градусов. Чтобы сделать это установите значение X min в ноль, значение X max в 9, значение Y min в ноль и Y max в 1.

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

    Также обратите внимание на небольшую особенность написания: градусы определяются как одна десятая реального количества градусов, так что если вы введёте в это поле 90, то это будет соответствовать 9 градусам (а 9 будет соответствовать 0.9 градуса). Также заметьте, что у тех ключей, которыми мы управляем с помощью драйверов Ipo, в середине их прямоугольника для выбора отображается точка, как видно на примере ключей Taper 1 и Wedge на рисунке 5.11.

    Ключи деформации и лицевой риггинг в Blender 5_11.jpg

    Рисунок 5.11 Кривая, описывающая драйвер Ipo для Taper 1

  7. Проверьте драйвер, выбрав кость в режиме Pose и повернув её вокруг локальной оси Z (нажмите R, Z, Z). Неплохо было бы ещё открыть окно Transform Properties (клавиша N), чтобы посмотреть на значения углов, если вращение кости дало не тот результат, которого вы ожидали.

    Вращение должно происходить в положительном направлении, которое, как вы можете видеть на рисунке 5.12, в данном случае соответствует повороту против часовой стрелки. В тот момент, когда вращение достигает 90 градусов, деформация Taper 1 должна наиболее полно проявить себя на сетке.

    Ключи деформации и лицевой риггинг в Blender 5_12.jpg

    Рисунок 5.12 Поворот кости управляет формой.

Итак, только что мы создали нашу первую Ipo, управляющую формой. Вы можете управлять многими Ipo с помощью одной Ipo или отдельными Ipo на одном и том же объекте. Для того чтобы попрактиковаться на живом примере, выполните эти шаги снова и создайте ещё один драйвер (на этот раз управляющий формой Wedge) и воспользуйтесь вращением по X той же кости, которую вы использовали для управления формой Taper 1.

У вас должен получиться набор драйверов, позволяющих вам управлять обеими формами с помощью различных манипуляций одной и той же кости, как вы можете увидеть на рисунке 5.13.

Ключи деформации и лицевой риггинг в Blender 5_13.jpg

Рисунок 5.13 Несколько драйверов Ipo сведены воедино

После того, как вы создадите драйверы для форм, управляемые формы более не будут нуждаться в независимом управлении с помощью слайдеров, но если вы создадите новую форму на базе управляемой, то новой формой можно будет независимо управлять с помощью её собственного слайдера.

Страница: 1 2 3
Поделиться в: Опубликовать в twitter Опубликовать в своем блоге livejournal.com