RenderWare binary stream file

Материал из GTAModding.ru
Перейти к: навигация, поиск

RenderWare binary stream files - это иерархически структурированные файлы данных, используемые в графическом движке RenderWare 3.x. Использовались Rockstar Games в серии GTA (GTA III, Vice City, San Andreas) на PC, XBOX и PS2 (не PSP!).

В GTA модели имеют расширение .DFF, текстуры - .TXD. Другие возможные форматы, не используемые в линейке GTA - *.rws, *.bsp и *.dma. В GTA III некоторые анимации катсцен имеют расширение *.anm.

Формат файла

Файл разделён на секции. Каждая секция содержит заголовок размером 12 байт и может содержать данные, другие подсекции, или вообще быть пустой. Содержание секции определяется ID (идентификатором) секции, который содержится в заголовке.

Ниже представлена структура, общая для всех файлов RenderWare - заголовок секции:

4 byte - DWORD - идентификатор секции (ID секции)
4 byte - DWORD - размер секции включая данные и дочерные секции.
4 byte - DWORD - идентификатор версии RW

Версия RW зависит от версии движка, который использовался для экспорта файлов. Идентификатор должен быть одинаковый во всех заголовках секций в одном файле. В противном случае совместимость будет сильно ограничена.


Глоссарий RenderWare

RpAnim – простейшая анимационная система RenderWare. Используется для анимирования RpAtomics. Может быть использована только для примитивной анимации персонажей. Анимационные данные RpAnim встроены в объект RpClump и, следовательно, экспортируются в DFF-файл. На данный момент система устарела, и вместо неё используется RpHAnim.

RpAtomic – RenderWare atomic используется для хранения информации об одиночном объекте в иерархии. В большинстве случаев, каждый узел, связывающий полигоны в сцене Maya генерируется в RpAtomic. Каждый экспортированный экземпляр RpAtomic будет иметь в себе один экземпляр RpGeometry для хранения в нём полигонов и треугольников. RpAtomics используется в динамических моделях и моделях персонажей или в других подобных. Статические объекты обрабатываются RpWorld и RpWorldSector.

RpClump – кламп RenderWare используется для хранения информации об иерархии объектов. Кламп содержит в себе число RpAtomics и соответствующую иерархическую информацию. Объекты RenderWare atomin в клампе могут быть анимированы при помощи одной из анимационных систем RenderWare. DFF-файл содержит один RpClump. Обычно одному клампу при экспорте соответствует одна анимационная иерархия (например, персонаж, куча ящиков). RpGeometry – Геометрическое хранилище RenderWare, содержащее данные о точках и треугольниках отдельного объекта.

RpHAnim – новейшая анимационная система RenderWare. Эта система может анимировать как твердые объекты, так и кости, деформирующие кожу персонажей. Анимационные данные RpHAnim экспортируются в ANM-файлы.

RpSkin – этот компонент RenderWare состоит из двух частей. Первая - анимационная. Она содержит данные о перемещениях костей. Эти данные сохраняются в SKA-файлах. На данный момент система устарела. Вторая часть RpSkin отвечает за деформацию кожи персонажей при перемещениях костей. Эта чать RpSkin не устарела.

RpUserData – объект RenderWare, необходимый для совмещения данных пользователя с геометрией моделей. Эти данные должны быть прикреплены к RpGeometry или RpWorldSector. Maya Blind Data конвертируется RpUserData при помощи специального инструмента.

RpWorld – RenderWare World определяет статичные сцены. Данные сцены содержат несколько объектов RpWorldSector, которые, в свою очередь, содержат данные о моделях. Эти объекты организованы так, чтобы скорость рендеринга была макимальной.

RpWorldSector – содержит данные о треугольниках статических моделей. Обычно используется для неизменяемых во время разработки игры пейзажей.