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

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

Перейти к: навигация, поиск
Эта страница страница помечена как находящиеся в процессе перевода с: 16 сентября 2010.


Содержание

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

Описание

В этом документе мы объясним различные типы анимации, имеющиеся в 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

After doing this you will see the root of your hierarchy automatically added to the Export Bones list. This list only needs to store the root(s) of the chain of bones you wish to export.

Scroll down to the Bone Export area of the exporter. Notice the root bone is listed in the bone export list. Press the Export Bones button and choose a location for the animation. This should be within a path in your game folder so that the animation will successfully pass through the resource compiler. This will make sure that any compression settings you define in the CBA file (Crytek Batch Animation) used for batch processing files.

Sandbox ImportExportAnim image011.jpg


Exporting an Upperbody Animation

Exporting an upperbody animation is much the same as exporting a fullbody animation. You need to select a root of a hierarchy in the skeleton and add that to the Export Bones list manually.

Select the Bip01 Spine bone; click Clear List in the Bone Export options and then Add Selected. This will add the bone “Bip01 Spine” to the node list. You are now ready to export the animation from the Bip01 Spine bone and all of its children in the hierarchy.

Once exported, the animation will only contain the tracks for the Spine and its descendants.

Previewing the Animation

In order to preview the animation you will need to add it to a CAL file (Crytek Animation List). This simple text file defines the animations that your character will use and their location. Below is a basic example.

  1. filepath = animationshumanmale=

$Include = objectscharactershumanondemand.cal

//-------COMBAT------- combat_idle_nw_01 = combatcombat_idle_nw_01.caf

The #filepath command points this particular file to a folder used only for male animations.

The $Include allows your character to read from multiple cal files. In this example we separated the cinematic animations in a list that is only loaded on demand (so these animations are loaded and unloaded from memory.

// simply defines a comment.

The last line is defining the name of the animation and its location in a subfolder of “animationshumanmale” called combat. The name given on the left is what will be seen in the editor and does not have to match the actual animation’s file name.

For the SDK character we added this example cal file.

  1. filepath = animationshumanmale

run = combat un.caf

Create an example that is similar to the above and replace the name with the name of the animation you created. The cal file must be located in the same folder as your character and have the same name as this CHR file, except with the cal file extension.

When starting the editor using the above example the animation list will display one animation called run or if you replaced the names should show the name you gave the animation. Click to play it.

Previewing an Upperbody Animation

Repeat the steps above by adding the upperbody animation to the CAL file. Once this is added to the list, start the Editor and open the Character Editor.

Start by first clicking on the fullbody animation in the animation list. You will see the animation looping in the 3d view. Below the Choose Base Character button you will see a dropdown box defining which layer is currently playing.

Sandbox ImportExportAnim image012.jpg

It should say “Primary”. If not, press the “Stop All” button, select the primary layer and start the animation again.

Next, select the Secondary.1 layer and click on the upperbody animation you exported earlier in the animation list. This will begin to play the animation using the tracks that were exported from the Spine down through its hierarchy. You should still see the legs moving in the same way as the fullbody animation, with the upperbody completely overwritten by the second animation.

Creating a FSQ

This section is detailed in the Facial Editor documentation.