<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://stalkerin.gameru.net/wiki/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=93.80.121.34&amp;*</id>
		<title>S.T.A.L.K.E.R. Inside Wiki - Вклад участника [ru]</title>
		<link rel="self" type="application/atom+xml" href="http://stalkerin.gameru.net/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=93.80.121.34&amp;*"/>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/93.80.121.34"/>
		<updated>2026-04-29T16:35:17Z</updated>
		<subtitle>Вклад участника</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)</id>
		<title>Формат файлов *.object (формат объектов SDK)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)"/>
				<updated>2010-03-24T16:12:46Z</updated>
		
		<summary type="html">&lt;p&gt;93.80.121.34: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О формате ==&lt;br /&gt;
Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)&lt;br /&gt;
&lt;br /&gt;
== Описание формата(из кода xrFSL) ==&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''EOBJ_VERSION'' = 0x10;&lt;br /&gt;
&lt;br /&gt;
'''EObjectChunkIDs:'''&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MAIN''	= 0x7777,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_VERSION''	= 0x0900,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_FLAGS''	= 0x0903,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SURFACES_0'' = 0x0905,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SURFACES_1'' = 0x0906,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SURFACES_2'' = 0x0907,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MESHES''	= 0x0910,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_0911''	= 0x0911,	// '''ignored by AE(Actor Editor)'''&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_USERDATA''	= 0x0912,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_BONES_0''	= 0x0913,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MOTIONS''	= 0x0916,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SHADERS_0'' = 0x0918,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_PARTITIONS_0'' = 0x0919,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_TRANSFORM'' = 0x0920,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_BONES_1''	= 0x0921,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_REVISION''	= 0x0922,	// file revision&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_PARTITIONS_1'' = 0x0923,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MOTION_REFS'' = 0x0924,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_LOD_REF''	= 0x0925	// '''LOD\Reference'''&lt;br /&gt;
&lt;br /&gt;
'''EObjectClipChunkIDs:'''&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CLIP_VERSION_CHUNK'' = 0x9000,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CLIP_DATA_CHUNK'' = 0x9001&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''EMESH_VERSION'' = 0x11;&lt;br /&gt;
&lt;br /&gt;
'''EMeshChunkID:'''&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VERSION''	= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_MESHNAME'' = 0x1001,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_FLAGS''	= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_BBOX''	= 0x1004,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VERTS''	= 0x1005,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_FACES''	= 0x1006,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMAPS_0''	= 0x1007,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMREFS''	= 0x1008,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_SFACE''	= 0x1009,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_OPTIONS''	= 0x1010,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMAPS_1''	= 0x1011,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMAPS_2''	= 0x1012,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_SG''	= 0x1013&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''BONE_VERSION_1'' = 0x1;&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''BONE_VERSION_2'' = 0x2;&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''BONE_VERSION'' = ''BONE_VERSION_2'';&lt;br /&gt;
&lt;br /&gt;
'''EboneChunkID:'''&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_VERSION''	= 0x0001,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_DEF''	= 0x0002,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_BIND_POSE''= 0x0003,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_MATERIAL''	= 0x0004,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_SHAPE''	= 0x0005,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_IK_JOINT''	= 0x0006,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_MASS_PARAMS'' = 0x0007,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_IK_FLAGS''	= 0x0008,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_BREAK_PARAMS'' = 0x0009,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_FRICTION''	= 0x0010&lt;br /&gt;
&lt;br /&gt;
==Game Materials Library(из кода xrFSL)==&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''GAMEMTLS_VERSION'' = 1;&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLS_CHUNK_VERSION''			= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLS_CHUNK_AUTOINC''			= 0x1001,&lt;br /&gt;
&lt;br /&gt;
		GAMEMTLS_CHUNK_MATERIALS''		= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLS_CHUNK_MATERIAL_PAIRS''	= 0x1003,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_MAIN''			= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_FLAGS''			= 0x1001,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_PHYSICS''		= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_FACTORS''		= 0x1003,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_FLOTATION''		= 0x1004,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_DESC''			= 0x1005,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_INJURY''		= 0x1006,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_PAIR''		= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_BREAKING''	= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_STEP''		= 0x1003,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_COLLIDE''	= 0x1005,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SGameMaterial:'''&lt;br /&gt;
&lt;br /&gt;
			''MF_BREAKABLE''		= 0x00000001,&lt;br /&gt;
&lt;br /&gt;
			''MF_BOUNCEABLE''		= 0x00000004,&lt;br /&gt;
&lt;br /&gt;
			''MF_SKIDMARK''			= 0x00000008,&lt;br /&gt;
&lt;br /&gt;
			''MF_BLOODMARK''		= 0x00000010,&lt;br /&gt;
&lt;br /&gt;
			''MF_CLIMABLE''			= 0x00000020,&lt;br /&gt;
&lt;br /&gt;
			''MF_PASSABLE''			= 0x00000080,&lt;br /&gt;
&lt;br /&gt;
			''MF_DYNAMIC''			= 0x00000100,&lt;br /&gt;
&lt;br /&gt;
			''MF_LIQUID''			= 0x00000200,&lt;br /&gt;
&lt;br /&gt;
			''MF_SUPPRESS_SHADOWS''	= 0x00000400,&lt;br /&gt;
&lt;br /&gt;
			''MF_SUPPRESS_WALLMARKS''	= 0x00000800,&lt;br /&gt;
&lt;br /&gt;
			''MF_ACTOR_OBSTACLE''	= 0x00001000,&lt;br /&gt;
&lt;br /&gt;
			''MF_INJURIOUS''		= 0x10000000,&lt;br /&gt;
&lt;br /&gt;
			''MF_SHOOTABLE''		= 0x20000000,&lt;br /&gt;
&lt;br /&gt;
			''MF_TRANSPARENT''		= 0x40000000,&lt;br /&gt;
&lt;br /&gt;
			''MF_SLOW_DOWN''		= 0x80000000,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SGameMaterialPair:'''&lt;br /&gt;
