BonyFace - инструмент для создания рига и анимации 3D-моделей лиц. Это скрипт, работает в 3ds max 2008, 2009, 2010, 2011, 2012.
Сцену с объектами BonyFace можно открыть и визуализировать в 3ds max без установленного BonyFace, как и любую обычную сцену.

Инструменты в BonyFace 2.5 делятся на базовые (доступны для всех) и расширенные (доступны для пользователей, авторизовавших свою копию скрипта). Также в скрипт включен тестовый период, позволяющий каждому пользоваться расширенными инструментами на протяжении 10 сеансов работы.

При помощи базовых инструментов можно создать риг, скин, настроить параметры рига и анимировать управляющие объекты стандартными средствами 3ds max.
При помощи расширенных инструментов можно создавать сложную анимацию и легко управлять моделью.

    Возможности базовых инструментов BonyFace:
  1. Автоматическое создание скриптовой сплайновой модели на основе алгоритма анализа пользовательской модели головы.
  2. Автоматическое создание костной модели лица и системы управляющих объектов (риг) на основе изменяемой скриптовой сплайновой модели и пользовательской модели головы.
  3. Автоматический скин головы и присоединение костной модели BonyFace к существующему скелету. Поддерживаются скелеты Cat, Biped, Bones.
  4. Автоматический риг и скин языка.
  5. Возможность выворачивания и растяжения губ.
  6. Система прямых и мягких управляющих объектов. Всего на лице создается 118 управляющих объектов.
  7. Быстрая и легкая настройка всех параметров рига через интерфейс.
    Возможности расширенных инструментов BonyFace:
  1. Сохранение лицевых поз в файлы, просмотр и загрузка поз.
  2. Миксер лицевых поз, т.е. создание новой позы на основе любого числа уже существующих поз.
  3. Сохранение лицевых анимаций в файлы, просмотр и загрузка анимаций.
  4. Импорт лицевых поз и анимаций - можно использовать позы и анимации, сделанные для одного персонажа, на другом персонаже.
  5. Управление выделением и перемещением управляющих объектов через графический интерфейс.
  6. Создание и управление слоями анимации трех типов: AutoBlink - автоморгание, BVH - для переноса mocap-анимации и Normal - обычная анимация.

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

Работа с BonyFace 2.5

    Определения:
  1. Контрол - управляющий объект, управляет костями рига.
  2. Директ - прямой контрол, который перемещает сочленение костей (джойнт), к которому он привязан.
  3. Софт - мягкий контрол, управляющий группой директов.
  4. Пойнт - вспомогательный объект-пустышка, связанный с контролом. У большинства контролов по два пойнта - один указывает место контрола по умолчанию, другой движется вместе с контролом.


Описание интерфейса BonyFace
Интерфейс BonyFace состоит из основного окна, которое служит для создания рига и 4-х дополнительных окон: Setup Rig, Poses, Drive, Face. Дополнительные окна вызываются из основного и служат для настройки рига и работы с ним. Дополнительные окна Poses, Drive, Face в группе Tools - это расширенные инструменты BonyFace.
    Дополнительные окна
  1. Setup Rig - настройка параметров рига, весов и разнообразных коэффициентов, отвечающих за движение костей и контролов
  2. Poses - работа с лицевыми позами и анимациями
  3. Drive - создание, удаление и управление слоями анимации, перенос лицевой mocap-анимации на контролы
  4. Face - выделение и перемещение контролов через интерфейс, копирование положения симметричных контролов

Основное окно




Первый блок инструментов интерфейса состоит из списка моделей и нескольких кнопок, работающих с элементами списка. В список заносятся модели голов или персонажей. Новая модель добавляется кнопкой Pick Head. Если в сцене есть модели, для которых выполнен просчет BonyFace (или часть просчета), то при запуске скрипта они добавятся в список автоматически. Активная модель выделена строкой с желтым фоном. Сделать модель активной можно дважды щелкнув на ее строке. В момент времени только одна модель может быть активной. Все остальные блоки инструментов работают только с активной моделью.

Колонки списка
В колонку Name заносится имя модели, оно будет присоединено как префикс ко всем объектам BonyFace.
В колонке Progress отображаются стадии просчета BonyFace: picked - модель выбрана, splines - сплайны созданы, rigged - риг создан, skinned - скин создан (финальная стадия).
В колонке State показано состояние модели при помощи следующих сокращений: on/off - включена/выключена, F - заморожена, H - скрыта.

Pick Head of Character Нажмите на кнопку и выберите объект Editable Poly - модель головы или персонажа.
Remove BonyFace stuff Кнопка удаляет объекты BonyFace c активного персонажа.
Delete Controllers from Highlighted Heads / Restore Controllers to Highlighted Heads Кнопки удаляют/восстанавливают контроллеры анимации с выделенных в списке моделей. Зачем это нужно - когда в сцене более одного персонажа (а точнее 3-4), анимация может сильно тормозить. Экспериментальным путем удалось выяснить, что удаление контроллеров ускоряет производительность остальных персонажей. Пользуйтесь этими кнопками крайне аккуратно, сохраняйте сцену и устанавливайте модель в позу Reset перед удалением контроллеров, т.к. есть большой риск потерять всю BonyFace-анимацию персонажа. Вообщем используйте эти кнопки на свой страх и риск.
Freeze Current Head (Highlighted Heads) / Hide Current Head (Highlighted Heads) Кнопки замораживают/размораживают и скрывают/показывают активную модель или выделенные в списке модели.


Второй блок инструментов - кнопки выбора отдельных объектов (частей модели лица). Для последующего создания рига вам необязательно указывать все части. Нужно указать только глаза и язык, остальные объекты по желанию и/или их наличию. Если язык вашего персонажа в анимации участвовать не будет или у персонажа вообще его нет, то выберите для него любой ненужный Editable Poly объект. Надписи и кнопки под ними соответствуют объектам: Lower Teeth - нижний ряд зубов, Upper Teeth - верхний ряд зубов, Tongue - язык. После выбора объекта надпись на кнопке меняется с Pick на present.
Группа Pick Eyes, Eyelashes, Set Eyelid Center
Кнопкой Right выбирается правый глаз, кнопкой Left - левый. В BonyFace сторона определяется относительно персонажа, т.е. когда в виде Front персонаж направлен лицом к вам, его правый глаз будет слева, а левый справа. Кнопками eyelash указываются ресницы. Ресница - объект Editable Poly, изгибающийся в соответствии с веком. После выбора глаз автоматически создадутся их контролы, а позади каждого глаза появятся желтые объекты-пустышки. Они указывают центр вращения (не должен совпадать с центром глаза в 99% случаев), вокруг которого будут поворачиваться веки, огибая глаз. Положение пустышек регулируется спиннером Center, например для персонажей с глазами навыкате скорее всего придется сдвигать пустышки ближе к центру глаза, иначе веки при опускании могут "проваливаться" в глаз.
Hide Eyes Кнопка скрывает/показывает объекты глаз активного персонажа.

Третий блок - группа Splines, для работы со сплайновой моделью, на основе которой будет создан риг. Сплайновые модели хранятся в файлах *.bfs
Сплайновая модель представляет собой систему из контролов, которые управляют сплайнами, повторяющими характерные линии лица. При выделении сплайна автоматически выделяются его контролы. Большие круги - контролы лица и глаз можно масштабировать. Перемещайте контролы, подгоняя сплайны под модель.
Кнопки для работы с файлами *.bfs
Create Splines - Создать сплайны по умолчанию на основе файла default.bfs (находится в папке скрипта)
Pick Splines from File - Создать сплайны на основе указанного файла *.bfs
Save Splines - Сохранить сплайны в файл
Load Splines - Загрузить данные из файла *.bfs, применив их к существующим в сцене сплайнам
Freeze Splines Кнопка замораживает/размораживает сплайны.
Adjust Splines Кнопка отображает/скрывает диалоговое окно с инструментами выравнивания сплайнов.
Right Side controls Left Side / Left Side controls Right Side / Separate Sides Кнопки контролируют симметрию сплайновой модели. Правая и левая стороны лица могут либо управлять друг другом, либо быть независимыми. Если активна первая кнопка, то правая сторона управляет левой, если вторая, то левая правой, а если третья - стороны полностью независимы. Переключать кнопки можно когда угодно. Если одна из сторон ведомая - ее контролы будут красного цвета и заморожены, т.е. выделять и двигать их не нужно. В этом случае, кстати, проверяйте, включена ли галочка во вкладке Display - Hide Frozen Objects и отключайте ее, иначе вы увидите только половину сплайновой модели.

Окно Adjust Splines
Алгоритм выравнивания сплайнов базируется на характерных областях правой половины лица (подразумевается, что обе стороны абсолютно симметричны), точки на которых должен указать пользователь при помощи 9 соответствующих кнопок (этапов). Жмите по порядку на кнопки и щелкайте на модели (желательно с привязкой EndPoint), чтобы переместить граничный контрол сплайна в нужное место. Промежуточные контролы скрипт расставит самостоятельно после указания граничных точек. После каждого этапа можно подогнать промежуточные или граничные контролы в правильное место, если скрипт неверно его определил.
Кнопки со стрелками выделяют сплайны соответствующих областей лица
1 Upper Forehead Точки верхнего сплайна лба
2 Middle Forehead Точки среднего сплайна лба
3 Brow Точки сплайна брови
4 EyeLid Точки на верхнем и нижнем веке
5 Nose Точки сплайнов носа
6 Upper Cheek Точки верхней части щеки
7 Neck Точки сплайна шеи
8 Jaw Точки сплайнов челюсти
9 Mouth Area Точки области рта
Кнопка запускает процес ручного выравнивание выделенных контролов. От текущего контрола будет тянуться пунктирная линия, пользователю нужно только щелкнуть (с привязкой) на модели и контрол переместится в указанную точку, а процесс перейдет к следующему контролу и т.д. Перейти к следующему контролу без изменения текущего можно нажав правую кнопку мыши, а остановить весь процесс - нажав кнопку ESC.


Четвертый блок - группа Rigging: Bones and Skin, в ней находятся кнопки, запускающие создание рига и скина и несколько вспомогательных инструментов.
Риг и скин модели происходят автоматически. Если у персонажа уже существует скелет и есть модификатор Skin, то BonyFace присоединяет риг к скелету и редактирует модификатор соответственно.
Add Meshsmooth Если модель низкополигональная, можно включить этот флажок перед созданием рига, тогда контролы будут ориентированы более точно.
Pick HeadBone Кнопка выбора головной кости существующего скелета (если вы хотите внедрить риг BonyFace в существующий риг, нажмите ее и выберите головную кость перед созданием рига).
Create Rig Кнопка запуска процедуры автоматического создания рига, дождитесь конца просчета.
Add Skin Кнопка запуска процедуры автоматического скина, дождитесь конца просчета.
Setup Rig Кнопка вызова окна с настройками рига.


Пятый блок - группа Hide / Unhide / Size, c кнопками, скрывающими/показывающими объекты рига и спиннерами, регулирующими их размер.
Скрывайте кости и пойнты для ускорения прорисовки окон проекции. Используйте спиннеры, чтобы изменить размеры пойнтов и контролов, если они получились слишком большие или маленькие.
Set Default Values Кнопка задает объектам рига размеры по умолчанию.
Eyes Splines Кнопка скрывает/показывает сплайны глазных контролов.
Directs Кнопка скрывает/показывает директы.
Softs Кнопка скрывает/показывает софты.
Bones Кнопка скрывает/показывает кости.
Direct Points Кнопка скрывает/показывает пойнты директов.
Soft Points Кнопка скрывает/показывает пойнты софтов.


Шестой блок - группа Tools, c кнопками, вызывающими дополнительные окна для работы с ригом и анимацией.
Poses - запись, загрузка и просмотр лицевых поз.
Drive - создание, удаление и управление слоями анимации, перенос лицевой mocap-анимации на контролы.
Face - выделение и перемещение контролов через интерфейс, копирование положения симметричных контролов.


Седьмой блок - справочная информация.
Help Reference Кнопка открывает данный документ.
www Кнопка перехода на страницу BonyFace в интернете.
About Кнопка отображает окно с информацией об авторах BonyFace.


Окно Setup Rig - настройка рига

Верхний ряд кнопок:
Right/Left - переключениек настроек для правой/левой стороны
Separate Sides - включенный флажок означает независимые настройки для каждой стороны
Load Settings - загрузить настройки текущей стороны из файла (если настройки сторон должны быть одинаковыми, то их можно загружать из файла любой стороны)
Save Settings - сохранить настройки текущей стороны в файл

Веса и параметры настраиваются одновременно для обеих сторон лица, если не включен флажок Separate Sides, если же он включен, то настройки для каждой из сторон будут независеть друг от друга. Сохраняются настройки отдельно для каждой стороны в файл .bfr, но если обе стороны одинаковы, достаточно сохранить для одной. Десять кнопок с названиями частей лица открывают свитки с настройками соответствующих контролов. Выделить контрол можно, нажав на маленькую кнопку слева. Настраивать параметры нужно так: открыть свиток нужного софта, выделить и переместить софт в какое-нибудь характерное положение (закрытый глаз, опущенные брови и т.п.) и настраивать веса и параметры до тех пор, пока директы и кости не встанут в требуемое положение, т.е. модель будет выглядеть так, как вам надо.


Свиток Brows - брови
Бровный софт управляет тремя рядами директов, по три в каждом ряду: Upper Forehead (верхняя часть лба), Middle Forehead (средняя часть лба), Brow (бровь). Метка Direction указывает направление по горизонтали: от носа к виску Nose -> Eye -> Temple, чтобы вы точно знали, какие спиннеры за какие директы отвечают. Спиннеры Factors отвечают за дополнительное перемещение директов по вертикали при движении софта по горизонтали, т.к. бровные директы движутся по кривой, за счет этих спиннеров брови можно хмурить сильнее или слабее. Девять спиннеров Weights: отвечают за перемещение директов вслед за софтом, чем меньше вес, тем сильнее отставание и наоборот. Кнопки между спиннерами связывают соседние спиннеры друг с другом, включенная кнопка означает синхронное изменение значений ближайших спиннеров. Столбик спиннеров Multiply позволяет умножать значения ряда на коэффициент, чтобы было проще управлять затуханием движения от бровей к верхней части лба.


Свиток EyeLids - веки
Веками глаза управляют три контрола: софт верхнего века, софт нижнего века, глазной сплайн цели взгляда. Софты поднимают и опускают веки, глазной сплайн изгибает веки вслед за движущимся зрачком, для более натуральной анимации. Спиннеры Weight: задают вес влияния глазного сплайна на движение верхнего Upper: и нижнего Lower: века. Если вес равен нулю, веко при движении зрачка неподвижно. Спиннеры Factor: управляют изгибом костей века. Если у закрытого глаза кости век не прилегают друг к другу плотно, или не выстраиваются в ровную линию, то это можно урегулировать данными спиннерами. Спиннеры Bend: управляют поворотом глазных костей. Поскольку при вертикальном движении век кости глаза вращаются вокруг разных осей, может получиться так, что они в каком-то положении растянут цепочку костей века и сетка исказится. Спиннерами Bend: это искажение устраняется. Кнопки между спиннерами связывают соседние спиннеры друг с другом, включенная кнопка означает синхронное изменение значений ближайших спиннеров.


Свиток Cheeks - щеки
За щеки отвечают четыре софта, по два на каждой половине лица, один верхний, другой нижний. В списках отображены директы, двигающиеся за софтами, и их веса. В верхнем списке директы верхнего щечного софта, в нижнем соответственно нижнего. При выборе пунктов списка в сцене выделяются соответствующие директы. Кнопка Get Selected Cheek Direct Control From Scene работает наоборот, т.е. ее нажатие выбирает в списках выделенные в сцене директы. После того, как директы в списках выбраны, можно менять их вес спиннерами Weight.


Свиток Link Softs - связь софтов
Нижний софт щеки и центральные софты губ связаны с софтом угла рта (для каждой стороны), чтобы при улыбке деформация кожи выглядела более естественно. Вес влияния на каждый софт настраивается. В списке отображены софты и веса. При выборе пунктов списка в сцене выделяются соответствующие софты. Кнопка Get Selected Soft Control From Scene работает наоборот, т.е. ее нажатие выбирает в списке выделенные в сцене софты. После того, как софты в списке выбраны, можно менять их вес спиннером Weight.


Свиток Tongue - язык
Директы языка перемещаются и поворачиваются вслед за софтом языка. Верхний список отвечает за перемещение директов, нижний за поворот. При выборе пунктов списков в сцене выделяются соответствующие директы. Кнопка Get Selected Direct Control From Scene выбирает в списке выделенные в сцене директы. После того, как директы в списках выбраны, можно менять их вес для перемещения или поворота спиннерами Weight.


Свиток Jaw - челюсть
За челюсть отвечают два контрола: желтый софт на подбородке управляет вращением челюсти, сплайн-спираль, совпадающий с осью вращения, перемещает ее в стороны по горизонтали. В списке отображены директы, двигающиеся за софтом на подбородке и их веса. При выборе пунктов списка в сцене выделяются соответствующие директы. Кнопка Get Selected Jaw Direct Control From Scene выбирает в списке выделенный в сцене директ. После того, как директы в списке выбраны, можно менять их вес спиннером Weight. Кроме списка директов с весами для челюсти есть настройки дополнительного движения.

Группа UpLip Optional Motion when Jaw goes up - дополнительное движение верхней губы, когда челюсть смещается вверх
Directs: - участвуют следующие директы:
LIPUP_1: - центральный директ верхней губы (первый)
LIPUP_2: - второй по цепочке
LIPUP_3: - третий по цепочке
Weights: - спиннеры весов дополнительного движения
Distance: - расстояние, после которого начинается эффект
Кнопки во стрелками связывают значения соседних спиннеров.

Группа Jaw Sideways Motion - движение челюсти в стороны по горизонтали при перемещении контрола на подбородке.
Multiply: - умножающий коэффициент
Limit: - максимальное расстояние, на которое может сместиться челюсть
From: - значение от 0.0 до 1.0, определяющее точку, начиная с которой движение челюсти будет замедляться

Группа Neck Motion - движение шеи вниз вслед за челюстью.
Directs: - участвуют следующие директы:
NECK_1: - центральный директ шеи (первый)
NECK_2: - второй по цепочке
NECK_3: - третий по цепочке
Weights: - спиннеры весов дополнительного движения
Multiply: - умножающий коэффициент
Кнопки во стрелками связывают значения соседних спиннеров.


Свиток Lip Corner - угол губ
Софт угла губ как самый подвижный (не считая челюсти) управляет большим количеством директов, каждая сторона захватывает несколько директов на противоположной стороне (они помечены цветом противоположной стороны). Помимо веса, у некоторых директов есть параметр Z-move, который отвечает за смещение директов вдоль локальной оси Z, т.е. софт угла губ движется по одной или двум осям, а директы по трем, и за счет этого они перемещаются не по линии, а по дуге, огибающей лицо. При выборе пунктов списка в сцене выделяются соответствующие директы. Кнопка Get Selected Mouth Direct Controls From Scene выбирает в списке выделенные в сцене директы. После того, как директы в списке выбраны, можно регулировать веса и смещение по оси Z спиннерами Weight и Z-move соответственно.


Свиток Lip Center - центр губ
За центры губ отвечают два софта, один для верхней губы, другой для нижней. В списках отображены директы, двигающиеся за софтами, и их веса. В верхнем списке директы верхней губы, в нижнем соответственно нижней. При выборе пунктов списка в сцене выделяются соответствующие директы. Кнопка Get Selected Lip Direct Controls From Scene выбирает в списках выделенные в сцене директы. После того, как директы в списках выбраны, можно менять их вес спиннерами Weight.


Свиток Lip Twist - выворачивание губ
Софты центров верхней и нижней губы можно вращать, и губные директы будут вращаться вместе с ними, выворачивая губы внутрь или наружу. В списках отображены директы, поворачивающиеся за софтами, и их веса. В верхнем списке директы верхней губы, в нижнем соответственно нижней. При выборе пунктов списка в сцене выделяются соответствующие директы. Кнопка Get Selected Lip Direct Control From Scene выбирает в списках выделенные в сцене директы. После того, как директы в списках выбраны, можно менять их вес вращения спиннерами Weight.


Свиток Lip Squash - сжатие/растяжение губ
Кости нижней и верхней губы могут сжиматься/растягиваться в зависимости от положения директов, создавая эффект сжатия/растяжения самой губы. В списках отображены кости и их веса для эффекта. В верхнем списке кости верхней губы, в нижнем соответственно нижней. При выборе пунктов списка в сцене выделяются соответствующие кости. Кнопка Get Selected Mouth Bone From Scene выбирает в списках выделенные в сцене кости. После того, как кости в списках выбраны, можно менять их вес для эффекта спиннерами Weight.


Окно Poses - работа с лицевыми позами и анимациями

Лицевые позы хранятся в файлах *.bfp, изображения поз - в одноименных файлах *.tga. Анимации хранятся в файлах *.bfa, а в одноименных каталогах их кадры *.tga. Одновременно можно работать либо только с позами в режиме Pose, либо только с анимациями в режиме Animation, интерфейс меняется соответственно.

Режим Pose Режим Animation

Группа Mode Type and Options с общими параметрами
Pose / Animation Радиокнопка устанавливает режим поз или анимаций
Open Poses Viewer Кнопка открывает просмотрщик поз и анимаций
Add Poses Mixer Кнопка переводит окно поз в режим миксера поз и обратно
Open Importer Window Кнопка открывает окно импортера поз и анимаций
Pick Folder with Poses (*.bfp) / Pick Folder with Animations (*.bfa) Кнопка выбирает каталог с файлами поз/анимаций. После выбора каталога предлагается создать позу по умолчанию, т.е. позу с текущим положением контролов и, если в каталоге уже есть файлы поз/анимаций - они появляются в списке справа. Лучше хранить позы и анимации в одном каталоге, тогда при переключении режима список обновляется и не нужно будет указывать другой каталог. Все указанные каталоги автоматически запоминаются, потом их можно выбирать из выпадающего списка.
Render Sel-d Включенный флажок означает, что при создании изображения позы/анимации, будут также визуализированы выделенные объекты (по умолчанию визуализируются только модель головы, глаза, зубы и язык)
Use Camera: Включенный флажок означает, что визуализация будет происходить с пользовательской камеры (по умолчанию BonyFace сам создает временную камеру)
Pick Custom Camera Кнопка выбирает пользовательскую камеру

Группа Poses для работы с позами (режим Pose)
Save current Pose from the model to file Кнопка сохраняет позу в файл
Load Pose (*.bfp file) from anywhere and apply it to the model Кнопка загружает позу из файла и применяет ее к модели
Reset Pose Кнопка применяет к модели позу по умолчанию
Apply highlighted Pose from the List to the model Кнопка применяет выбранную в списке позу к модели, также можно применить позу дважды щелкнув на пункте списка
Sel-d Включите флажок, если хотите, чтобы поза применялась только к выделенным контролам
N: Спиннер прокрутки списка с позами


Группа Animations для работы с анимациями (режим Animation)
Save current Animation from the model to file Кнопка сохраняет анимацию в файл
Load Animation (*.bfa file) from anywhere and apply it to the model Кнопка загружает анимацию из файла и применяет ее к модели
Play Animation Кнопка запускает проигрывание анимации
Apply highlighted Animation from the List to the model Кнопка применяет выбранную в списке анимацию к модели, также можно применить анимацию дважды щелкнув на пункте списка
Sel-d Включите флажок, если хотите, чтобы анимация применялась только к выделенным контролам
N: Спиннер прокрутки списка с анимациями

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

Загрузка/Применение Сохранение


Окно View - просмотрщик поз и анимаций


Простейший просмотрщик поз/анимаций. Кнопки со стрелками и спиннер осуществляют навигацию. Щелчок на изображении позы/анимации выделяет ее в списке основного окна, нажатие кнопки под изображением - применяет позу/анимацию. В случае анимаций, двойной щелчок на изображении запускает/останавливает проигрывание анимации в окне Poses.



Режим миксера поз


В этом режиме окно Poses расширяется и дополняется слайдерами, которые соответствуют 14-ти видимым позам списка. При навигации по списку слайдеры меняются соответственно. По умолчанию слайдеры не всегда будут находиться точно напротив пунктов списка, это зависит от настроек ОС. Настроить положение слайдеров можно при помощи файла BFPoses.ini, который находится в папке maxroot\ui\macroscripts\BonyFace. Откройте этот файл в блокноте, первые три строки это числа, регулирующие следующие параметры:
  1. Размер слайдера
  2. Смещение от кнопки Pick Base pose (на картинке Pipito_RESET) в пикселях
  3. Расстояние между слайдерами (это коэффициент - может быть отрицательным)
Например, для Windows 7 эти параметры равны 20 0 -3. Остальные строки в файле BFPoses.ini - сохраненные пути к каталогам поз и анимаций, эти строки можно стирать, если нужно почистить выпадающий список путей.
Принцип работы миксера следующий: на кнопку Pick Base pose назначается базовая поза, которая будет смешиваться с остальными, по умолчанию на кнопку назначается поза Reset, если таковая найдется. Передвигая слайдеры, вы добавляете к базовой позе другие позы, чем дальше вправо, тем больший процент позы будет смешиваться с базовой. Кнопка x перемещает все слайдеры в крайнее левое положение.

Импортер поз и анимаций


Для импорта поз/анимаций с одной модели на другую вам потребуется:
  1. Загруженная сцена с моделью, на которую импортируются позы/анимации (импортировать можно только на текущую модель BonyFace)
  2. Поза Reset для текущей модели
  3. Каталог с позами/анимациями, которые нужно импортировать, среди прочих поз обязательно должна быть и поза Reset импортируемой модели
Принцип работы импорта следующий: вы настраиваете проценты вектора смещения для каждого контрола по одной, двум или трем осям, добиваясь правильного положения контрола, и как только контрол занял точное положение, вектор сохраняется и используется при импорте (вектора настраиваются на позах, на анимациях настраивать ничего нельзя).
    По пунктам:
  1. Двойным щелчком на позе в списке импортера вы применяете импортируемую позу к текущей модели
  2. Если результат неудовлетворительный, изменяйте позиции всех необходимых контролов, регулируя их спиннерами All:, X: ,Y: ,Z:
  3. Кнопка Set for All записывает установленные значения спиннеров сразу на всех контролы, кнопка Set for Sel. - только на выделенные
  4. Если выделенный контрол занял правильное положение, нажмите на кнопку Set for Sel. - для точной настройки конкретного контрола (положения остальных контролов не имеют значения)
  5. Повторяйте пункты 1-4 до тех пор, пока поза не будет выглядеть как надо
  6. Повторите процедуру для всех импортируемых поз (пощелкайте на них и проверьте, правильно ли они выглядят на вашей модели, если неправильно - пункт 5)
  7. Если все настроено, нажимаете кнопку Import и позы/анимации импортируются в окно Poses

Интерфейс (входные параметры):
From: Кнопка задает путь к каталогу с импортируемыми позами/анимациями
Imported Reset Pose Поза Reset импортируемой модели
.bfi: Кнопка загружает файл .bfi с настройками импорта
Кнопка сохраняет настройки импорта в файл .bfi
To: Кнопка задает путь к каталогу, в который будут сохранены новые позы/анимации после импорта (по умолчанию совпадает с каталогом окна Poses)
Destination Reset Pose Поза Reset текущей модели

После открытия импортера все необходимые входные параметры заполняются автоматом (позы определяются по наличию слова "reset" в названии)


Интерфейс (параметры импорта, все спиннеры в процентах):
Opp. Включенный флажок означает, что значения спиннеров X, Y, Z для выделенных контролов будут сохраняться и на противоположные
Base: Общий множитель для всех контролов
All: Множитель для одновременного изменения значений спиннеров X, Y, Z
X: Процент вектора смещения по локальной оси X
Y: Процент вектора смещения по локальной оси Y
Z: Процент вектора смещения по локальной оси Z
Set for All Кнопка сохранения процентов вектора для всех контролов
Set for Sel. Кнопка сохранения процентов вектора для выделенных контролов
Show Показать значения спиннеров X Y Z для одного выделенного контрола
Selected Poses/All Poses Радиокнопка выбора, будут ли импортироваться все позы, либо только выделенные (аналогично и для анимаций)
Import Запуск процесса импорта


Окно Drive - управление слоями анимации

С помощью этого окна можно создавать слои анимации и управлять ими. Всего существует четыре типа слоев:
Base - системный слой, создается 3ds max, для него большинство инструментов окна Drive не работают
Normal - обычный слой для ключевой анимации
AutoBlink - слой для создания автоморгания или аналогичных случайных эффектов анимации
BVH - слой для переноса данных захвата движения из файлов *.bvh на контролы BonyFace



Группа Layers для работы со слоями
Активный слой выделен строкой с желтым фоном. Сделать слой активным можно дважды щелкнув на его строке. Со слоем Base нельзя сделать ничего другого, кроме как активировать. Колонки списка on/off и inc/exc соответствуют аналогичным параметрам стандартного окна Animation Layers, но через окно Drive управлять ими нельзя (да и не нужно). Любой слой кроме Base можно переименовать после создания, щелкнув в списке на его выделенной строке. Спиннер над полем Weight управляет весом выделенных слоев.
Create Layer Кнопка создает слой с именем (точнее его префиксом), указанным в поле Name: и типом, выбранным радиокнопкой Type:. Не используйте в названиях слоев никаких других символов кроме букв и цифр.
Remove Layer Кнопка безвозвратно удаляет слои, выделенные в списке. Будьте внимательны.
Change Active Layer Type Кнопка меняет тип активного слоя.

Группа Active Layer Objects для работы с контролами в активном слое
В списке находятся все контролы BonyFace. Контролы правой стороны обозначены зеленым цветом, левой - синим, центральные - желтым. В колонке Weight отображаются их веса в текущем слое (для слоя Base весов не существует), веса выделенных в списке контролов меняются соответствующим спиннером, остальные колонки списка (справа от Weight) предназначены только для слоя BVH. А именно: в колонке BVH Link To Marker печатаются названия маркеров, связанных с контролами (может быть несколько маркеров на один контрол), а в колонках X и Y - процент от смещений по осям X и Y, который будет перенесен с маркера на контрол. Маркер - анимированный объект BVH-модели, анимацию с которого нужно перенести на один или несколько контролов BonyFace.
Autoselect Controls while highlighting items При включенной кнопке контролы в сцене будут выделяться при выборе пункта списка
Select Control Кнопка выделяет в сцене выбранные в списке контролы
Highlight Selected Control in the List Кнопка выбирает в списке выделенные в сцене контролы
Auto Включенный флажок означает, что при выделении контрола в списке, назначенные ему маркеры выделяются вместе с ним
Select Marker Кнопка выделяет маркеры выбранного контрола


Группа AutoBlink Layer Options для создания анимации моргания

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

Группа Blink Poses для получения поз моргания
Get Pose with Opened Eyes Кнопка заносит в выпадающий список текущую позу из окна Poses (окно Poses должно быть открыто)
Get Pose with Closed Eyes Кнопка заносит в выпадающий список текущую позу из окна Poses (окно Poses должно быть открыто)
Clear Poses Кнопки очищают списки выбранных поз
Группа Single Blink - настройки одиночного моргания (моргнуть глазами один раз, т.е. открыть-закрыть-открыть):
Duration: - длительность моргания в кадрах. Сначала применяется поза открытых глаз, потом через время, равное duration/2 - поза закрытых глаз, и через следующие duration/2 - снова поза открытых глаз.
Variation: - вариация длительности для создания случайности. Допустим в спиннере Duration: установлено значение 4, а в Variation: 1. Тогда при анимации длительность моргания будет либо 3, либо 4, либо 5, т.е. к 4 прибавляется случайное целое число от -1 до 1 (-1 или 0 или 1). Ставьте 0 в Variation:, если хотите постоянные одинаковые моргания. Слава роботам!

Группа Double Blink - настройки двойного моргания (моргнуть глазами дважды, т.е. выполнить одно за другим два одиночных моргания):
Interval: - время в кадрах от одного одиночного моргания до другого.
Variation: - вариация длительности для создания случайности. Работает также, как и аналогичный параметр в одиночном моргании, но применяется к параметру Interval:

Группа Blink at TimeRange - настройки моргания во временном интервале (выполнить указанное число морганий разных типов):
Blinks Quantity: - общее число морганий
Double Blinks % - процент двойных морганий от общего числа
From: / To: - с какого по какой кадр будем моргать
Variation: - вариация длительности для создания случайности. Работает так: допустим мы хотим моргнуть 5 раз в интервале от 0 до 100. Т.е. моргаем каждый 20-й кадр. Поскольку временные промежутки между морганиями у живых существ редко бывают одинаковые, то к нулевому, двадцатому, 40-му, 60-му и 80-му кадру прибавляется случайное число из промежутка от -Variation: до Variation: и в полученном кадре происходит моргание.
Кнопки для создания моргания
Single Blink at Current Frame Кнопка выполняет анимацию одиночного моргания, начиная с текущего кадра
Double Blink at Current Frame Кнопка выполняет анимацию двойного моргания, начиная с текущего кадра
Perform Blink at TimeRange Кнопка выполняет анимацию моргания во временном интервале


Группа BVH Layer Options для переноса анимации с BVH-модели
Переносить анимацию (в частности mocap-анимацию) на контролы BonyFace в данный момент можно только из файлов *.bvh. Общий принцип таков: скрипту указывается файл *.bvh, он его обрабатывает и создает рядом с моделью головы модель bvh с анимированными объектами-пустышками, которые называются маркерами, ищет соответствующие маркерам контролы и если находит, то заполняет поля списка. Пользователь при необходимости редактирует поля, настраивает параметры переноса анимации, нажимает кнопку и анимация переносится с маркеров на контролы (копируется), т.е. контролы при проигрывании анимации двигаются синхронно с маркерами. Настройки можно сохранить в файл *.bfl (BonyFace Links). Это файл, в котором хранится таблица соответствий контролов и маркеров (с какого маркера на какой контрол переносить) вместе с множителями X % и Y %, поэтому если названия маркеров в разных файлах *.bvh одинаковые - можно использовать один и тот же файл *.bfl для различных файлов *.bvh.

