Resident evil 5 .chn - частина перша

 Вперше я зацікався файлами з розширенням .chn коли дізнався, що RE5 підтримує симуляцію фізики для кісткових ланцюгів. Експериментальним шляхом було встановлено що два типа файлів в .arc  архіві відповідають за це: .ccl та .chn. Якщо вірити написаному тут  то ccl розшифровується як chain collision, а  chn як просто chain. З того що в далося встановити ccl (начебто) являє собою базу даних з примітивами, на які посилається chn.  Сам же ж файл .chn описує самі ланцюжки з кістками.

Я накидав скрипт для парсингу в kaitai  який працює досить добре, але не для всх випадків

Структура:

Заголовок

Має розмір в 16 байт. Перші 4 байта - це магічне слово CHN. , другі 4 байта 0x80618 - дивне число яке повторюється в кожному файлі, більше того, воно повторюються в .ccl. Наступні 4 байта - це розмір файлу без заголовку. А ось далі цікавіше, перший байт - це кількість блоків, інші три байта або забиті нулями, або мають якісь незрозумілі значення


Блок

Заголовок блоку

Блок має розмір в 32 байта. Перший байт це кількість кісток(секцій) в тілі блока, наступні три байта невідомі, далі 4 байта - це локальний відступ до тіла блока. Тобто, щоб отримати абсолютний відступ для першого блоку, потрібно до відступу додати 16 байт з заголовка, для другого блоку це буде 16 + 32(розмір першого блоку) і т д. Наступні 8 байт невідомі. Далі йдуть три float, ймовірно це значення сили (гравітації) яка діє на кісти. Принаймні їх зміна у редакторі на це натякає. Наступні 4 байта невідомі.



Тіло блоку

Саме тіло доволі велке, займає 96 байт, більшість з яких невідомі. Перші 4 байта - це якийсь ідентифікатор, де значення = 3(ймовірно і 7) - це батьківська кістка, 2 - дочірня, далі йде байт  з індексом кітки(anim_map_index в файлі .mod) , послідуючі 3 байта невідомі. Наступні 8 байт - це незрозумілі данні, в деяких файла це щось схоже на шляхи(pl0000.chn).

Після цього блок з 8 floats, що вони означають - невідомо як і решта інформація до 64го байту, цей і наступний байт це також індекси для кісток, ймовірно для батьківської і дочірньої




Comments