&lt;br /&gt;
			''MPF_BREAKING_SOUNDS''	= 0x02,&lt;br /&gt;
&lt;br /&gt;
			''MPF_STEP_SOUNDS''		= 0x04,&lt;br /&gt;
&lt;br /&gt;
			''MPF_COLLIDE_SOUNDS''	= 0x10,&lt;br /&gt;
&lt;br /&gt;
			''MPF_COLLIDE_PARTICLES''	= 0x20,&lt;br /&gt;
&lt;br /&gt;
			''MPF_COLLIDE_MARKS''	= 0x40,&lt;br /&gt;
&lt;br /&gt;
==Engine Shader Library==&lt;br /&gt;
 &lt;br /&gt;
// guessed names&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_CONSTANTS''		= 0,&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_MATRICES''		= 1,&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_BLENDERS''		= 2,&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_NAMES''			= 3&lt;br /&gt;
&lt;br /&gt;
====Разобрал bardak, Neo====&lt;br /&gt;
&lt;br /&gt;
===[[Попытка #1 от excid]]===&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
Утилиты так или иначе связанные с импортом\экспортом object:&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=318 xrFSL MaxTools 0.1.1] от '''Neo]['''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=350 X-RAY Max Tools export beta 2] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=287 X-RAY Tools src] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=348 X-RAY Tools update 2.0] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=288 X-RAY Tools] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=349 Maya 2009 plugin import/export] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=347 Maya 2008 plugin import/export] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=330 Object Format] от '''Neo][, bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=100 3DSMax 7 plugin export v.1.1] от '''GSC'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=98 3DSMax 8 plugin export v.2.0] от '''GSC'''&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>93.80.121.34</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B0</id>
		<title>Попытка</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%9F%D0%BE%D0%BF%D1%8B%D1%82%D0%BA%D0%B0"/>
				<updated>2010-03-24T16:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;93.80.121.34: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Формат разобрал excid'''&lt;br /&gt;
