[ Обновленные темы · Новые сообщения · Участники · Поиск · RSS ]
Декодируем Xom, Тип за типом... шаг за шагом...
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
бред...

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
По поводу редактора. Герыч предлагаешь перетаскиванием открывать файл? Тогда вопрос что делать с открытым файлом? Про аргументы подумаю, давно просто делал.

 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
я имел ввиду именно двойной щелчок по файлу xom. Делается элементарным чтением аргументов командной строки.

Почему экспорт xml - бред?


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

 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
он удобен для программ, ибо есть масса свободных парсеров, которые в 2 счёта можно прикрутить к проге.

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

Quote
Недостатки

* Синтаксис XML избыточен.
o Размер XML документа существенно больше бинарного представления тех же данных. В грубых оценках величину этого фактора принимают за 1 порядок (в 10 раз).
o Размер XML документа существенно больше, чем документа в альтернативных текстовых форматах передачи данных (например JSON) и особенно в форматах данных оптимизированных для конкретного случая использования.
o Избыточность XML может повлиять на эффективность приложения. Возрастает стоимость хранения, обработки и передачи данных.
o Для большого количества задач не нужна вся мощь синтаксиса XML и можно использовать значительно более простые и производительные решения.
* XML не содержит встроенной в язык поддержки типов данных. В нём нет понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
* Иерархическая модель данных, предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно-ориентированными графами.
#

* Выражение не иерархических данных (например графов) требует дополнительных усилий.
* Кристофер Дейт отмечал, что «...XML является попыткой заново изобрести иерархические базы данных...» (в 1980-е года иерархические базы данных были вытеснены реляционными базами данных).

# Пространства имён XML сложно использовать и их сложно реализовывать в XML парсерах.
# Существуют другие, обладающие сходными с XML возможностями, текстовые форматы данных, которые обладают более высоким удобством чтения человеком (YAML, JSON, SweetXML)



 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
Да, не поддерживает, получится костыль. Просто смотри, как можно сделать:
Code
<xomArchive>
    <xomObjects>

      <XDataBank id='0'>
         <ContainerResources href="someid" />
      </XDataBank>

      <XContainerResourceDetails id='someid'>
        <Value href='someid'/>
        <Name>someid</Name>
        <Flags>80</Flags>
      </XContainerResourceDetails>

      <HexData id='someid-0'>Имя файла.bin</HexData>        <!-- ссылка на сами данные -->

    </xomObjects>
</xomArchive>

То есть всё, что можно декодировать в xml будет в самом xml, а неизвестные данные в bin файлах рядом с ним. По-моему, всё логично.
На самом деле, импорт очень лёгкий. Ты просто должен записать все xml контейнеры в xom, а при виде HexData скопировать содержимое из bin файла.

-----------

В ответ на твой вопрос

Quote
К примеру мне хочется запихнуть массив вершин, с нормалями и текстурными координатами. Как мне это сделать?

ты просто получишь столько bin файлов, сколько у тебя разных контейнеров.


________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кому нужно иметь 100 файлов для одной модели?

 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
файлы можно зазиповать к примеру, можно тупо в 1 файле хранить недекодируемые данные, всё зависит от твоей фантазии.

Вообще понимаю, ты не будешь это делать.

Кстати, сейчас xomview так и не даёт возможности создавать новые контейнеры или редактировать старые? только изменение текстур и моделей?


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

 
Герыч
Админы
Сообщений: 1240
Реп: 60 / Инв: 5
последнее не понял, т.к. не помню структуру xom'а.

________________________
__|____|____|____|____|__
|____|____|____|____|____|
__|___бицца головой___|__
|____|____|сюда|____|____|
__|____|____|____|____|__
|____|____|____|____|____|
 
Drun
Хранители порядка
Сообщений: 1099
Реп: 23 / Инв: 14
проект "тает" happy
 
Dj_EpisCop
Проверенные
Сообщений: 4
Реп: 0
расскажите как пользоваться этой программой вот я например хочу бочку со своим кланом создать

 
firsacho
Админы
Сообщений: 3813
Реп: 84 / Инв: 15
не туда пишешь, этот топик про формат ксом. Задай этот вопрос в разделе 3d моделирование/вопросы



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

mod.worms.pro - мод Worms Renewation для Worms4
 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Пришел... почитал... открыл исходники.... порылся... вспомнил почему бросил... закрыл... ушел...

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Проект развивается.
Я декодировал XDetailObjectsData
И теперь открываются почти все xom файлы, в особенности из Worms Forts



 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кое что, из рабочего материала, при попытке открыть SuperSheep.xom возникает ошибка анимации, и я не могу ее исправить, так как не пойму как один и тот же XAnimClipLibrary выглядит по разному для W3D и W4.
Формат XAnimClipLibrary следующий:
Code

type XAnimClipLibrary = record
Name: IndexString;
NumKeys: Integer;
Keys: Array of TTypeKey;
NumClips: Integer;
Clips:Array of TAnimClip;
end;

type TTypeKey= record
AnimType: Cardinal;
Object: IndexString;
end;

type TAnimClip= record
Time: Single;
Name: IndexString;
NumAnimKeys: VariantInteger;   
AnimKeys: array of TKeyData;
end;

type TKeyData = record
Index: VariantWord;
Type: Word;
Unknown: 6bytes;
NumKeyFrame: integer;
KeyFrames: array of TKeyFrame;
end;

type TKeyFrame = record
InTanget1: Single;
InTanget2: Single;
OutTanget1: Single;
OutTanget2: Single;
Time:Single;
Value:Single
end;

Вот такой тупой формат!!! Причем VariantInteger и VariantWord Мне не понятны... как и Unknown:6bytes sad


Может когда нибудь я найду связь sad

Для Cluser связь нашел

А вот этот код в раскодированном виде:


 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Я раскодировал эту долбанную структуру!!!! =)
Там все ключи идут по порядку для каждого клипа,
не использованные ключи делаются пустыми,
приобретая структуру 01 01 00 00 .... 00 в 16 байт

Отсюда вывод: размер TKeyData равен 16 байтам

Записываю мысли:
После считывания Time: Single и Name: IndexString, происходит считывание NumAnimKeys: VariantInteger
Если оно равно 01 01 - 257, то далее идет список без индексов, иначе идет размер массива, затем защитный байт 257
После Index: VariantWord, если не сжатый формат. и Type: Word далее Unknown: 6bytes и NumKeyFrame: integer.

Мысли немного плавают, на свежую голову думаю, все получиться!


 
DrHitman27
Админы
Сообщений: 2115
Реп: 52
если модель ранца поменять, то из него не появляется огня. надеюсь твоя прога позволит добавлять подобные точки

 
AlexBond
Админы
Сообщений: 1042
Реп: 106 / Инв: 8
Кое что нарыл по анимации в Майя http://81.9.6.4/books/show_book.php?book_id=872
Не находите сходства? =)

Черви писались на Maya, а значит изучив ее работу я смогу подойти к пониманию анимации костей. wink


 
Поиск: