RenderWare binary stream file — различия между версиями
Материал из GTAModding.ru
Solom (обсуждение | вклад) |
|||
(не показаны 9 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
− | + | '''RenderWare binary stream files''' - это иерархически структурированные файлы данных, используемые в графическом движке [[RenderWare]] 3.x. Использовались Rockstar Games в серии GTA ([[GTA_3|GTA III]], [[Vice City]], [[San Andreas]]) на PC, XBOX и PS2 (не PSP!), а так же в таких играх, как Manhunt и Bully. Также, весьма схожий формат использовался в GTA 3 Anniversary Edition. | |
− | '''RenderWare binary stream files''' - это иерархически структурированные файлы данных, используемые в графическом движке [[ | + | |
− | В GTA модели имеют расширение .[[DFF]], текстуры - .[[TXD]]. Другие возможные форматы, не используемые в линейке GTA - | + | В GTA модели имеют расширение .[[DFF]], текстуры - .[[TXD]]. Другие возможные форматы, не используемые в линейке GTA - RWS, BSP и DMA. В GTA III некоторые анимации катсцен имеют расширение .[[ANM]]. |
==Формат файла== | ==Формат файла== | ||
− | Файл разделён на секции. Каждая секция содержит заголовок размером 12 байт и может содержать данные, другие подсекции, или вообще быть пустой. Содержание секции определяется ID(идентификатором) секции, который содержится в заголовке. | + | |
+ | Файл разделён на секции. Каждая секция содержит заголовок размером 12 байт и может содержать данные, другие подсекции, или вообще быть пустой. Содержание секции определяется ID (идентификатором) секции, который содержится в заголовке. | ||
Ниже представлена структура, общая для всех файлов RenderWare - <b>заголовок секции</b>: | Ниже представлена структура, общая для всех файлов RenderWare - <b>заголовок секции</b>: | ||
− | 4 byte - DWORD - идентификатор секции (ID секции) | + | '''4 byte - DWORD - идентификатор секции (ID секции) - определяет содержимое в блоке потока данных:''' |
− | 4 byte - DWORD - размер секции | + | − rwID_ATOMIC - an atomic (type RpAtomic). |
− | 4 byte - DWORD - идентификатор версии RW | + | − rwID_CAMERA - a camera (type RwCamera). |
+ | − rwID_CLUMP - a clump (type RpClump). | ||
+ | − rwID_GEOMETRY - a geometry (type RpGeometry). | ||
+ | − rwID_IMAGE - an image (type RwImage). | ||
+ | − rwID_LIGHT - a light (type RpLight). | ||
+ | − rwID_MATERIAL - a material (type RpMaterial). | ||
+ | − rwID_MATRIX - a matrix (type RwMatrix). | ||
+ | − rwID_TEXDICTIONARY - a texture dictionary (type RwTexDictionary). | ||
+ | − rwID_TEXTURE - a texture (type RwTexture). | ||
+ | − rwID_WORLD - a world (type RpWorld). | ||
+ | − rwID_CHUNKGROUPSTART – start of a chunk group (type RwChunkGroup) | ||
+ | − rwID_CHUNKGROUPEND – end of a chunk group (type RwChunkGroup) | ||
+ | '''4 byte - DWORD - размер секции - длина блока данных в байтах.''' | ||
+ | '''4 byte - DWORD - идентификатор версии RW.''' | ||
+ | |||
+ | Версия RW зависит от версии движка, который использовался для экспорта файлов. Идентификатор должен быть одинаковый во всех заголовках секций в одном файле. В противном случае совместимость будет сильно ограничена. См. так же [http://gtamodding.ru/wiki/DFF#.D0.92.D0.B5.D1.80.D1.81.D0.B8.D0.B8_DFF версии DFF для GTA]. | ||
+ | |||
+ | == Глоссарий 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''' – содержит данные о треугольниках статических моделей. Обычно используется для неизменяемых во время разработки игры пейзажей. | ||
[[Category:Форматы файлов]] | [[Category:Форматы файлов]] |
Текущая версия на 23:24, 30 апреля 2013
RenderWare binary stream files - это иерархически структурированные файлы данных, используемые в графическом движке RenderWare 3.x. Использовались Rockstar Games в серии GTA (GTA III, Vice City, San Andreas) на PC, XBOX и PS2 (не PSP!), а так же в таких играх, как Manhunt и Bully. Также, весьма схожий формат использовался в GTA 3 Anniversary Edition.
В GTA модели имеют расширение .DFF, текстуры - .TXD. Другие возможные форматы, не используемые в линейке GTA - RWS, BSP и DMA. В GTA III некоторые анимации катсцен имеют расширение .ANM.
Формат файла
Файл разделён на секции. Каждая секция содержит заголовок размером 12 байт и может содержать данные, другие подсекции, или вообще быть пустой. Содержание секции определяется ID (идентификатором) секции, который содержится в заголовке.
Ниже представлена структура, общая для всех файлов RenderWare - заголовок секции:
4 byte - DWORD - идентификатор секции (ID секции) - определяет содержимое в блоке потока данных: − rwID_ATOMIC - an atomic (type RpAtomic). − rwID_CAMERA - a camera (type RwCamera). − rwID_CLUMP - a clump (type RpClump). − rwID_GEOMETRY - a geometry (type RpGeometry). − rwID_IMAGE - an image (type RwImage). − rwID_LIGHT - a light (type RpLight). − rwID_MATERIAL - a material (type RpMaterial). − rwID_MATRIX - a matrix (type RwMatrix). − rwID_TEXDICTIONARY - a texture dictionary (type RwTexDictionary). − rwID_TEXTURE - a texture (type RwTexture). − rwID_WORLD - a world (type RpWorld). − rwID_CHUNKGROUPSTART – start of a chunk group (type RwChunkGroup) − rwID_CHUNKGROUPEND – end of a chunk group (type RwChunkGroup) 4 byte - DWORD - размер секции - длина блока данных в байтах. 4 byte - DWORD - идентификатор версии RW.
Версия RW зависит от версии движка, который использовался для экспорта файлов. Идентификатор должен быть одинаковый во всех заголовках секций в одном файле. В противном случае совместимость будет сильно ограничена. См. так же версии DFF для GTA.
Глоссарий 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 – содержит данные о треугольниках статических моделей. Обычно используется для неизменяемых во время разработки игры пейзажей.