&lt;br /&gt;
== Описание структуры ==&lt;br /&gt;
Формат бинарный. Файл состоит из вложенных друг в друга блоков. Весь файл представляет собой единый блок.&lt;br /&gt;
&lt;br /&gt;
=== Структура блока ===&lt;br /&gt;
Блок имеет 3 обязательные части:&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Часть||Тип(размер)||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Идентификатор типа блока||(4)||2 байта идентификатора и 2 нулевых байта&amp;lt;br /&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Размер блока||uint(4)||без учета этих частей — только то, что идет дальше&lt;br /&gt;
|-&lt;br /&gt;
|Данные||(Размер блока)||Данные могут быть представлены вложенными блоками&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Типы данных ===&lt;br /&gt;
Особое внимание стоит обратить на то, как хранятся строки: они нуль-терминальные, то есть в конце обязательно содержат нулевой байт.&lt;br /&gt;
&lt;br /&gt;
== Структура ==&lt;br /&gt;
В заголовке последующих пунктов в скобках содержатся идентификаторы типа блока в шестнадцатиричной форме, при этом байты представлены в обратном порядке (то есть так, как числа задаются в исходниках), поэтому идентификатор 0x0912 в файле будет выглядеть как 09 12 00 00.&lt;br /&gt;
&lt;br /&gt;
== Файл (0x7777) ==&lt;br /&gt;
=== Неизвестные данные (0x0900) ===&lt;br /&gt;
Возможно, это версия.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(2)||0x10 0x00||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Пользовательские информация — User Data (0x0912) ===&lt;br /&gt;
В редакторе Game options &amp;gt; User Data.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Данные||строка||||Произвольная строка&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Уровень детализации — LOD (0x0925) ===&lt;br /&gt;
В редакторе LOD &amp;gt; Reference.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Ссылка||строка||||Путь к модели, содержащей следующий уровень детализации&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Тип объекта — Object Type (0x0903) ===&lt;br /&gt;
В редакторе Object Type.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Тип||(4)||||Значение 0x00 для статической модели (тип Static)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Данные о геометрии — Geometry (0x0910) ===&lt;br /&gt;
В редакторе Geometry.&lt;br /&gt;
Все представленные ниже данные описывают 1 подобъект.&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1000) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(2)||0x11 0x00||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Название подобъекта — Name (0x1000) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название||строка||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Ограничивающий параллелепипед — Bounding Box (0x1004) ====&lt;br /&gt;
В редакторе Transform &amp;gt; BBox Min/Max&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Минимум||float(4)[3]||||Минимальные значения вершин по x, y, z&lt;br /&gt;
|-&lt;br /&gt;
|Максимум||float(4)[3]||||Максимальные значения вершин по x, y, z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1002) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(1)||0x05||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Неизвестные данные (0x1010) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(8)||0x00||Все нули&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Вершины — Vertices (0x1005) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество вершин n||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Координаты||float(4)[n * 3]||||Координаты x, y, z для каждой вершины&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Грани — Faces (0x1006) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество граней m||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Координаты||uint(4)[m * 6]||||Три пары индекс вершины, индекс текстурной координаты (v0,vref0,v1,vref1,v2,vref2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Группы сглаживания — Smoothing Groups (0x1013) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Группы||uint(4)[m]||||32-битная маска групп сглаживания для каждой грани&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Словарь текстурных координат — UVs map (0x1008) ====&lt;br /&gt;
Логика формирования и назначение этого и блока «Текстурные координаты» доконца не понятна.&lt;br /&gt;
Предположительный вариант представлен ниже.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество записей k||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Данные||(9)[k]||||Предположительная структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||byte(1)||0x1||&lt;br /&gt;
|-&lt;br /&gt;
|Индекс таблицы текстурных координат||uint(4)||0x0 или 0x1||Номер таблицы (в блоке 0x1012)&lt;br /&gt;
|-&lt;br /&gt;
|Индекс текстурных координаты||uint(4)||0x0 или 0x1||Индекс в таблице, определяемой предыдущим значением (в блоке 0x1012).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Материалы объекта — Object Materials (0x1009) ====&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество материалов p||ushort(2)||||&lt;br /&gt;
|-&lt;br /&gt;
|Материалы||[p]||||Cтруктура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название материала||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Количество граней q||uint(4)||||Количество граней, имеющих этот материал&lt;br /&gt;
|-&lt;br /&gt;
|Индексы граней||uint(4)[q]||||из таблицы Грани — Faces (0x1006)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Текстурные координаты — UVs (0x1012) ====&lt;br /&gt;
Количество таблиц, которое встречалось в тестовых файлах — 2.&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество таблиц t||uint(4)||0x2||&lt;br /&gt;
|-&lt;br /&gt;
|Таблицы||[t]||||Структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||строка||Texture||&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||ubyte(1)||0x2||Возможно, количество компонентов в текс. координате?&lt;br /&gt;
|-&lt;br /&gt;
|Номер таблицы||ushort(1)||||&lt;br /&gt;
|-&lt;br /&gt;
|Количество текстурных координат s||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Текстурные координаты||float(4)[s * 2]||||Пары значения текстурных координат u и v&lt;br /&gt;
|-&lt;br /&gt;
|Индекс вершины||uint(4)[s]||||Индекс вершины (в блоке 0x1005)&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно&amp;lt;br /&amp;gt;(только для второй таблицы)||uint(4)[s]||||Какие-то индексы, не превышающие s, отсорированные по возрастанию&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Материалы — Materials (0x0907) ===&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Количество материалов r||uint(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Материалы||[r]||||Структура в следующей таблице&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Название||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для движка||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для компилятора||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Характеристика для игры||строка||||Например, default&lt;br /&gt;
|-&lt;br /&gt;
|Путь к текстуре||строка||||&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||строка||Texture||Значение Texture используется в блоке &amp;lt;br /&amp;gt;Текстурные координаты — UVs (0x1008)&lt;br /&gt;
|-&lt;br /&gt;
|Флаги||uint(4)||||0x1, если материал двустронний, иначе 0x0&lt;br /&gt;
|-&lt;br /&gt;
|Неизвестно||(4)||0x12 0x1 0x0 0x0 0x1 0x0 0x0 0x0||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Автор — Author (0x0907) ===&lt;br /&gt;
{| class=&amp;quot;standard&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Название||Тип(размер)||Значение||Подробнее&lt;br /&gt;
|-&lt;br /&gt;
|Создатель||строка||||Вид \\компьютер\пользователь (например, \\NAPALI\excid)&lt;br /&gt;
|-&lt;br /&gt;
|Дата создания||(4)||||&lt;br /&gt;
|-&lt;br /&gt;
|Последний модифицирующий||строка||||Вид \\компьютер\пользователь (например, \\NAPALI\excid)&lt;br /&gt;
|-&lt;br /&gt;
|Дата модификации||(4)||||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Скрипт разбора файла ==&lt;br /&gt;
Написан на Python. Не реализован полностью, завершение не планируется, так как свою миссию он выполнил.&amp;lt;br /&amp;gt;&lt;br /&gt;
Если запускать из Blender, то импортирует объект (без материалов).&amp;lt;br /&amp;gt;&lt;br /&gt;
Не рекомендуется запускать для больших файлов, так как выводится вся информация из файла.&lt;br /&gt;
&lt;br /&gt;
=== Код ===&lt;br /&gt;
&amp;lt;code python&amp;gt;&lt;br /&gt;
#                                           #&lt;br /&gt;
#    XRay Engine (S.T.A.L.K.E.R.) object    #&lt;br /&gt;
#       test import plugin for Blender      #&lt;br /&gt;
#                                           #&lt;br /&gt;
#          Anton 'excid' Gorenko            #&lt;br /&gt;
#              excid@mail.ru                #&lt;br /&gt;
#                                           #&lt;br /&gt;
#               (2007 June)                 #&lt;br /&gt;
#                                           #&lt;br /&gt;
&lt;br /&gt;
from struct import *&lt;br /&gt;
import datetime&lt;br /&gt;
&lt;br /&gt;
useBlender = True&lt;br /&gt;
try:&lt;br /&gt;
    from Blender import *&lt;br /&gt;
    from Blender.Mathutils import *&lt;br /&gt;
except:&lt;br /&gt;
    useBlender = False&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
f = open('X:\\rawdata\\objects\\detail\\det_list_05.object', 'rb')&lt;br /&gt;
s = f.read()&lt;br /&gt;
f.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseMeshData(s):&lt;br /&gt;
    &lt;br /&gt;
    p = 0&lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nname block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    nameSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'name block size =', nameSize&lt;br /&gt;
    p += 4&lt;br /&gt;
    name = unpack('%ds' % (nameSize,), s[p : p + nameSize])[0][:-1]&lt;br /&gt;
    p += int(nameSize)&lt;br /&gt;
    print 'name =', name&lt;br /&gt;
    &lt;br /&gt;
    if useBlender:&lt;br /&gt;
        obj = Object.New('Mesh', name)&lt;br /&gt;
        mesh = Mesh.New(name)&lt;br /&gt;
        obj.link(mesh)&lt;br /&gt;
        scene = Scene.GetCurrent()&lt;br /&gt;
        scene.objects.link(obj)&lt;br /&gt;
    &lt;br /&gt;
    print '\nbbox block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'bbox block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'bbox min = ', unpack('3f', s[p : p + 12])&lt;br /&gt;
    p += 12&lt;br /&gt;
    print 'bbox max = ', unpack('3f', s[p : p + 12])&lt;br /&gt;
    p += 12&lt;br /&gt;
    &lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nunknown block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'unknown block size =', size&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size&lt;br /&gt;
    &lt;br /&gt;
    print '\nvertices block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4  &lt;br /&gt;
    print 'vertices block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4  &lt;br /&gt;
    verticesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'vertices count =', verticesCount &lt;br /&gt;
    for i in range(verticesCount):&lt;br /&gt;
        coords = unpack('3f', s[p : p + 12])&lt;br /&gt;
        print 'vertex%d =' % (i,), coords&lt;br /&gt;
        p += 12&lt;br /&gt;
        &lt;br /&gt;
        if useBlender:&lt;br /&gt;
            mesh.verts.extend([coords])&lt;br /&gt;
    &lt;br /&gt;
    print '\ntriangles block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'triangles block size =', unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    &lt;br /&gt;
    trianglesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'triangles count =', trianglesCount   &lt;br /&gt;
    &lt;br /&gt;
    faces = []&lt;br /&gt;
    for i in range(trianglesCount):&lt;br /&gt;
        vertices = unpack('6I', s[p : p + 24])&lt;br /&gt;
        print 'triangle%d =' % (i,), vertices&lt;br /&gt;
        p += 24&lt;br /&gt;
        &lt;br /&gt;
        faces.append(vertices)&lt;br /&gt;
        &lt;br /&gt;
    print '\nsmoothgroups block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'smoothgroups block size =', size&lt;br /&gt;
    for i in range(size / 4):&lt;br /&gt;
        x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'triangle%d =' % (i,), hex(int(x))&lt;br /&gt;
        p += 4&lt;br /&gt;
    &lt;br /&gt;
    print '\nuv map block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'uv map block size =', size&lt;br /&gt;
    count = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'count =', count&lt;br /&gt;
    &lt;br /&gt;
    layerIndices = []&lt;br /&gt;
    uvIndices = []&lt;br /&gt;
    for i in range(count):&lt;br /&gt;
        unknown = unpack('5B', s[p : p + 5])&lt;br /&gt;
        p += 5&lt;br /&gt;
        &lt;br /&gt;
        uvIndex = int(unpack('I', s[p : p + 4])[0])&lt;br /&gt;
        p += 4&lt;br /&gt;
        &lt;br /&gt;
        print 'uv index =', map(hex, unknown), uvIndex&lt;br /&gt;
        &lt;br /&gt;
        layerIndices.append(unknown[1])&lt;br /&gt;
        uvIndices.append(uvIndex)&lt;br /&gt;
        &lt;br /&gt;
    &lt;br /&gt;
    print '\nmaterials block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'materials block size =', size&lt;br /&gt;
    materialsCount = unpack('H', s[p : p + 2])[0]&lt;br /&gt;
    p += 2&lt;br /&gt;
    print 'materials count =', materialsCount&lt;br /&gt;
    &lt;br /&gt;
    for i in range(materialsCount):&lt;br /&gt;
        materialName = ''&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            materialName = materialName + chr(b)&lt;br /&gt;
            b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
            p += 1&lt;br /&gt;
        print 'material%d name =' % (i,), materialName&lt;br /&gt;
        &lt;br /&gt;
        trianglesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        p += 4&lt;br /&gt;
        print 'triangles count =', trianglesCount&lt;br /&gt;
        &lt;br /&gt;
        print 'triangles indices =', map(int, unpack('%dI' % (trianglesCount,), s[p : p + 4 * trianglesCount]))&lt;br /&gt;
        p += 4 * trianglesCount&lt;br /&gt;
        &lt;br /&gt;
    print '\ntexcoords block =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
    p += 4&lt;br /&gt;
    size = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'texcoords block size =', size&lt;br /&gt;
    uvTablesCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'uv tables count =', uvTablesCount&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    uvs = []&lt;br /&gt;
    for i in range(uvTablesCount):&lt;br /&gt;
        currentUv = []&lt;br /&gt;
        chanelName = ''&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        while b != 0:&lt;br /&gt;
            chanelName = chanelName + chr(b)&lt;br /&gt;
            b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
            p += 1&lt;br /&gt;
        print 'name =', chanelName&lt;br /&gt;
        &lt;br /&gt;
        x = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
        print 'unknown =', x&lt;br /&gt;
        layerIndex = unpack('H', s[p : p + 2])[0]&lt;br /&gt;
        p += 2&lt;br /&gt;
        print 'layer index =', layerIndex   &lt;br /&gt;
        count = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        p += 4&lt;br /&gt;
        print 'uvs count =', count&lt;br /&gt;
        &lt;br /&gt;
        for j in range(count):&lt;br /&gt;
            uv = unpack('2f', s[p : p + 8])&lt;br /&gt;
            print 'uv%d =' % (j,), uv&lt;br /&gt;
            p += 8&lt;br /&gt;
            &lt;br /&gt;
            currentUv.append(uv)&lt;br /&gt;
        uvs.append(currentUv)&lt;br /&gt;
            &lt;br /&gt;
        for j in range(count):&lt;br /&gt;
            x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
            print 'index%d =' % (j,), int(x)&lt;br /&gt;
            p += 4&lt;br /&gt;
&lt;br /&gt;
    i = 0&lt;br /&gt;
    while len(s) &amp;gt; p:&lt;br /&gt;
        x = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'unknown index%d =' % (i,), int(x)&lt;br /&gt;
        p += 4  &lt;br /&gt;
        i += 1&lt;br /&gt;
    &lt;br /&gt;
    if useBlender:&lt;br /&gt;
        faceIndex = 0&lt;br /&gt;
        for faceInfo in faces:&lt;br /&gt;
            if faceInfo[4] == 0:&lt;br /&gt;
                faceInfo = faceInfo[2:] + faceInfo[:2]&lt;br /&gt;
            mesh.faces.extend(faceInfo[::2])&lt;br /&gt;
            face = mesh.faces[-1]&lt;br /&gt;
&lt;br /&gt;
            faceUvs = []&lt;br /&gt;
            for i in faceInfo[1::2]:&lt;br /&gt;
                faceUvs.append(Vector(uvs[layerIndices[i]][uvIndices[i]]))&lt;br /&gt;
            face.uv = faceUvs&lt;br /&gt;
    &lt;br /&gt;
def parseString(s, p):&lt;br /&gt;
    string = ''&lt;br /&gt;
    b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
    p += 1&lt;br /&gt;
    while b != 0:&lt;br /&gt;
        string = string + chr(b)&lt;br /&gt;
        b = unpack('B', s[p : p + 1])[0]&lt;br /&gt;
        p += 1&lt;br /&gt;
    return string, p&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def parseGeometryBlock(s):&lt;br /&gt;
    print '\ngeometry\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    while p &amp;lt; len(s):&lt;br /&gt;
        i = unpack('I', s[p : p + 4])[0]    &lt;br /&gt;
        p += 4&lt;br /&gt;
        dataSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
        print 'mesh%d data size = %d' % (i, dataSize)&lt;br /&gt;
        p += 4&lt;br /&gt;
        parseMeshData(s[p : p + dataSize])&lt;br /&gt;
        p += dataSize   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def parseMaterialBlock(s):&lt;br /&gt;
    print '\nmaterials\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    materialsCount = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    p += 4&lt;br /&gt;
    print 'materials count =', materialsCount&lt;br /&gt;
&lt;br /&gt;
    for i in range(materialsCount):&lt;br /&gt;
        print '\n'&lt;br /&gt;
        materialName, p = parseString(s, p)&lt;br /&gt;
        print 'material%d name =' % (i,), materialName&lt;br /&gt;
        &lt;br /&gt;
        engineShader, p = parseString(s, p)&lt;br /&gt;
        print 'engine shader =', engineShader&lt;br /&gt;
        &lt;br /&gt;
        compilerShader, p = parseString(s, p)&lt;br /&gt;
        print 'compiler shader =', compilerShader&lt;br /&gt;
&lt;br /&gt;
        gameMaterial, p = parseString(s, p)&lt;br /&gt;
        print 'game material =', gameMaterial   &lt;br /&gt;
        &lt;br /&gt;
        texturePath, p = parseString(s, p)&lt;br /&gt;
        print 'texture path =', texturePath&lt;br /&gt;
        &lt;br /&gt;
        texture, p = parseString(s, p)&lt;br /&gt;
        print 'texture =', texture&lt;br /&gt;
&lt;br /&gt;
        print 'flags (2 sided, etc) =', hex(int(unpack('I', s[p : p + 4])[0]))&lt;br /&gt;
        p += 4  &lt;br /&gt;
        &lt;br /&gt;
        size = 8&lt;br /&gt;
        print 'unknown data =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
        p += size   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def parseAuthorBlock(s):&lt;br /&gt;
    print '\nauthor\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    authorName, p = parseString(s, p)&lt;br /&gt;
    print 'author name =', authorName&lt;br /&gt;
    &lt;br /&gt;
    size = 4&lt;br /&gt;
    print 'creation date =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size   &lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    modifierName, p = parseString(s, p)&lt;br /&gt;
    print 'modifier name =', modifierName&lt;br /&gt;
    &lt;br /&gt;
    print 'modification date =', map(hex, unpack('%dB' % (size,), s[p : p + size]))&lt;br /&gt;
    p += size   &lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
def parseUserDataBlock(s):&lt;br /&gt;
    print '\nuser data\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    userData, p = parseString(s, p)&lt;br /&gt;
    print 'user data =', userData&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
def parseLODBlock(s):&lt;br /&gt;
    print '\nlod\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    reference, p = parseString(s, p)&lt;br /&gt;
    print 'lod reference =', reference  &lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def parseFlagsBlock(s):&lt;br /&gt;
    print '\nflags (model type)\n'&lt;br /&gt;
    p = 0&lt;br /&gt;
    flags = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'model type =', hex(int(flags))&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
print '\n' * 3&lt;br /&gt;
&lt;br /&gt;
p = 0&lt;br /&gt;
header = unpack('I', s[p : p + 4])[0]   &lt;br /&gt;
print 'header =', hex(int(header))&lt;br /&gt;
p += 4&lt;br /&gt;
&lt;br /&gt;
dataSize = unpack('I', s[p : p + 4])[0] &lt;br /&gt;
print 'data size =', dataSize&lt;br /&gt;
p += 4&lt;br /&gt;
&lt;br /&gt;
while p &amp;lt; len(s):&lt;br /&gt;
    print '\n'&lt;br /&gt;
    print '=' * 79&lt;br /&gt;
    block = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'block =', hex(int(block))&lt;br /&gt;
    p += 4&lt;br /&gt;
    &lt;br /&gt;
    blockSize = unpack('I', s[p : p + 4])[0]&lt;br /&gt;
    print 'block size =', blockSize&lt;br /&gt;
    p += 4  &lt;br /&gt;
&lt;br /&gt;
    if block == 0x0910:&lt;br /&gt;
        parseGeometryBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0907:&lt;br /&gt;
        parseMaterialBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0922:&lt;br /&gt;
        parseAuthorBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0912:&lt;br /&gt;
        parseUserDataBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0925:&lt;br /&gt;
        parseLODBlock(s[p : p + blockSize])&lt;br /&gt;
    elif block == 0x0903:&lt;br /&gt;
        parseFlagsBlock(s[p : p + blockSize])       &lt;br /&gt;
    else:&lt;br /&gt;
        print 'unknown data =', map(hex, unpack('%dB' % (blockSize,), s[p : p + blockSize]))&lt;br /&gt;
    p += blockSize&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Результат ===&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
header = 0x7777&lt;br /&gt;
data size = 1113&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x900&lt;br /&gt;
block size = 2&lt;br /&gt;
unknown data = ['0x10', '0x0']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x912&lt;br /&gt;
block size = 1&lt;br /&gt;
&lt;br /&gt;
user data&lt;br /&gt;
&lt;br /&gt;
user data =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x925&lt;br /&gt;
block size = 1&lt;br /&gt;
&lt;br /&gt;
lod&lt;br /&gt;
&lt;br /&gt;
lod reference =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x903&lt;br /&gt;
block size = 4&lt;br /&gt;
&lt;br /&gt;
flags (model type)&lt;br /&gt;
&lt;br /&gt;
model type = 0x0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x910&lt;br /&gt;
block size = 929&lt;br /&gt;
&lt;br /&gt;
geometry&lt;br /&gt;
&lt;br /&gt;
mesh0 data size = 921&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1000&lt;br /&gt;
unknown block size = 2&lt;br /&gt;
unknown data = ['0x11', '0x0']&lt;br /&gt;
&lt;br /&gt;
name block = 0x1001&lt;br /&gt;
name block size = 8&lt;br /&gt;
name = Plane10&lt;br /&gt;
&lt;br /&gt;
bbox block = 0x1004&lt;br /&gt;
bbox block size = 24&lt;br /&gt;
bbox min =  (-0.089013084769248962, 0.00091872771736234426, -0.05408264324069023&lt;br /&gt;
1)&lt;br /&gt;
bbox max =  (0.064492635428905487, 0.017687048763036728, 0.050194162875413895)&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1002&lt;br /&gt;
unknown block size = 1&lt;br /&gt;
unknown data = ['0x5']&lt;br /&gt;
&lt;br /&gt;
unknown block = 0x1010&lt;br /&gt;
unknown block size = 8&lt;br /&gt;
unknown data = ['0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0', '0x0']&lt;br /&gt;
&lt;br /&gt;
vertices block = 0x1005&lt;br /&gt;
vertices block size = 88&lt;br /&gt;
vertices count = 7&lt;br /&gt;
vertex0 = (-0.0019903033971786499, 0.001169001217931509, 0.0068940594792366028)&lt;br /&gt;
vertex1 = (-0.089013084769248962, 0.00091872771736234426, 0.045723527669906616)&lt;br /&gt;
vertex2 = (0.006468137726187706, 0.0094316964969038963, 0.050194162875413895)&lt;br /&gt;
vertex3 = (-0.039456427097320557, 0.0043633054010570049, -0.039133470505475998)&lt;br /&gt;
vertex4 = (0.023728765547275543, 0.0064991358667612076, -0.054082643240690231)&lt;br /&gt;
vertex5 = (0.031571760773658752, 0.0060988827608525753, 0.0041843997314572334)&lt;br /&gt;
vertex6 = (0.064492635428905487, 0.017687048763036728, -0.038134712725877762)&lt;br /&gt;
&lt;br /&gt;
triangles block = 0x1006&lt;br /&gt;
triangles block size = 148&lt;br /&gt;
triangles count = 6&lt;br /&gt;
triangle0 = (0, 2, 1, 1, 2, 0)&lt;br /&gt;
triangle1 = (0, 8, 3, 7, 1, 6)&lt;br /&gt;
triangle2 = (0, 11, 4, 10, 3, 9)&lt;br /&gt;
triangle3 = (5, 14, 6, 13, 4, 12)&lt;br /&gt;
triangle4 = (0, 17, 2, 16, 5, 15)&lt;br /&gt;
triangle5 = (0, 20, 5, 19, 4, 18)&lt;br /&gt;
&lt;br /&gt;
smoothgroups block = 0x1013&lt;br /&gt;
smoothgroups block size = 24&lt;br /&gt;
triangle0 = 0x1&lt;br /&gt;
triangle1 = 0x1&lt;br /&gt;
triangle2 = 0x1&lt;br /&gt;
triangle3 = 0x1&lt;br /&gt;
triangle4 = 0x1&lt;br /&gt;
triangle5 = 0x1&lt;br /&gt;
&lt;br /&gt;
uv map block = 0x1008&lt;br /&gt;
uv map block size = 193&lt;br /&gt;
count = 21&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 2&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 1&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 0&lt;br /&gt;
uv index = ['0x1', '0x90', '0xdb', '0x11', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x18', '0x87', '0x10', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x80', '0x8c', '0x10', '0x7'] 12&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 1&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 3&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 0&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 3&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 4&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 2&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 4&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 6&lt;br /&gt;
uv index = ['0x1', '0x0', '0x0', '0x0', '0x0'] 5&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 7&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 6&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 5&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 10&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 9&lt;br /&gt;
uv index = ['0x1', '0x1', '0x0', '0x0', '0x0'] 8&lt;br /&gt;
&lt;br /&gt;
materials block = 0x1009&lt;br /&gt;
materials block size = 43&lt;br /&gt;
materials count = 1&lt;br /&gt;
material0 name = 01 - Default&lt;br /&gt;
triangles count = 6&lt;br /&gt;
triangles indices = [0, 1, 2, 3, 4, 5]&lt;br /&gt;
&lt;br /&gt;
texcoords block = 0x1012&lt;br /&gt;
texcoords block size = 294&lt;br /&gt;
uv tables count = 2&lt;br /&gt;
name = Texture&lt;br /&gt;
unknown = 2&lt;br /&gt;
layer index = 0&lt;br /&gt;
uvs count = 7&lt;br /&gt;
uv0 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv1 = (0.4648970365524292, 0.95080757141113281)&lt;br /&gt;
uv2 = (0.55649280548095703, 0.58906811475753784)&lt;br /&gt;
uv3 = (0.97081756591796875, 0.88250058889389038)&lt;br /&gt;
uv4 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
uv5 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv6 = (0.98893237113952637, 0.51763355731964111)&lt;br /&gt;
index0 = 0&lt;br /&gt;
index1 = 1&lt;br /&gt;
index2 = 2&lt;br /&gt;
index3 = 3&lt;br /&gt;
index4 = 4&lt;br /&gt;
index5 = 5&lt;br /&gt;
index6 = 6&lt;br /&gt;
name = Texture&lt;br /&gt;
unknown = 2&lt;br /&gt;
layer index = 1&lt;br /&gt;
uvs count = 11&lt;br /&gt;
uv0 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv1 = (0.4648970365524292, 0.95080757141113281)&lt;br /&gt;
uv2 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv3 = (0.97081756591796875, 0.88250058889389038)&lt;br /&gt;
uv4 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
uv5 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv6 = (0.5510140061378479, 0.58371180295944214)&lt;br /&gt;
uv7 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv8 = (0.72911489009857178, 0.70259565114974976)&lt;br /&gt;
uv9 = (0.75604760646820068, 0.52614188194274902)&lt;br /&gt;
uv10 = (0.97814416885375977, 0.69620668888092041)&lt;br /&gt;
index0 = 0&lt;br /&gt;
index1 = 1&lt;br /&gt;
index2 = 0&lt;br /&gt;
index3 = 3&lt;br /&gt;
index4 = 4&lt;br /&gt;
index5 = 0&lt;br /&gt;
index6 = 2&lt;br /&gt;
index7 = 5&lt;br /&gt;
index8 = 0&lt;br /&gt;
index9 = 5&lt;br /&gt;
index10 = 4&lt;br /&gt;
unknown index0 = 1&lt;br /&gt;
unknown index1 = 1&lt;br /&gt;
unknown index2 = 2&lt;br /&gt;
unknown index3 = 2&lt;br /&gt;
unknown index4 = 3&lt;br /&gt;
unknown index5 = 4&lt;br /&gt;
unknown index6 = 4&lt;br /&gt;
unknown index7 = 4&lt;br /&gt;
unknown index8 = 5&lt;br /&gt;
unknown index9 = 5&lt;br /&gt;
unknown index10 = 5&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x907&lt;br /&gt;
block size = 82&lt;br /&gt;
&lt;br /&gt;
materials&lt;br /&gt;
&lt;br /&gt;
materials count = 1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
material0 name = 01 - Default&lt;br /&gt;
engine shader = details\blend&lt;br /&gt;
compiler shader = default&lt;br /&gt;
game material = default&lt;br /&gt;
texture path = det\det_listya&lt;br /&gt;
texture = Texture&lt;br /&gt;
flags (2 sided, etc) = 0x0&lt;br /&gt;
unknown data = ['0x12', '0x1', '0x0', '0x0', '0x1', '0x0', '0x0', '0x0']&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===============================================================================&lt;br /&gt;
block = 0x922&lt;br /&gt;
block size = 38&lt;br /&gt;
&lt;br /&gt;
author&lt;br /&gt;
&lt;br /&gt;
author name = \\SUSHKA\cy-27&lt;br /&gt;
creation date = ['0xf', '0x28', '0x98', '0x43']&lt;br /&gt;
modifier name = \\SUSHKA\cy-27&lt;br /&gt;
modification date = ['0xf', '0x28', '0x98', '0x43']&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>93.80.121.34</name></author>	</entry>

	<entry>
		<id>http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)</id>
		<title>Формат файлов *.object (формат объектов SDK)</title>
		<link rel="alternate" type="text/html" href="http://stalkerin.gameru.net/wiki/index.php?title=%D0%A4%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2_*.object_(%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82_%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BE%D0%B2_SDK)"/>
				<updated>2010-03-24T16:11:36Z</updated>
		
		<summary type="html">&lt;p&gt;93.80.121.34: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== О формате ==&lt;br /&gt;
Формат *.object используется в качестве основного формата хранения моделей на этапе редактирования (включая экспорт из Maya или 3ds Max и хранение моделей до компиляции уровня)&lt;br /&gt;
&lt;br /&gt;
== Описание формата(из кода xrFSL) ==&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''EOBJ_VERSION'' = 0x10;&lt;br /&gt;
&lt;br /&gt;
'''EObjectChunkIDs:'''&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MAIN''	= 0x7777,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_VERSION''	= 0x0900,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_FLAGS''	= 0x0903,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SURFACES_0'' = 0x0905,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SURFACES_1'' = 0x0906,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SURFACES_2'' = 0x0907,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MESHES''	= 0x0910,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_0911''	= 0x0911,	// '''ignored by AE(Actor Editor)'''&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_USERDATA''	= 0x0912,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_BONES_0''	= 0x0913,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MOTIONS''	= 0x0916,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_SHADERS_0'' = 0x0918,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_PARTITIONS_0'' = 0x0919,	// old format&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_TRANSFORM'' = 0x0920,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_BONES_1''	= 0x0921,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_REVISION''	= 0x0922,	// file revision&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_PARTITIONS_1'' = 0x0923,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_MOTION_REFS'' = 0x0924,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CHUNK_LOD_REF''	= 0x0925	// '''LOD\Reference'''&lt;br /&gt;
&lt;br /&gt;
'''EObjectClipChunkIDs:'''&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CLIP_VERSION_CHUNK'' = 0x9000,&lt;br /&gt;
&lt;br /&gt;
		''EOBJ_CLIP_DATA_CHUNK'' = 0x9001&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''EMESH_VERSION'' = 0x11;&lt;br /&gt;
&lt;br /&gt;
'''EMeshChunkID:'''&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VERSION''	= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_MESHNAME'' = 0x1001,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_FLAGS''	= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_BBOX''	= 0x1004,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VERTS''	= 0x1005,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_FACES''	= 0x1006,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMAPS_0''	= 0x1007,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMREFS''	= 0x1008,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_SFACE''	= 0x1009,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_OPTIONS''	= 0x1010,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMAPS_1''	= 0x1011,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_VMAPS_2''	= 0x1012,&lt;br /&gt;
&lt;br /&gt;
		''EMESH_CHUNK_SG''	= 0x1013&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''BONE_VERSION_1'' = 0x1;&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''BONE_VERSION_2'' = 0x2;&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''BONE_VERSION'' = ''BONE_VERSION_2'';&lt;br /&gt;
&lt;br /&gt;
'''EboneChunkID:'''&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_VERSION''	= 0x0001,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_DEF''	= 0x0002,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_BIND_POSE''= 0x0003,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_MATERIAL''	= 0x0004,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_SHAPE''	= 0x0005,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_IK_JOINT''	= 0x0006,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_MASS_PARAMS'' = 0x0007,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_IK_FLAGS''	= 0x0008,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_BREAK_PARAMS'' = 0x0009,&lt;br /&gt;
&lt;br /&gt;
		''BONE_CHUNK_FRICTION''	= 0x0010&lt;br /&gt;
&lt;br /&gt;
==Game Materials Library(из кода xrFSL)==&lt;br /&gt;
&lt;br /&gt;
	const uint16 ''GAMEMTLS_VERSION'' = 1;&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLS_CHUNK_VERSION''			= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLS_CHUNK_AUTOINC''			= 0x1001,&lt;br /&gt;
&lt;br /&gt;
		GAMEMTLS_CHUNK_MATERIALS''		= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLS_CHUNK_MATERIAL_PAIRS''	= 0x1003,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_MAIN''			= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_FLAGS''			= 0x1001,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_PHYSICS''		= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_FACTORS''		= 0x1003,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_FLOTATION''		= 0x1004,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_DESC''			= 0x1005,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTL_CHUNK_INJURY''		= 0x1006,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_PAIR''		= 0x1000,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_BREAKING''	= 0x1002,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_STEP''		= 0x1003,&lt;br /&gt;
&lt;br /&gt;
		''GAMEMTLPAIR_CHUNK_COLLIDE''	= 0x1005,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SGameMaterial:'''&lt;br /&gt;
&lt;br /&gt;
			''MF_BREAKABLE''		= 0x00000001,&lt;br /&gt;
&lt;br /&gt;
			''MF_BOUNCEABLE''		= 0x00000004,&lt;br /&gt;
&lt;br /&gt;
			''MF_SKIDMARK''			= 0x00000008,&lt;br /&gt;
&lt;br /&gt;
			''MF_BLOODMARK''		= 0x00000010,&lt;br /&gt;
&lt;br /&gt;
			''MF_CLIMABLE''			= 0x00000020,&lt;br /&gt;
&lt;br /&gt;
			''MF_PASSABLE''			= 0x00000080,&lt;br /&gt;
&lt;br /&gt;
			''MF_DYNAMIC''			= 0x00000100,&lt;br /&gt;
&lt;br /&gt;
			''MF_LIQUID''			= 0x00000200,&lt;br /&gt;
&lt;br /&gt;
			''MF_SUPPRESS_SHADOWS''	= 0x00000400,&lt;br /&gt;
&lt;br /&gt;
			''MF_SUPPRESS_WALLMARKS''	= 0x00000800,&lt;br /&gt;
&lt;br /&gt;
			''MF_ACTOR_OBSTACLE''	= 0x00001000,&lt;br /&gt;
&lt;br /&gt;
			''MF_INJURIOUS''		= 0x10000000,&lt;br /&gt;
&lt;br /&gt;
			''MF_SHOOTABLE''		= 0x20000000,&lt;br /&gt;
&lt;br /&gt;
			''MF_TRANSPARENT''		= 0x40000000,&lt;br /&gt;
&lt;br /&gt;
			''MF_SLOW_DOWN''		= 0x80000000,&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''SGameMaterialPair:'''&lt;br /&gt;
&lt;br /&gt;
			''MPF_BREAKING_SOUNDS''	= 0x02,&lt;br /&gt;
&lt;br /&gt;
			''MPF_STEP_SOUNDS''		= 0x04,&lt;br /&gt;
&lt;br /&gt;
			''MPF_COLLIDE_SOUNDS''	= 0x10,&lt;br /&gt;
&lt;br /&gt;
			''MPF_COLLIDE_PARTICLES''	= 0x20,&lt;br /&gt;
&lt;br /&gt;
			''MPF_COLLIDE_MARKS''	= 0x40,&lt;br /&gt;
&lt;br /&gt;
==Engine Shader Library==&lt;br /&gt;
 &lt;br /&gt;
// guessed names&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_CONSTANTS''		= 0,&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_MATRICES''		= 1,&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_BLENDERS''		= 2,&lt;br /&gt;
&lt;br /&gt;
		''SHADERS_CHUNK_NAMES''			= 3&lt;br /&gt;
&lt;br /&gt;
====Разобрал Neo====&lt;br /&gt;
&lt;br /&gt;
===[[Попытка #1 от excid]]===&lt;br /&gt;
&lt;br /&gt;
===Ссылки===&lt;br /&gt;
Утилиты так или иначе связанные с импортом\экспортом object:&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=318 xrFSL MaxTools 0.1.1] от '''Neo]['''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=350 X-RAY Max Tools export beta 2] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=287 X-RAY Tools src] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=348 X-RAY Tools update 2.0] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=288 X-RAY Tools] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=349 Maya 2009 plugin import/export] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=347 Maya 2008 plugin import/export] от '''bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=330 Object Format] от '''Neo][, bardak'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=100 3DSMax 7 plugin export v.1.1] от '''GSC'''&lt;br /&gt;
*[http://stalkerin.gameru.net/modules.php?name=Downloads&amp;amp;d_op=getit&amp;amp;lid=98 3DSMax 8 plugin export v.2.0] от '''GSC'''&lt;br /&gt;
[[Категория:Форматы файлов]]&lt;/div&gt;</summary>
		<author><name>93.80.121.34</name></author>	</entry>

	</feed>