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

 
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.Связать кости с объектами


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Я может совсем отстал от жизни, но че такое этот Юзербар и на какой он нужен?

 
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)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Герыч)
Вопрос, как ты определяешь что это за данные float'ы или int'ы?

Хех! biggrin Чувак, прежде чем начинать программировать, на Далфях и Си, я изучал Ассемблер =) А там нету никаких 2.234 там DBF90E40. У меня прога есть, которую я в то время написал Real<->Hex Она переводит в Hex и обратно числа с запятой. Так вот если число заканчивается на 40, 80, 3F, BF, то это float переменная. Целые же числа идет слева направо, а с точкой с право налево.

Сам посмотри единица всегда выглядит так
00 00 80 3F
А минус единица
00 00 80 BF

Поэтому очень просто находить Матрицу особенно единичную в массиве hex данных!

Прикрепления: 0292388.png (7.7 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Могу взять отпустк tongue Если я тебе надоел =)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Я создал формат *.xom3d в котором и буду хранить объекты, загружаться этот формат будет в 3DSMax через скрипт, скрипт я уже написал, так что дело за малым, любуйтесь:

P.S. "Злые вы, уйду я от вас"

Прикрепления: 5824143.png (102.0 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
У меня получилось загрузить в 3DSMAX текстуры, по поводу иерархии я сделал ее на dummy объектах, другого способа не придумал.
Короче редактирование будет работать так:
1. Выберается XGroup или XShape в списке через XomView.
2. Cтановиться активной кнопка Save as *.xom3d, после этого жмем ее, и выбераем место, куда сохраняется файл *.xom3D, с ним сохраняются и текстуры
3. В 3DSMax выбераем MAXScript > RunSctript -> Xom3DLoader.ms
4. В Utility появляется Xom 3D Model Loader c кнопкой Open *.xom3d
5. Открываем Xom3D файл, он загружается

-- Далее еще в проекте --
6. Редактируем нужные места
7. Сохраняем через Save *.xom3D
8. В XomView выделяем ту группу что хотим изменить и жмем Load *.xom3D
9. Программа сверяет дерево и имена в группе и файле и если они идентичны, производится замена.
10. Сохраняем Xom

Прикрепления: 0460629.png (184.5 Kb) · XomView_v2_0_2.rar (242.7 Kb)


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Symbianer)
1.Когда выйдет прога
2.Мона будет вытаскивать модели из вормс 3д?

Прога выйдет когда будет готова, еще много нужно сделать.
Вытаскивать можно и не только из W3D даже из WF без проблем.


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Жди когда я закончу расшифровку XOM анимации и коректную замену ресурсов. Дело в том, что модели достать ты можешь прямо сейчас, только нафиг они тебе если ты их не сможешь никуда вставить =) W4 и W3D имеют разные структуры анимации поэтому придется помучатся... Не анимированые объекты проще замещать, но надо учитывать ряд особенностей, некоторые объекты, как бетонный осел состоят из трех групп, поэтому прога от K^2 и не может их вставлять.

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Что-то мне 3DSMAX вообще разонравился... Нормали не переносятся, материалы тоже глючат, невозможно создать аналог OpenGL Blend материала...

Даже не знаю как решить эту проблему, ведь без нормалей и атрибутов материала нельзя корректно перенести модель, такие свойства как полупрозрачность, альфаканал, свечение, гладкие грани, все это проблемно в 3DSMAX, а я думал этот редактор лучший...

*добавлено позже*
с нормалями проблем нет, переносятся корректно =)
Теперь буду мучать материалы


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Короче, что касается свечений и других эффектов я думаю сохранить их в виде шейдеров, т.к. они и есть шейдеры =)

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
эффекты или сами модели?

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Quote (Symbianer)
Я пробовал из вормс фортс вытаскивать модели и вот я вытащил а там некоторые части модели только и то треугольниками этот глюк будет исправлен?

Уже исправлен =) Я только вчера этим занимался.

По поводу XImage... я не могу раскодировать этот формат, а точнее шапку в нем... пока не смогу ее раскодировать, не смогу импортировать текстуры, а без текстур и модели нельзя кидать... так что тупик...

Кто хочет помочь, смотрим в Hex окне на разных картинках XImage и ищем закономерность.... Первый байт это название, два других это размеры, дальше байт идет типа картинки, вот все что после него я не понимаю....


 
Поиск: