ANIM — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
(Чутка дополнил)
(структуры)
Строка 1: Строка 1:
{{stub}}
+
 
 
Файл '''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 байта - Размер файла
20 байт - Неизвестно
+
  4 байта - Смещение на таблицу перераспределения файла в памяти
 +
  4 байта - Смещение на таблицу перераспределения файла в памяти (повторяется)
 +
  4 байта - количество смещений в таблице перераспределения файла в памяти
 +
  8 байт - выравнивание
  
Таблица оффсетов на секции анимаций от 1 до общего колличества, читается из GAME.DTZ
+
Таблица смещений на секции анимаций от 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]