ANIM — различия между версиями
Материал из GTAModding.ru
Viger74 (обсуждение | вклад) (Чутка дополнил) |
Majestic (обсуждение | вклад) (структуры) |
||
Строка 1: | Строка 1: | ||
− | + | ||
Файл '''ANIM''' - это директория анимаций в GTA:LCS/VCS, и этот формат используется только в этих играх. | Файл '''ANIM''' - это директория анимаций в GTA:LCS/VCS, и этот формат используется только в этих играх. | ||
Строка 6: | Строка 6: | ||
На практике доказано, что структура файлов в GTA:LCS и GTA:VCS отличаются друг от друга, а конкретно кость Root имеет другой тип данных и в GTA:VCS анимация коленей имеет меньше кадров в секунду, чем анимация других костей. | На практике доказано, что структура файлов в GTA:LCS и GTA:VCS отличаются друг от друга, а конкретно кость Root имеет другой тип данных и в GTA:VCS анимация коленей имеет меньше кадров в секунду, чем анимация других костей. | ||
− | == | + | ==Заголовок== |
− | + | Заголовок имеет следующую структуру: | |
<pre> | <pre> | ||
Заголовок: | Заголовок: | ||
− | 4 байта - Заголовок файла anim(читается наоборот как mina) | + | 4 байта - Заголовок файла anim (читается наоборот как mina) |
4 байта - Пустая секция(NULL) | 4 байта - Пустая секция(NULL) | ||
− | 4 байта - | + | 4 байта - Размер файла |
− | + | 4 байта - Смещение на таблицу перераспределения файла в памяти | |
+ | 4 байта - Смещение на таблицу перераспределения файла в памяти (повторяется) | ||
+ | 4 байта - количество смещений в таблице перераспределения файла в памяти | ||
+ | 8 байт - выравнивание | ||
− | Таблица | + | Таблица смещений на секции анимаций от 1 до общего колличества, располагается сразу после заголовка, количество смещений читается из GAME.DTZ |
(каждый оффсет по 4 байта) | (каждый оффсет по 4 байта) | ||
</pre> | </pre> | ||
+ | |||
+ | ==Анимация== | ||
+ | |||
+ | [4b] dword - смещение на таблицу анимаций для костей | ||
+ | [24b] string - имя анимации | ||
+ | [2b] word - количество строк в таблице анимаций для костей (т.е число костей, задействованных в анимации) | ||
+ | [2b] - неизвестно | ||
+ | [4b] float - полное время проигрывания анимации в секундах | ||
+ | [4b] - неизвестно (только VCS) | ||
+ | |||
+ | ====Таблица задействованных в анимации костей==== | ||
+ | |||
+ | [2b] word - флаги используемых трансформаций для кости | ||
+ | [2b] word - количество кадров анимации кости | ||
+ | [4b] dword - смещение на таблицу кадров анимации | ||
+ | [2b] word - ID кости | ||
+ | [2b] - неизвестно | ||
+ | |||
+ | |||
+ | ====Флаги трансформаций костей==== | ||
+ | С помощью данных флагов игра определяет какие секции трансформаций необходимо загружать для данной кости. | ||
+ | Соответственно если кость имеет только вращения - шаг чтения кадра будет равен 10 байт, если вращения и перемещения - 16 байт и тд. | ||
+ | |||
+ | 0000000000000001 - анимация имеет кватернион вращения (Rotation) | ||
+ | 0000000000000010 - кость имеет координаты перемещения (Translation) | ||
+ | 0000000000000100 - кость имеет скайлинг (Scale), наличие данной секции не в анимациях LCS VCS замечено не было | ||
+ | 0000000000001000 - неизвестно, обычно присутствует в VCS и PSP версии LCS | ||
+ | 0000000000010000 - неизвестно, обычно присутствует в PS2 версии LCS | ||
+ | |||
+ | ====Кадр==== | ||
+ | |||
+ | Здесь представлена общая последовательность расположения секций. Шаг чтения и загружаемые данные для конкретной кости определяются ее флагами трансформации. | ||
+ | |||
+ | [2b] Half float* - Rotation quat X | ||
+ | [2b] Half float - Rotation quat Y | ||
+ | [2b] Half float - Rotation quat Z | ||
+ | [2b] Half float - Rotation quat W | ||
+ | [2b] Half float - Время (необходимо умножить на 30) | ||
+ | [2b] Half float - Translation X | ||
+ | [2b] Half float - Translation Y | ||
+ | [2b] Half float - Translation Z | ||
+ | *Информация по Half precision float тут: [http://ru.wikipedia.org/wiki/%D0%A7%D0%B8%D1%81%D0%BB%D0%BE_%D0%BF%D0%BE%D0%BB%D0%BE%D0%B2%D0%B8%D0%BD%D0%BD%D0%BE%D0%B9_%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D0%B8] | ||
+ | |||
+ | |||
+ | |||
[[Категория:GTA LCS]] [[Категория:GTA VCS]] | [[Категория:GTA LCS]] [[Категория:GTA VCS]] |
Версия 01:07, 12 апреля 2014
Файл ANIM - это директория анимаций в GTA:LCS/VCS, и этот формат используется только в этих играх.
В отличии от GTA:LCS, помимо игровой анимации, в GTA:VCS анимации катсцен также хранятся в данном формате.
На практике доказано, что структура файлов в GTA:LCS и GTA:VCS отличаются друг от друга, а конкретно кость Root имеет другой тип данных и в GTA:VCS анимация коленей имеет меньше кадров в секунду, чем анимация других костей.
Содержание |
Заголовок
Заголовок имеет следующую структуру:
Заголовок: 4 байта - Заголовок файла anim (читается наоборот как mina) 4 байта - Пустая секция(NULL) 4 байта - Размер файла 4 байта - Смещение на таблицу перераспределения файла в памяти 4 байта - Смещение на таблицу перераспределения файла в памяти (повторяется) 4 байта - количество смещений в таблице перераспределения файла в памяти 8 байт - выравнивание Таблица смещений на секции анимаций от 1 до общего колличества, располагается сразу после заголовка, количество смещений читается из GAME.DTZ (каждый оффсет по 4 байта)
Анимация
[4b] dword - смещение на таблицу анимаций для костей [24b] string - имя анимации [2b] word - количество строк в таблице анимаций для костей (т.е число костей, задействованных в анимации) [2b] - неизвестно [4b] float - полное время проигрывания анимации в секундах [4b] - неизвестно (только VCS)
Таблица задействованных в анимации костей
[2b] word - флаги используемых трансформаций для кости [2b] word - количество кадров анимации кости [4b] dword - смещение на таблицу кадров анимации [2b] word - ID кости [2b] - неизвестно
Флаги трансформаций костей
С помощью данных флагов игра определяет какие секции трансформаций необходимо загружать для данной кости. Соответственно если кость имеет только вращения - шаг чтения кадра будет равен 10 байт, если вращения и перемещения - 16 байт и тд.
0000000000000001 - анимация имеет кватернион вращения (Rotation) 0000000000000010 - кость имеет координаты перемещения (Translation) 0000000000000100 - кость имеет скайлинг (Scale), наличие данной секции не в анимациях LCS VCS замечено не было 0000000000001000 - неизвестно, обычно присутствует в VCS и PSP версии LCS 0000000000010000 - неизвестно, обычно присутствует в PS2 версии LCS
Кадр
Здесь представлена общая последовательность расположения секций. Шаг чтения и загружаемые данные для конкретной кости определяются ее флагами трансформации.
[2b] Half float* - Rotation quat X [2b] Half float - Rotation quat Y [2b] Half float - Rotation quat Z [2b] Half float - Rotation quat W [2b] Half float - Время (необходимо умножить на 30) [2b] Half float - Translation X [2b] Half float - Translation Y [2b] Half float - Translation Z *Информация по Half precision float тут: [1]