Формат файлов *.object (формат объектов SDK) — различия между версиями — S.T.A.L.K.E.R. Inside Wiki

Формат файлов *.object (формат объектов SDK) — различия между версиями

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск
(Описание формата(из кода xrFSL))
(Описание формата(из кода xrFSL))
Строка 25: Строка 25:
 
'''EObjectChunkIDs:'''
 
'''EObjectChunkIDs:'''
  
''EOBJ_CHUNK_MAIN'' = 0x7777,
+
''EOBJ_CHUNK_MAIN'' = 0x7777,
  
 
''EOBJ_CHUNK_VERSION'' = 0x0900,
 
''EOBJ_CHUNK_VERSION'' = 0x0900,
Строка 39: Строка 39:
 
''EOBJ_CHUNK_MESHES'' = 0x0910,
 
''EOBJ_CHUNK_MESHES'' = 0x0910,
  
''EOBJ_CHUNK_0911'' = 0x0911, // ignored by AE
+
''EOBJ_CHUNK_0911'' = 0x0911, // ignored by AE(Actor Editor)
  
 
''EOBJ_CHUNK_USERDATA'' = 0x0912,
 
''EOBJ_CHUNK_USERDATA'' = 0x0912,
Строка 101: Строка 101:
 
const uint16 ''BONE_VERSION_2'' = 0x2;
 
const uint16 ''BONE_VERSION_2'' = 0x2;
  
const uint16 ''BONE_VERSION'' = BONE_VERSION_2;
+
const uint16 ''BONE_VERSION'' = ''BONE_VERSION_2'';
  
 
'''EboneChunkID:'''
 
'''EboneChunkID:'''

Версия 13:38, 25 июня 2009

О формате

Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)

Описание структуры

Формат бинарный. Файл состоит из вложенных друг в друга блоков. Весь файл представляет собой единый блок.

Структура блока

Блок имеет 3 обязательные части:

Часть Тип(размер) Подробнее
Идентификатор типа блока (4) 2 байта идентификатора и 2 нулевых байта
Размер блока uint(4) без учета этих частей — только то, что идет дальше
Данные (Размер блока) Данные могут быть представлены вложенными блоками

Типы данных

Особое внимание стоит обратить на то, как хранятся строки: они нуль-терминальные, то есть в конце обязательно содержат нулевой байт.

Описание формата(из кода xrFSL)

EObjectChunkIDs:

EOBJ_CHUNK_MAIN = 0x7777,

EOBJ_CHUNK_VERSION = 0x0900,

EOBJ_CHUNK_FLAGS = 0x0903,

EOBJ_CHUNK_SURFACES_0 = 0x0905, // old format

EOBJ_CHUNK_SURFACES_1 = 0x0906, // old format

EOBJ_CHUNK_SURFACES_2 = 0x0907,

EOBJ_CHUNK_MESHES = 0x0910,

EOBJ_CHUNK_0911 = 0x0911, // ignored by AE(Actor Editor)

EOBJ_CHUNK_USERDATA = 0x0912,

EOBJ_CHUNK_BONES_0 = 0x0913, // old format

EOBJ_CHUNK_MOTIONS = 0x0916,

EOBJ_CHUNK_SHADERS_0 = 0x0918, // old format

EOBJ_CHUNK_PARTITIONS_0 = 0x0919, // old format

EOBJ_CHUNK_TRANSFORM = 0x0920,

EOBJ_CHUNK_BONES_1 = 0x0921,

EOBJ_CHUNK_REVISION = 0x0922, // file revision

EOBJ_CHUNK_PARTITIONS_1 = 0x0923,

EOBJ_CHUNK_MOTION_REFS = 0x0924,

EOBJ_CHUNK_LOD_REF = 0x0925 // LOD\Reference

EObjectClipChunkIDs:

EOBJ_CLIP_VERSION_CHUNK = 0x9000,

EOBJ_CLIP_DATA_CHUNK = 0x9001

EMeshChunkID:

EMESH_CHUNK_VERSION = 0x1000,

EMESH_CHUNK_MESHNAME = 0x1001,

EMESH_CHUNK_FLAGS = 0x1002,

EMESH_CHUNK_BBOX = 0x1004,

EMESH_CHUNK_VERTS = 0x1005,

EMESH_CHUNK_FACES = 0x1006,

EMESH_CHUNK_VMAPS_0 = 0x1007,

EMESH_CHUNK_VMREFS = 0x1008,

EMESH_CHUNK_SFACE = 0x1009,

EMESH_CHUNK_OPTIONS = 0x1010,

EMESH_CHUNK_VMAPS_1 = 0x1011,

EMESH_CHUNK_VMAPS_2 = 0x1012,

EMESH_CHUNK_SG = 0x1013

const uint16 BONE_VERSION_1 = 0x1;

const uint16 BONE_VERSION_2 = 0x2;

const uint16 BONE_VERSION = BONE_VERSION_2;

EboneChunkID:

BONE_CHUNK_VERSION = 0x0001,

BONE_CHUNK_DEF = 0x0002,

BONE_CHUNK_BIND_POSE= 0x0003,

BONE_CHUNK_MATERIAL = 0x0004,

BONE_CHUNK_SHAPE = 0x0005,

BONE_CHUNK_IK_JOINT = 0x0006,

BONE_CHUNK_MASS_PARAMS = 0x0007,

BONE_CHUNK_IK_FLAGS = 0x0008,

BONE_CHUNK_BREAK_PARAMS = 0x0009,

BONE_CHUNK_FRICTION = 0x0010

Попытка #1 от excid

Другие места
LANGUAGE