[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Форум » Моддинг » 6.1. Остальные уроки » Декодируем Xom, Тип за типом... шаг за шагом... (Собираю группу психов не жалеющих свое время и мозги...)
Декодируем Xom, Тип за типом... шаг за шагом...
Проверенные
Сообщений: 336
Реп: 51
А что надо выделить чтобы сохранить текстуру?

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (контер)
А что надо выделить чтобы сохранить текстуру?

XImage


 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Quote (vera34)
слушай Алекс а че это за штука?

Если это перевести - это поверхность той штуки, которая светится, когда инопланетяне забирают.. короче типа чёрной дыры-её поверхность


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Хм. первое что открыл -
data/unitcube.xom
интересно, это не поксель?)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Сразу скажу сорри за баг, если выскакивает ошибка при открытии файла, нужно перезапустить, я забыл очистить буфер, но я ее уже исправил..

Я тут лазил по файлам с Небосводами, и обнаружил следующее

XMaterial
XAlphaTest
XZBufferWriteEnable
XCullFace
XLightingEnable
XBlendModeGL

Это классы на которые ссылается XSimpleShader. Они аналогичны функциям

glDisable(GL_COLOR_MATERIAL); glColorMaterial
glDisable(GL_ALPHA_TEST); glAlphaFunc
glEnable/glDisable(GL_DEPTH_TEST);
glDisable(GL_CULL_FACE); glCullFace
glEnable/glDisable(GL_LIGHTING);
glDisable(GL_BLEND); glBlendFunc

Только вот какую куда сувать и как их использовать я не знаю...


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Круто, теперь я знаю имена ресурсов, из которых можно сделать новое оружие для W3D!!! =)

 
Woitek
Проверенные
Сообщений: 523
Реп: 57 / Инв: 11
In bundle04.xom in w3d models are such fun that they want to extract the 3d:)

Добавлено (30.06.2009, 00:46)
---------------------------------------------
Where hard cap on the W4 in w3d o.O do not further the idea made team17 ...

 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Quote (AlexBond)
Круто, теперь я знаю имена ресурсов, из которых можно сделать новое оружие для W3D!!! =)

AlexBond, не знаю кто ты и с этой ли ты планеты или ты внеземной разум, но я определённо восхищаюсь тем как ты всё это понимаешь! Прям ваще крут


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Woitek
Проверенные
Сообщений: 523
Реп: 57 / Инв: 11
Wow xom_view 2.0 can open and show the models of the WF maps as in w3d. It may be possible to add in the same way as it does in w3d random maps without loss.
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (AlexBond)
XMaterial
XAlphaTest
XZBufferWriteEnable
XCullFace
XLightingEnable
XBlendModeGL

Так с XMaterial я разобрался.
С XZBufferWriteEnable тоже, там лишь один байт... хотя... обнаружился новый тип:
XDepthTest......

Больше всего интересует XBlendModeGL, она вмещает в себя две переменные:

Code

01 00 00 06 00 00 00 07
00 00 00

Code

01 00 00 06 00 00 00 01
00 00 00

Code

01 00 00 01 00 00 00 01
00 00 00

glBlendFunc тоже содержит две переменные следующих типов:

Code

GL_ZERO
GL_ONE
GL_SRC_COLOR
GL_ONE_MINUS_SRC_COLOR
GL_DST_COLOR
GL_ONE_MINUS_DST_COLOR
GL_SRC_ALPHA
GL_ONE_MINUS_SRC_ALPHA
GL_DST_ ALPHA
GL_ONE_MINUS_DST_ALPHA
GL_SRC_ALPHA_SATURATE

Только вот неизвестно к какому типу относится индекс....


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Небеса уже можно просматривать... Прикрепляю последнюю версию XomView'а 2.0.0.3

Прикрепления: XomView_v2_0_0_.rar (240.8 Kb) · 8174171.jpg (138.4 Kb) · 6909955.jpg (137.5 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Решил поковырять анимацию, наткнулся на интересную статью http://xproger.mentalx.org/old/?id=1&page=2&doc=anim3d
Теперь понятны многие типы:
А именно :
XSkin - связывает кость XBone с матрицей XJointTransform
XSkinShape - связывает кости с объектом
XWeightSet - вес вершин - взаимодействия вершины с костью
XBone - сама кость

Далее идет Сама анимация в XAnimClipLibrary

Все просто! Осталось лишь декодировать каждый тип =)

План такой:
1.Нарисовать кости
2.Расшифровать их анимацию
3.Запустить анимацию
4.Связать кости с объектами


 
DrHitman27
Админы
Сообщений: 2115
Реп: 52
даже TitleMesh.xom читать уже может biggrin

 
firsacho
Админы
Сообщений: 3812
Реп: 84 / Инв: 15
круто... когда прога xom view превратится в xom edit: цены ей не будет)



Смысл жизни в том, чтобы жизнь имела смысл... (firsacho 2005)
Рай придуман, чтобы не страшно было умирать. Ад придуман, чтобы не страшно было жить. (firsacho 2007)
Мир делиться на два типа людей: Бездарные трудоголики и Талантливые лентяи. (firsacho 2008)

mod.worms.pro - мод Worms Renewation для Worms4
 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Quote (AlexBond)
Все просто! Осталось лишь декодировать каждый тип =)

Хочешь сказать, что скоро вместо червяков по карте будут ползать совсем другие существа?)


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Делайте что хотите, мне W4 не нравились и не нравятся, я пишу это прогу лишь для своих целей =)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Такс, по поводу XBone я не могу понять, что означают данные:

Там как я понял две матрицы, потом ноль и еще какой-то вектор или точка и длинна...

Прикрепления: 8023024.png (12.3 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Если брать из статьи что у я приводил, то код анимационных преобразований такой:
Code
for i := 0 to V_Count - 1 do
    begin
      RVertex[i] := Vector(0, 0, 0);
      for j := 0 to B_Count - 1 do
        RVertex[i] := RVertex[i] + Weight[i][j] * Bone[j].Matrix * Vertex[i];
    end;

Только вот вопрос, где где тут Bone.Matrix и как она связана с XBone, XJointTransform...?

Да и не понятно как достать Weight из XWeightSet...

Хотя понятно... Тут идет прямой массив для всех костей, к примеру если 34 кости и в объекте 376 точек, то в WeightSet хранится 12784 весовых компонент. Но это в W4 в W3D совсем другая структура...

Короче проблема с матрицами......

Прикрепления: 8392599.png (4.4 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кое что получается с XAnimClipLibrary...

Итак в начале идет непонятная хрень, видимо шапка, далее идет название анимации, и число клипов. Посли чего идет шапка клипа, номер его, количество кадров, и сами карды, которые содержат 6 плавающих точек, итак:

Code
XAnimClipLibrary:
----AnimHead--------
HeadName|NumClips | ???| Name | NumClips
----Clip N--------
ClipHead | Number | Frames
----Frame--------
Position (vector) | Rotate (vector)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кое что проясняется:

Code
XAnimClipLibrary:
----AnimHead--------
HeadName|NumBonesClips  
------BonesClip-----------
?|?|?|?|BoneName
----------------------
Name | NumClips
----Clip N--------
ClipHead | Number | Frames
----Frame--------
Position (vector) | Rotate (vector)


 
Форум » Моддинг » 6.1. Остальные уроки » Декодируем Xom, Тип за типом... шаг за шагом... (Собираю группу психов не жалеющих свое время и мозги...)
Поиск: