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

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

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

Перейти к: навигация, поиск
(Типы данных)
 
(не показаны 10 промежуточные версии 4 участников)
Строка 1: Строка 1:
 
== О формате ==
 
== О формате ==
 
Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)
 
Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)
 
== Описание структуры ==
 
Формат бинарный. Файл состоит из вложенных друг в друга блоков. Весь файл представляет собой единый блок.
 
 
=== Структура блока ===
 
Блок имеет 3 обязательные части:
 
{| class="standard"
 
|-
 
!Часть||Тип(размер)||Подробнее
 
|-
 
|Идентификатор типа блока||(4)||2 байта идентификатора и 2 нулевых байта<br />
 
|-
 
|Размер блока||uint(4)||без учета этих частей — только то, что идет дальше
 
|-
 
|Данные||(Размер блока)||Данные могут быть представлены вложенными блоками
 
|}
 
 
=== Типы данных ===
 
Особое внимание стоит обратить на то, как хранятся строки: они нуль-терминальные, то есть в конце обязательно содержат нулевой байт.
 
 
== Структура ==
 
В заголовке последующих пунктов в скобках содержатся идентификаторы типа блока в шестнадцатиричной форме, при этом байты представлены в обратном порядке (то есть так, как числа задаются в исходниках), поэтому идентификатор 0x0912 в файле будет выглядеть как 09 12 00 00.
 
  
 
== Описание формата(из кода xrFSL) ==
 
== Описание формата(из кода xrFSL) ==
Строка 213: Строка 191:
 
''MPF_COLLIDE_MARKS'' = 0x40,
 
''MPF_COLLIDE_MARKS'' = 0x40,
  
====Разобрал Neo====
+
==Engine Shader Library==
 +
 +
// guessed names
 +
 
 +
''SHADERS_CHUNK_CONSTANTS'' = 0,
 +
 
 +
''SHADERS_CHUNK_MATRICES'' = 1,
 +
 
 +
''SHADERS_CHUNK_BLENDERS'' = 2,
 +
 
 +
''SHADERS_CHUNK_NAMES'' = 3
 +
 
 +
====Разобрал bardak, Neo====
  
 
===[[Попытка #1 от excid]]===
 
===[[Попытка #1 от excid]]===
  
 +
===Ссылки===
 +
Утилиты так или иначе связанные с импортом\экспортом object:
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=318 xrFSL MaxTools 0.1.1] от '''Neo]['''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=350 X-RAY Max Tools export beta 2] от '''bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=287 X-RAY Tools src] от '''bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=348 X-RAY Tools update 2.0] от '''bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=288 X-RAY Tools] от '''bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=349 Maya 2009 plugin import/export] от '''bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=347 Maya 2008 plugin import/export] от '''bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=330 Object Format] от '''Neo][, bardak'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=100 3DSMax 7 plugin export v.1.1] от '''GSC'''
 +
*[http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=getit&lid=98 3DSMax 8 plugin export v.2.0] от '''GSC'''
 +
*[https://github.com/igelbox/blender-xray/releases Blender X-Ray Engine Tools] от '''igelbox'''
 +
*[https://github.com/PavelBlend/Blender_Stalker_Object Blender Import Object] от '''Pavel_Blend'''
 
[[Категория:Форматы файлов]]
 
[[Категория:Форматы файлов]]

Текущая версия на 12:24, 18 декабря 2016

О формате

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

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

const uint16 EOBJ_VERSION = 0x10;

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

const uint16 EMESH_VERSION = 0x11;

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

Game Materials Library(из кода xrFSL)

const uint16 GAMEMTLS_VERSION = 1;

GAMEMTLS_CHUNK_VERSION = 0x1000,

GAMEMTLS_CHUNK_AUTOINC = 0x1001,

GAMEMTLS_CHUNK_MATERIALS = 0x1002,

GAMEMTLS_CHUNK_MATERIAL_PAIRS = 0x1003,

GAMEMTL_CHUNK_MAIN = 0x1000,

GAMEMTL_CHUNK_FLAGS = 0x1001,

GAMEMTL_CHUNK_PHYSICS = 0x1002,

GAMEMTL_CHUNK_FACTORS = 0x1003,

GAMEMTL_CHUNK_FLOTATION = 0x1004,

GAMEMTL_CHUNK_DESC = 0x1005,

GAMEMTL_CHUNK_INJURY = 0x1006,


GAMEMTLPAIR_CHUNK_PAIR = 0x1000,

GAMEMTLPAIR_CHUNK_BREAKING = 0x1002,

GAMEMTLPAIR_CHUNK_STEP = 0x1003,

GAMEMTLPAIR_CHUNK_COLLIDE = 0x1005,


SGameMaterial:

MF_BREAKABLE = 0x00000001,

MF_BOUNCEABLE = 0x00000004,

MF_SKIDMARK = 0x00000008,

MF_BLOODMARK = 0x00000010,

MF_CLIMABLE = 0x00000020,

MF_PASSABLE = 0x00000080,

MF_DYNAMIC = 0x00000100,

MF_LIQUID = 0x00000200,

MF_SUPPRESS_SHADOWS = 0x00000400,

MF_SUPPRESS_WALLMARKS = 0x00000800,

MF_ACTOR_OBSTACLE = 0x00001000,

MF_INJURIOUS = 0x10000000,

MF_SHOOTABLE = 0x20000000,

MF_TRANSPARENT = 0x40000000,

MF_SLOW_DOWN = 0x80000000,


SGameMaterialPair:

MPF_BREAKING_SOUNDS = 0x02,

MPF_STEP_SOUNDS = 0x04,

MPF_COLLIDE_SOUNDS = 0x10,

MPF_COLLIDE_PARTICLES = 0x20,

MPF_COLLIDE_MARKS = 0x40,

Engine Shader Library

// guessed names

SHADERS_CHUNK_CONSTANTS = 0,

SHADERS_CHUNK_MATRICES = 1,

SHADERS_CHUNK_BLENDERS = 2,

SHADERS_CHUNK_NAMES = 3

Разобрал bardak, Neo

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

Ссылки

Утилиты так или иначе связанные с импортом\экспортом object:

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