Импорт и экспорт анимации

Материал из CryWiki Russia

Версия от 16:08, 24 декабря 2010; DCamer (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Содержание

Импорт и экспорт анимации

Описание

В этом документе мы объясним различные типы анимации, имеющиеся в CryEngine 2, а также несколько уроков о том, как создать свою собственную анимацию.


Типы файлов анимация

CGA — Crytek Geometry Animation (Анимация геометрии)

CGA-файлы, создаются при экспорте одного или нескольких объектов, которые были анимированы в 3D-пакетах, таких как 3ds Max. При экспорте в файле хранятся как объект(ы), так и стандартная анимация. Эти объекты не требуют никакой иерархии или костей, отвечающих за контроль над сеткой.

Общие правила

  • CGA-файлы должны использовать TCB-контроллеры лля треков вращения и позиции (Rotation и Position, соответственно).
  • Для создания цикла (повторение анимации) в 3ds Max необходимо назначить в окне «Out of Range» (Диапазон вывода) тип «Loop» (Цикл).
  • Исходные файлы должны быть помещены туда же, куда и объект при экспорте.

ANM — CGA Animation File (Файл анимации CGA)

ANM-файлы используются непосредственно CGA-объектами. Они должны быть в той же папке, куда был экспортирован CGA-объект, и требуют конкретного наименования для работы с ними. Каждый дополнительный ANM-файл должен содержать имя родительского CGA-объекта в качестве префикса. К примеру:

Vehicle_b.cga — Транспортный объект(ы) и стандартная анимация.
Vehicle_b_door1_exit .anm — Ключи анимации, хранящие анимацию двери, когда персонаж выходит из транспортного средства.
Vehicle_b_door1_enter.anm — Ключи анимации, хранящие анимацию двери, когда персонаж входит в транспортное средство.
Vehicle_b_door2_exit.anm и так далее.

CAF — Crytek Animation File (Файл анимации)

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

FSQ — Facial Sequence (Лицевая последовательность)

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


Создание CGA-объекта

Подготовка сцены

В вашем 3D-приложении, создайте несколько примитивов в сцене.

Sandbox ImportExportAnim image001.jpg

Измените тип контроллеров для треков позиции и вращение на TCB.

Sandbox ImportExportAnim image002.jpg

Создайте анимацию для объектов на сцене.

Экспортирование ассета

Выберите все объекты и добавьте их в список «Object Export» (Экспорт объектов) нажав «Add Selected» (Добавить выбранные).

Sandbox ImportExportAnim image003.jpg

Параметр «Export File per Node» (Экспортировать каждый узел отдельно), размещённый чуть ниже кнопки «Export Nodes» (Экспортировать узлы) в группе «Geometry Export Options» (Параметры экспорта геометрии) позволяет вам, если галочка снята, экспортировать эти 3 объекта как один CGA-файл или, если галочка поставлена, экспортировать как 3 отдельных файла. Сейчас снимите этот параметр, чтобы у нас экспортировался только один файл.

Затем убедитесь, что выбран тип CGA в выпадающем списке «Export To» (Экспортировать как).

Sandbox ImportExportAnim image004.jpg

Затем нажмите кнопку «Export Nodes». Это позволит экспортировать объект в ту же папке, где находится исходный файл (который должен быть расположен в каталоге с игрой).

Файлу будет назначено исходное имя файла, если вы снимите галочку с «Export File per Node» и поставив на «Custom Filename» (Произвольное имя файла). Это позволит вам выбрать уникальное имя файла, нажав на многоточие (…) и введя имя файла. Это недоступно для экспорта нескольких объектов за раз, даже используя параметр «Export File per Node».

Предпросмотр ассета

Чтобы увидеть ассет, вам нужно открыть редактор CryENGINE 2. В верхней правой части экрана вы увидите зеленый значок человечка. Он открывает «Character Editor» (Редактор персонажей).

Sandbox ImportExportAnim image005.jpg

В верхней левой части окна находится выпадающее меню «File» (Файл). Щеклкните «File→Open» (Файл→Открыть) и перейдите к папке, в которую вы экспортировали ваш CGA-файл. После открытия файла вы увидите объект(ы) в окне 3D-проекции.

Каждый CGA-файл содержит стандартную анимации, которую можно найти в списке анимаций. Щелкните по имени «Default» чтобы начать воспроизведение анимации.

Sandbox ImportExportAnim image006.jpg

Экспортирование ANM-файла

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

Начните с создания второй дополнительной анимации для объекта в вашем 3D-пакете.

Перейдите в раздел «Object Export» (Экспорт объекта) и поставьте галочку «Custom Filename».

Sandbox ImportExportAnim image007.jpg

Щелкните кнопку с многоточием (…) и введите имя файла, используйте имя CGA-объекта в качестве префикса.

Sandbox ImportExportAnim image008.jpg

Например, test.cga содержит объект который вы анимируете, плюс в нём находится стандартная анимация. В этом случае необходимо указать вашеиу ANM-файлу имя test_[?].anm, где вопросительный знак — название дополнительной анимации.

Нажмите кнопку «Export Nodes». Если ANM-файл находится в той же папке, что и CGA-объект, то анимация появится в списке анимаций редактора персонажей.

Предварительный просмотр объекта с использованием направляющих описан в выше написанном уроке об экспорте CGA.

Экспортирование CAF-файл

Подготовка

CAF-файл является файлом скелетной анимации, который требует сетку с костями и применяние модификатора.

Сначала создайте сетку, скелет который будет деформировать сетку и примените модификатор взвешивания, такой как Skin или Physique. На рисунке ниже показана основная сетка и основной скелет

Sandbox ImportExportAnim image009.jpg

Теперь создайте анимацию скелета — убедитесь, что вы сохранили стандартную позу как ключ в кадре 0 или с помощью функции, к примеру, Set Skin Pose в 3ds Max.

Экспорт анимации всего тела

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

Убедитесь, что флажки «Add related bones» и «Add whole skeleton» отмечены. Эти функции проверяют корень персонажа и автоматически добавляет его в список «Bones export». Выберите сетку вашего объекта и нажмите кнопку «Add Selected» в разделе «Object Export» экспортёра.

Sandbox ImportExportAnim image010.jpg

После этого, вы увидите что корень иерархии автоматически добавится в список «Export Bones». Этот список необходим для сохранения корневой цепи или цепей костей, которые вы хотите экспортировать.

Перейдите в область «Bone Export». Обратите внимание, что корневая кость, находится в списке «Bone Export». Нажмите кнопку «Export Bones» и выберете место для сохранения анимации. Место должно быть в пределах папки с игрой, чтобы анимация успешно прошла через компилятор ресурсов. Это позволит убедиться, что любые параметры сжатия, определённые в файле CBA («Crytek Batch Animation» — «Пакетная анимация»), используемом для пакетной обработки файлов.

Sandbox ImportExportAnim image011.jpg


Экспорт анимации верхней части тела

Экспорт анимации верхней части тела похож на экспорт анимации всего тела. Вы должны выбрать корень иерархии в скелете и добавить егл в список «Export Bones» вручную.

Выберите кость «Bip01 Spine», нажмите «Clear List» («Очистить список») в параметрах «Bone Export», а затем нажмите «Add Selected». Это позволит добавить кость «Bip01 Spine» в список узлов. Теперь, всё готово для экспорта анимации кости «Bip01 Spine» и все дочерних костей в иерархии.

После экспорта, анимация будет содержать треки «Spine» и его потомки.

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

Для того, чтобы просмотреть анимацию, вам необходимо добавить её в CAL-файл («Crytek Animation List» — «Список анимаций»). Это простой текстовый файл определяющий анимации, которые ваш персонаж будет использовать и их расположение. Ниже приведен простой пример.

#filepath = animations/human/male
$Include = objects/characters/human/ondemand.cal

//-------COMBAT-------
combat_idle_nw_01 = combat/combat_idle_nw_01.caf

Команда #filepath указывает на папку, используемую только для анимации мужских персонажей.

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

// просто определяет комментарии.

Последняя строка определяет название анимации и ее расположение в подпапке «animations/human/male», в данном случаем в папке «combat». Название, данное слева, и будет отображаться в редакторе и не должны совпадать с названием файла фактической анимации.

Для SDK-персонажа, мы добавили вот этот CAL-файл.

#filepath = animations/human/male
run = combat un.caf

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

При запуске редактора, с использованием данного примера, список анимаций будет содержать одну анимацию названную «Run» или, если вы заменили название, то будет отображено данное вами название анимации. Нажмите но названию, чтобы воспроизвести анимацию.

Предпросмотр анимации верхней части тела

Повторите описанные выше действия, но добавьте анимации верхней части тела в CAL-файл. Как они будут добавлены в список, запустить редактор и откройте «Character Editor».

Сначала нажмите на анимацию всего тела в списке анимаций. Вы увидите цикл анимации в окне 3D-просмотра. Чуть ниже кнопки «Choose Base Character» вы увидите выпадающий список слоев, которые в данный момент проигрываются.

Sandbox ImportExportAnim image012.jpg

Вероятно им будет «Primary». Если нет, нажмите кнопку «Stop All», выберите основной слой и запустите анимацию снова.

Затем выберите слой «Secondary.1» и нажмите на анимацию части тела, которую вы ранее экспортированы в список анимаций. Это позволит запустить воспроизведение анимации с использованием треков, которые были экспортированы с костей Spine и далее по иерархии. Вы должны всё ещё видить ноги, движущие в том же направлении, что и анимация всего тела, верхняя часть полностью перезаписала вторую анимацию.

Создание FSQ

Это раздел детально описан в документации по «Facial Editor».