Блок работы с файлами *.bvh и *.bfl
Верхний ряд - работа с файлами *.bvh
нижний ряд - работа с файлами *.bfl
Pick *.bvh file Кнопка выбирает *.bvh файл, загружает его и создает BVH-модель
Remove BVH model Кнопка Удаляет BVH-модель из сцены
Load Links from File Кнопка загружает таблицу соответствий контролов и маркеров из файла *.bfl
Save Links to File Кнопка сохраняет таблицу соответствий контролов и маркеров в файл *.bfl
Load Links Defaults Кнопка загружает таблицу соответствий контролов и маркеров из файла по умолчанию defaults.bfl (есть в папке скрипта)

Группа Face Markers для индивидуальной работы с маркерами
После создания BVH-модели названия всех маркеров появляются в выпадающем списке. При выборе пункта списка соответствующий маркер выделяется в сцене. Также навигацию по списку можно осуществлять спиннером N:. Связи между контролами и маркерами показаны в колонке BVH Link To Marker. Чтобы связать контролы с маркерами нужно выделить их в сцене и нажать кнопку с зеленой рукой, чтобы удалить связь с контролов - выделить нужные контролы и нажать кнопку с красной рукой.
Add Marker to the List Кнопка в данный момент не работает, т.к. список целиком заполняется сразу всеми маркерами из файла *.bvh. А в перспективе планируется переносить анимацию не только с маркеров файла *.bvh, но и вообще с любого анимированного объекта сцены. Пока это не реализовано, но кнопка есть.
Clear All Markers Кнопка в данный момент не работает, т.к. нет необходимости редактировать список, заполненный маркерами *.bvh. Но когда в перспективе будет реализован перенос анимации с любых объектов - такая кнопка понадобится. Во всяком случае место в интерфейсе зарезервировано.
Link Selection (Controls to Markers) Кнопка связывает выделенные в сцене контролы с выделенными маркерами
UnLink Controls Кнопка удаляет связи с маркерами для выделенных в сцене контролов
Select Linked Softs Кнопка выделяет все софты, связанные с маркерами (графа BVH Link To Marker не пустая)
Select Linked Directs Кнопка выделяет все директы, связанные с маркерами (графа BVH Link To Marker не пустая)
Select Linked Markers Кнопка выделяет все маркеры, связанные с софтами или директами
Opposite Включенный флажок означает, что создание связей для контролов противоположной стороны будет происходить автоматически Обратите внимание, связь между маркером и контролом появляется не только при индивидуальном переносе анимации с маркера на контрол, но и при загрузке таблицы соответствий из файла *.bfl. Т.е. кнопками Select Linked: можно выделять объекты до непосредственного переноса анимации.

Блок работы с головной костью BonyFace
Голова у говорящего персонажа не стоит на месте, но контрола для всей головы нет, поэтому анимация переносится с маркера (указывается кнопкой Pick под надписью HeadBone Marker:) сразу на головную кость
Apply HeadBone Animation Кнопка переносит анимацию на головную кость
Destroy HeadBone Animation Кнопка удаляет анимацию с головной кости

Блок создания анимации и удаления анимации по связям
Если флажок Sel. Face Links: выключен - анимация переносится на все контролы из таблицы, а если включен - только на выделенные в сцене. Спиннер отвечает за минимальное перемещение контрола, при котором создается ключ, если 0 - ключи будут создаваться в каждом кадре, как у маркеров.
Apply Face Links Кнопка переносит анимацию с маркеров на контролы в соответствии с таблицей связей
Destroy Face Links Кнопка удаляет анимацию с контролов в соответствии с таблицей связей

Группа Data Transfer для настройки переноса анимации с маркеров на контролы
После создания BVH-модели необходимо выбрать кадр, соответствующий нейтральной позе, обычно это первый кадр BVH-анимации. Эта поза аналогична позе Reset (положение контролов после рига), но для маркеров. Принцип переноса анимации основан на вычислении смещений маркеров от их позиций в нейтральной позе. Вектора смещений вычисляются и переносятся на контролы в заданных ключевых кадрах. Таким образом контролы двигаются абсолютно синхронно со связанными маркерами. Можно переносить не стопроцентный вектор, а изменять проценты по осям X и Y, меняя направление вектора при помощи соответствующих спиннеров, например, если после переноса анимации на угол рта ваш персонаж недостаточно широко улыбается, можно увеличить значение спиннера X %, поставив в нем большее значение, но оставив проценты спиннера Y % неизменными. Спиннер Z % работает только при переносе анимации на головную кость. Флажок Same % приравнивает значения спиннеров Y и Z к значению спиннера X. Спиннеры From: / To: определяют интервал, в котором будет осуществлен перенос анимации. Обращаю ваше внимание, mocap-анимация подразумевает синхронный перенос, т.е. переносить анимацию от 100 до 200 кадра с BVH-модели на 300 по 400 кадр контролов BonyFace недопустимо. При построении BVH-модели ее анимация начинается с текущего кадра, а если требуется другое время, то можно просто выделить все ее объекты и сдвинуть ключи. Точный перенос анимации требует, чтобы в одном и том же временном промежутке контролы и маркеры двигались одинаково. А после переноса уже можно и с контролов сдвинуть ключи в любое другое время.
Normal Pose at Current Frame Кнопка задает в соседнем спиннере время текущего кадра как нейтральную позу BVH-анимации
Get Range Кнопка приравнивает значения спиннеров From: / To: к временному интервалу анимации 3ds max
    Как настраивать значения X Y для контролов:
  1. Переходите в кадр, где маркеры, соответствующие требуемым контролам занимают характерное положение (например кадр с открытым ртом для контрола челюсти)
  2. Выделяете нужные контролы и изменяете значения X и Y, добиваясь правильной позы
  3. Переходите на другой кадр, дважды щелкаете на любом пункте списка контролов - таблица связей применяется ко всем контролам и можно оценить, как выглядит модель в этом кадре
  4. После того как все связи заданы и значения X Y настроены, нажимаете кнопку Apply Face Links и переносите анимацию с маркеров на контролы


