Наконец я доделал анимацию. По сравнению с прошлым разом, я сделал поддержку других типов анимации кроме анимации позиции, а именно анимацию поворота и масштаба. Правда, не припомню, когда мне нужна была в играх анимация масштаба, ну да пусть будет.
Кроме того я сделал возможность экспортирования моделей с иерархическими структурами. То есть чайлды-паренты. В связи с чем вот вам новые спецификации форматов:
Формат сцены:
Формат AAF (ABTOMAT Animation Format)
Версия 2
ГОЛОВНИК
10 байт - название формата
2 байта - номер версии
2 байта - длина служебной строки
сама служебная строка
2 байта - длина анимации
2 байта - кол-во объектов, имеющих анимацию
ОБЪЕКТЫ
// Общая инфа
2 байта - длина имени объекта
само имя объекта
1 байт - флаги (2 = анимирована позиция, 4 = анимирован поворот, 8 = анимирован масштаб, or-комбинация)
АНИМАЦИИ
1 байт - тип контроллера анимации (1 = Position_XYZ)
2 байта - кол-во ключей
КЛЮЧИ
// Для позиции
4 байта - время
4 байта - X
4 байта - Y
4 байта - Z
И формат анимации:
Формат AAF (ABTOMAT Animation Format)
Версия 2
ГОЛОВНИК
10 байт - название формата
2 байта - номер версии
2 байта - длина служебной строки
сама служебная строка
2 байта - длина анимации
2 байта - кол-во объектов, имеющих анимацию
ОБЪЕКТЫ
// Общая инфа
2 байта - длина имени объекта
само имя объекта
1 байт - флаги (2 = анимирована позиция, 4 = анимирован поворот, 8 = анимирован масштаб, or-комбинация)
АНИМАЦИИ
// Порядок их: положение, поворот, размер в соответствии с ключами
2 байта - кол-во ключей
КЛЮЧИ
// Для позиции
4 байта - время
4 байта - X
4 байта - Y
4 байта - Z
// Для поворота
4 байта - время
4 байта - quat.x
4 байта - quat.y
4 байта - quat.z
4 байта - quat.w
// Для масштаба
4 байта - время
4 байта - X
4 байта - Y
4 байта - Z
599195086@qip.ru (09:04:33 22/07/2013)
10 байт - название формата
2 байта - номер версии
2 байта - длина служебной строки
сама служебная строка
2 байта - кол-во объектов
ОБЪЕКТЫ
// Общая инфа
2 байта - количество чайлдов
2 байта - длина имени объекта
само имя объекта
2 байта - кол-во сурфейсов
// Трансформации
// Позиция
4 байта - X
4 байта - Y
4 байта - Z
// Поворот
4 байта - quat.x
4 байта - quat.y
4 байта - quat.z
4 байта - quat.w
// Масштаб
4 байта - Масштаб X
4 байта - Масштаб Y
4 байта - Масштаб Z
СУРФЕЙСЫ
4 байта - число вершин
4 байта - число индексов
ВЕРШИНЫ
4 байта - X
4 байта - Y
4 байта - Z
4 байта - U
4 байта - V
4 байта - W
4 байта - NX
4 байта - NY
4 байта - NZ
ИНДЕКСЫ
4 байта - первая вершина
4 байта - вторая вершина
4 байта - третья вершина
Встречайте человека-чайника! Он сделан топором за пять минут, как и его анимация! Но это не главное. Главное то, что он является сложной иерархической структурой: его туловище припаренчено к корню сцены, предплечья припаренчены к туловищу, запястья — к предпречьям, аналогично устроены ноги, ну и голова просто к туловищу. Таким образом протестирована возможность иметь сколь угодно сложные сцены с точки зрения иерархии а также корректность работы анимации.