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!), а так же в играх Manhunt и Bully.

В 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 зависит от версии движка, который использовался для экспорта файлов. Идентификатор должен быть одинаковый во всех заголовках секций в одном файле. В противном случае совместимость будет сильно ограничена.

GlobeLang.png Эта статья требует полного или частичного перевода.
Часть этой статьи написана на иностранном языке. Если вы знаете его, пожалуйста, помогите с ее переводом на русский язык.

---RenderWare Glossary---

RpAnim – The simplest RenderWare animation system. It is used to animate RpAtomics relative to each other. It can therefore only be used for rigid body animation. RpAnim animation data is embedded into the RpClump object and therefore the exported .dff file. This animation system is now obsolete and we recommend new projects make use of RpHAnim.

RpAtomic – A RenderWare atomic is used to store information about a single object in a hierarchy. Typically, each node in a Maya scene that has polygons associated with it will generate an RpAtomic. Each exported RpAtomic will have a single RpGeometry to store the triangles and polygons in it. RpAtomics are intended for use in dynamic models and represent all or part of a character, prop or similar moveable model. Static models are processed separately as RpWorld and RpWorldSector objects.

RpClump – a RenderWare clump is used to store information about a hierarchy of objects. The clump will contain a number of RpAtomics and the hierarchy information relating them. The atomics in the clump can be animated relative to each other using one of the RenderWare animation systems. A .dff file contains a single RpClump. Typically you will export a separate clump for each animated hierarchy in your application (e.g. characters, stacks of crates etc). RpGeometry – A RenderWare geometry stores the triangle and vertex data for a single object.

RpHAnim – The newest RenderWare animation system. This system can be used to drive either hierarchies of rigid objects or hierarchies of bones that deform a skin. The RpHAnim animation data is exported as a .anm file.

RpSkin – This RenderWare component consists of two parts. The first part is an animation system to store the motion of a hierarchy of bones relative to one another. This animation data is stored as a .ska file. This animation system is now obsolete and we recommend new projects make use of RpHAnim. The second part of RpSkin is a vertex deformation system that links vertices to up to 4 bones and deforms them as the bones move. This part of RpSkin is not obsolete.

RpUserData – a RenderWare object used to store user-defined data with model geometry. This data can be attached to RpGeometry or RpWorldSector objects. Maya Blind Data is converted to RpUserData by the exporter.

RpWorld – A RenderWare World defines a static scene. The scene data consists of one or more RpWorldSector objects which contain the actual model data. These objects are organised in a specific way to maximize rendering speed.

RpWorldSector – Contains the triangle data used to describe a static model. Generally used for scenery as the data cannot be changed.