Окно Face - управление выделением и положением контролов через интерфейс

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



Группа Select/Move Opposite Controls (Mirror Selection) для работы с противоположными контролами
Кнопки этой группы подразумевают под контролами круги на картинке в интерфейсе. Щелчок по контролу с зажатой клавишей Ctrl добавляет его к уже выделенным, щелчок по выделенному контролу с зажатой клавишей Alt - убирает из выделения. Контролы, расположенные на центральной вертикальной линии (у которых нет симметричных) автоматически пропускаются кнопками, работающими с противоположными сторонами. Так что специально сбрасывать с них выделение не нужно.
Opposite Кнопка выделяет противоположные контролы сбрасывая выделение с текущих (выделение прыгает с одной стороны на другую)
Symmetrical Кнопка добавляет противоположные контролы к текущим выделенным (правая сторона добавляется к левой и наоборот)
Auto Both Включенная кнопка означает, что при выделении контрола на противоположной стороне автоматически выделится симметричный
Auto Deselect Включенная кнопка означает, что при выделении контрола прежнее выделение автоматически сбросится
Move Right As Left Кнопка перемещает контролы правой стороны симметрично контролам левой
Move Left As Right Кнопка перемещает контролы левой стороны симметрично контролам правой
Sel-d Only Включенный флажок означает, что кнопки перемещения работают только с выделенными контролами (а иначе со всеми).

Остальные кнопки, огибающие белый квадрат Controls Driver буквой П, упрощают выделение основных контролов, нужных для анимации, т.к. неудобно постоянно щелкать их по кругам на картинке.
Select All Controls Кнопка выделяет все контролы
Key All Controls Кнопка создает ключи для всех контролов в текущем кадре
Кнопки выделяют/сбрасывают выделение со сплайнов-контролов глаз
Кнопки выделяют/сбрасывают выделение c контролов челюсти: JAW - главного (на подбородке), o--o - сплайна
Кнопка выделяет/сбрасывает выделение c софта языка

С боков две симметричные группы кнопок для выделения/сброса выделения контролов правой/левой стороны
R Brow - бровный софт

Top Lid. - софт верхнего века глаза
Bot. Lid - софт нижнего века глаза

R Cheek - большой софт щеки (нижний)

Corner - софт угла рта
<Top Lip - циклическое переключение от центрального софта верхней губы и далее по всем директам к углу рта, нажимайте кнопку многократно
<Bot. Lip - циклическое переключение от центрального софта нижней губы и далее по всем директам к углу рта, нажимайте кнопку многократно

Под белым квадратом кнопки для работы с перемещением контролов и настройки драйвера (зеленого квадратика)
Наведите курсор на драйвер, зажмите левую кнопку мыши, потащите и отпустите - вот и вся премудрость, чтобы подвинуть выделенный контрол. После отпускания кнопки драйвер возвращается в центр квадрата, а контрол остается на месте. Потащите драйвер опять, сдвинув контрол еще больше. Можно скрыть все контролы, выделять их через интерфейс и таскать драйвером невидимые объекты. Вообще говоря зеленым квадратиком можно елозить по сцене любые выделенные объекты.
Undo - Кнопка отмены последнего перемещения контрола драйвером. Если при нажатии держать зажатой клавишу Shift - выполнится еще и обычный Undo 3ds max
Reset - Кнопка возврата всех контролов в прежнее положение. ВАЖНО: для окна Face прежним положением является не поза Reset, а положение контролов на момент открытия окна Face
H - Restrict Driver Horizontal Кнопка заставляет драйвер двигаться строго по горизонтали
V - Restrict Driver Vertical Кнопка заставляет драйвер двигаться строго по вертикали
Driver Sensitivity: - спиннер, определяющий чувствительность драйвера. Чем больше значение, тем дальше при таскании драйвера будут сдвигаться контролы


Требования к модели

    Требования к модели, необходимые для корректной работы BonyFace:
  1. Сетка Editable Poly
  2. Модель расположена таким образом, чтобы в виде Front была прямо направлена лицом к пользователю
  3. Масштаб модели 100% по всем осям (используйте Reset XForm)
  4. Отдельные объекты каждого глаза и языка
  5. Локальная ось Z каждого глаза направлена по линии взгляда
  6. Локальные оси каждого глаза "смотрят" в одни и те же стороны
  7. Все вершины сетки имеют положительную координату Z (модель находится выше мировой плоскости XY)
  8. Если на модель наложен модификатор Skin, то он не должен быть пустым (без рига)
  9. Если на модель наложен модификатор Skin, то он не должен быть наложен на другие объекты


    Требования к модели, необходимые для корректной работы алгоритма выравнивания сплайнов:
  1. Замкнутые контуры ребер глаз и рта (для проверки выделите одно ребро контура и нажмите кнопку Loop)
  2. Обязательно должна быть центральная вертикальная линия вершин (линия симметрии модели)
  3. Ребра горизонтальных линий лба и центральной вертикальной линии не должны иметь более 4-х вершин (кнопка Loop должна выделять все эти ребра)


Информацию по BonyFace и ссылки на демонстрационные видеоролики можно найти на официальном русском сайте BonyFace


Яндекс.Метрика