Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MetroEX - универсальный инструмент для работы с ресурсами игр серии Метро
GAMEINATOR forums > Общие разделы > Создание и модификация игр. Геймдев.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17
iOrange
Цитата(Modera @ 26.02.2019, 23:40) *
это не опечатки, это именно куда-то пропадают буквы. Если бы так на самом деле в архивах было игра бы не запустилась.

Да, это была ошибка в моем коде, к сожалению. Приношу извинения.
Т.к. накопилось немало багов - выкладываю промежуточную версию - v0.25
* пофикшено много багов
* исправлены вылеты
* правильно читаются абсолютно все модели (на 100% не уверен, если что - сообщайте)
* читаются динамические модели, но экспортируются без скелета и анимаций (в этой версии)

ссылка - в первом сообщении
alexsimm
А можно сделать возможность экспорта и конвертации выбранных папок, а не по одной папке?

Кстати, ссылки нет на вашу программу
alexsimm
iOrange, как открыть эти ддс?
Ни фотошоп, ни иксэнвью корректно не отображают. Видео карта нормальная нвидиа 1070.
iOrange
Цитата(alexsimm @ 27.02.2019, 06:34) *
Ни фотошоп, ни иксэнвью корректно не отображают. Видео карта нормальная нвидиа 1070.

В программе на выбор есть возможность извлекать в "Legacy DDS" - cтарый формат DDS, который понимают старые программы.
Используйте его если проблемы с новым.

Вообще я рекомендую извлекать в TGA или PNG
Minitiv
Цитата(alexsimm @ 27.02.2019, 07:02) *
А можно сделать возможность экспорта и конвертации выбранных папок, а не по одной папке?

Кстати, ссылки нет на вашу программу

Она есть
Просто зайди на первую страницу
spoiler
alexsimm
Цитата(iOrange @ 27.02.2019, 07:44) *
Вообще я рекомендую извлекать в TGA или PNG

А что делать с теми ддс, которые лежат внутри? Программа их не ковертирует в тга. Если их выдёргивать, то без конвертации, но они некорректно отображаются.
iOrange
Цитата(alexsimm @ 27.02.2019, 07:16) *
А что делать с теми ддс, которые лежат внутри?

А, прошу прощения, неправильно вас понял. Да, про них я совсем забыл.
Если пользуетесь фотошопом от версии CS6 и выше - вот плагины для DDS от Intel - открывает любые варианты.
https://gametechdev.github.io/Intel-Texture-Works-Plugin/

Я в следующей версии добавлю возможность конвертации тех dds что лежат в архивах тоже.
alexsimm
iOrange, я правильно понимаю: если в у текстуры есть три разрешение 512, 1024,2048 то программа распакует только файлы с 2048?
iOrange
Цитата(alexsimm @ 27.02.2019, 07:52) *
я правильно понимаю: если в у текстуры есть три разрешение 512, 1024,2048 то программа распакует только файлы с 2048?

Если вы про Export to OBJ - то да, программа ищет текстуру с наивысшим разрешением.
alexsimm
iOrange, нет. Я имел ввиду когда делаем экспорт папки с текстурами
slik
Это только у меня так?



Все, понял, надо смотреть именно на первой странице темы.
Armeicev
Цитата(iOrange @ 27.02.2019, 09:09) *
Цитата(alexsimm @ 27.02.2019, 07:52) *
я правильно понимаю: если в у текстуры есть три разрешение 512, 1024,2048 то программа распакует только файлы с 2048?

Если вы про Export to OBJ - то да, программа ищет текстуру с наивысшим разрешением.

Новая версия переносит все локации? И как открыть этот файл в 3d max?

Цитата(iOrange @ 27.02.2019, 09:09) *
Цитата(alexsimm @ 27.02.2019, 07:52) *
я правильно понимаю: если в у текстуры есть три разрешение 512, 1024,2048 то программа распакует только файлы с 2048?

Если вы про Export to OBJ - то да, программа ищет текстуру с наивысшим разрешением.

Новая версия переносит все локации? И как открыть этот файл в 3d max?
scwosh
Цитата(Armeicev @ 27.02.2019, 15:25) *
И как открыть этот файл в 3d max?

Ну дык если сохранил в OBJ - так и открывай через Import. Если запросит путь к текстуре - укажи.
Armeicev
Цитата(scwosh @ 27.02.2019, 14:09) *
Цитата(Armeicev @ 27.02.2019, 15:25) *
И как открыть этот файл в 3d max?

Ну дык если сохранил в OBJ - так и открывай через Import. Если запросит путь к текстуре - укажи.

Локации не переносятся в OBJ
qvvxvvq
Вот теперь с версией 0.25 все стало отлично.
Ждем 0.3
Автору большое спасибо
Z-O-M-B-I-E
Программа отличная, вот только экспорт моделей идет с текстурами, хотелось бы возможность экспорта только меша, без текстур, хотя это уже придирки.

Ну и самое главное, так и должно быть, что модели отображаются и экспортируются отзеркаленные?

slik
Цитата(Z-O-M-B-I-E @ 27.02.2019, 14:14) *
Ну и самое главное, так и должно быть, что модели отображаются и экспортируются отзеркаленные?

Кстати да, я думал, почему же руль у зила с правой стороны smile.gif
Modera
Fuck yeah, всё-таки смог из level.bin достать информацию о объектах. Правда только о статических. laugh.gif
Вот это я понимаю качество, одна травинка на 60к полигонов!

Большие уровни пока не открыл, по памяти вылетает, надо искать 64-битный компилятор делфи..
Armeicev
Цитата(Modera @ 27.02.2019, 16:01) *
Fuck yeah, всё-таки смог из level.bin достать информацию о объектах. Правда только о статических. laugh.gif
Вот это я понимаю качество, одна травинка на 60к полигонов!

Большие уровни пока не открыл, по памяти вылетает, надо искать 64-битный компилятор делфи..

Друг как ты открыл? Можешь кинуть ссылку на прогу?
Modera
Armeicev, эту прогу сейчас не буду выкладывать, может потом как доделаю. Да и сохранять всё-ровно нельзя, только просматривать.
Как выдернуть статические объекты из level.bin могу описать, если кому надо.
Armeicev
Цитата(Modera @ 27.02.2019, 17:23) *
Armeicev, эту прогу сейчас не буду выкладывать, может потом как доделаю. Да и сохранять всё-ровно нельзя, только просматривать.
Как выдернуть статические объекты из level.bin могу описать, если кому надо.

Блин, обидно мне срочно нужно вытянуть локации, ну ладно)
iOrange
Цитата(Modera @ 27.02.2019, 15:01) *
всё-таки смог из level.bin достать информацию о объектах

Прикольно. Я еще level.bin не смотрел. Я пока уровни сильно не копал, у меня приоритет на анимации.

Цитата(Armeicev @ 27.02.2019, 13:47) *
Локации не переносятся в OBJ

А я и не обещал. Приоритер для версии v0.3 - анимации. Локациями буду заниматься после этого.

Цитата(iOrange @ 27.02.2019, 16:46) *
мне срочно нужно вытянуть локации

А в чем срочность, если не секрет?
Armeicev
Цитата(iOrange @ 27.02.2019, 17:48) *
Цитата(Modera @ 27.02.2019, 15:01) *
всё-таки смог из level.bin достать информацию о объектах

Прикольно. Я еще level.bin не смотрел. Я пока уровни сильно не копал, у меня приоритет на анимации.

Цитата(Armeicev @ 27.02.2019, 13:47) *
Локации не переносятся в OBJ

А я и не обещал. Приоритер для версии v0.3 - анимации. Локациями буду заниматься после этого.

Цитата(iOrange @ 27.02.2019, 16:46) *
мне срочно нужно вытянуть локации

А в чем срочность, если не секрет?

Лс чекай
iOrange
Напоминаю, что программа предназначена только для личного пользования в ознакомительных целях!
Распространение извлеченных файлов и их содержимого за пределы вашего личного ПК - нарушение лицензионного соглашения.
Автор программы не несет ответственности за прямой или косвенный ущерб причиненный в результате неправомерного использования программы.
Skat
Modera, Напиши.
Atom889
iOrange, при экспортировании пачкой - не экспортируются текстуры. В 0.3 норм будет?
iOrange
Цитата(Atom889 @ 27.02.2019, 20:31) *
iOrange, при экспортировании пачкой - не экспортируются текстуры. В 0.3 норм будет?

Тут вот какое дело - когда экспортируешь одну модель, то понятно куда класть текстуры.

Когда папку целиком - уже не совсем.
Я пока в раздумьях как правильно сделать. Скорее всего добавится настроек в окно экспорта.
Yurii2033
Для начала хочу поблагодарить iOrange за оперативность, за то, что выпустил такой удобный конвертер моделей и теперь я могу если хоть не поиграть, то хоть глянуть на модельки так.

Присоединюсь и я к пожеланиям:

1. Хочется в версии 0.3 иметь возможность открывать динамические модели.
Хочу посмотреть, как сделаны динамические элементы "Авроры", сколько полигонов и т.д.
Я сам занимаюсь 3D-моделированием и мне интересно было бы увидеть полигональную сетку этих моделей.
Особенно интересует пассажирский вагон с купе, его проработка.

2. Ещё бы просмотрщик локаций, но уже будет отлично, если хотя бы динамику можно будет открывать.
И да, если что, у меня игра жутко тормозит, играть невозможно, потому очень хотелось бы просмотрщик локаций какой-то.
Но игра достойная вышла! Посмотрел летсплеи по ней. Мне очень понравилась.
iOrange
Цитата(Yurii2033 @ 27.02.2019, 22:26) *
Хочется в версии 0.3 иметь возможность открывать динамические модели.

Это уже можно делать в версии v0.25 wink.gif
И экспортировать в OBJ. Чего нет - так это скелета и анимаций. Но сетка есть.

Цитата(Yurii2033 @ 27.02.2019, 22:26) *
Ещё бы просмотрщик локаций

Это в планах. Товарищь Modera владеет секретным редактором уровней, так что если что - попробуй его уломать поделиться ))
alexsimm
iOrange, сделайте,чтобы, при сохранении модели, текстуры все экспортировались, не только дифуз, а ещё бампы. И уберите зеркальное отображение. Спасибо
Modera
Цитата(Skat @ 27.02.2019, 19:53) *
Modera, Напиши.

Вот программа на С которая пишет все статические объекты из level.bin.
Спойлер
Код
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void error(const char *message)
{
    fprintf(stderr, "%s\n", message);
    exit(-1);
}

int r_int(FILE *f)
{
    int i;
    fread(&i, sizeof(i), 1, f);
    return i;
}

float r_float(FILE *f)
{
    float fl;
    fread(&fl, sizeof(fl), 1, f);
    return fl;
}

short r_word(FILE *f)
{
    short s;
    fread(&s, sizeof(s), 1, f);
    return s;
}

char r_byte(FILE *f)
{
    char b;
    fread(&b, sizeof(b), 1, f);
    return b;
}

int r_chunk(FILE *f, int id)
{
    if(r_int(f) == id)
        return r_int(f); // size
    else
    {
        fprintf(stderr, "%d ", id);
        error("can't open chunk");
        return 0;
    }
}

int dictlen;
char *dictionary;

char *dictword(int n)
{
    char *ptr;
    if(n >= dictlen) error("word index out of range");

    ptr = dictionary;
    while(n--)
        ptr = strchr(ptr, '\0')+1;

    return ptr;
}
        

int main(int argc, char *argv[])
{
    int magic, datapos, datasize, dictsize;
    FILE *f;

    int temp, start;
    int entsize, entcount;

    int counter;
    int classcrc;

    f = fopen("level.bin", "rb");
    if(!f) error("can't open file!");

    magic = r_int(f);
    if(magic != 0x6C76656C) error("this is not level.bin file!");
    r_byte(f); // skip flags

    // remember data pos because we need load dictionary before parsing
    datasize = r_chunk(f, 1);
    datapos = ftell(f);
    fseek(f, datasize, SEEK_CUR);

    // load dictionary
    dictsize = r_chunk(f, 2);
    dictlen = r_int(f);
    dictionary = malloc(dictsize-4);
    fread(dictionary, dictsize-4, 1, f);

    // parse data
    fseek(f, datapos, SEEK_SET);

    r_chunk(f, 0xD44B11A9); // unknown section containing all others

    temp = r_chunk(f, 0xE48E50F6); // "startup" section
    fseek(f, temp, SEEK_CUR); // skip it

    temp = r_chunk(f, 0x922908F0); // unknown section
    fseek(f, temp, SEEK_CUR); // also skip

    entsize = r_chunk(f, 0x50EC64E5); // "entities" section
    start = ftell(f);
    entcount = r_int(f);

    counter = 0;

    while(ftell(f) < start+entsize)
    {
        temp = r_chunk(f, 0);
        classcrc = r_int(f);

        if(classcrc == 0x2301C4EF) // STATICPROP
        {
            printf("entity_%d = begin\n", counter++);
            
                r_int(f); // skip static data key
                printf("\tatt_bone_id : stringz = \"%s\"\n", dictword(r_int(f)));
                printf("\tid : u16 = %hu\n", r_word(f));
                printf("\tparent_id : u16 = %hu\n", r_word(f));
                printf("\tatt_offset : 'pose, matrix_43T' = [\n");
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                printf("\t]\n");
                printf("\tatt_root : bool = %s\n", r_byte(f) ? "True" : "False");
                printf("\tname : stringz = \"%s\"\n", dictword(r_int(f)));
                r_int(f); // unknown 1
                r_word(f); // unknown 2
                printf("\txform : 'pose, matrix_43T' = [\n");
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                    printf("\t\t%f, %f, %f,\n", r_float(f), r_float(f), r_float(f));
                printf("\t]\n");
                printf("\tvisual : stringz = \"%s\"\n", dictword(r_int(f)));
            
            printf("end;\n\n");

            fseek(f, temp-127, SEEK_CUR); // skip rest of section
        }
        else
            fseek(f, temp-4, SEEK_CUR); // not STATICPROP, skip
    }

    free(dictionary);
    fclose(f);
    
    return 0;
}

Надеюсь достаточно наглядно. smile.gif

Цитата(iOrange @ 27.02.2019, 23:38) *
то в планах. Товарищь Modera владеет секретным редактором уровней, так что если что - попробуй его уломать поделиться ))

Мой редактор уровней тормозит не хуже игры на данный момент. smile.gif
WolfHeart
Цитата(Modera @ 28.02.2019, 03:32) *
Мой редактор уровней тормозит не хуже игры на данный момент.

А у меня игра не тормозит, на ультра летает как Су-57. wink1.gif
alexsimm
Цитата(WolfHeart @ 28.02.2019, 05:17) *
Цитата(Modera @ 28.02.2019, 03:32) *
Мой редактор уровней тормозит не хуже игры на данный момент.

А у меня игра не тормозит, на ультра летает как Су-57. wink1.gif

А ты подними циферки шейдер, посмотрим как твой СУ-57 начнёт тормозить...
Jacob Darka
iOrange any plans on making your tool be able to re-pack \ import the modified files?
Skat
Modera, Шутку оценил biggrin.gif
qvvxvvq
iOrange, ты там что-то говорил про то, что вскоре модели будут открываться с текстурами, это в 0.3 будет реализовано?
iOrange
Цитата(qvvxvvq @ 28.02.2019, 14:50) *
iOrange, ты там что-то говорил про то, что вскоре модели будут открываться с текстурами, это в 0.3 будет реализовано?

Да


Цитата(Jacob Darka @ 28.02.2019, 08:48) *
iOrange any plans on making your tool be able to re-pack \ import the modified files?

Yes


Цитата(alexsimm @ 28.02.2019, 02:03) *
iOrange, сделайте,чтобы, при сохранении модели, текстуры все экспортировались, не только дифуз, а ещё бампы. И уберите зеркальное отображение. Спасибо

Уже чуть раньше обсуждалось - будет сделано.


Вчера и позавчера ничего не делал, отдыхал и играл в Метро ))) Но работа над версией v0.3 ведется, не переживайте.
WolfHeart
Цитата(alexsimm @ 28.02.2019, 06:13) *
А ты подними циферки шейдер, посмотрим как твой СУ-57 начнёт тормозить...

Куда-ж еще выше то? Выше уже некуда.
https://yadi.sk/i/mtV0IhaPT0jcxw
AlexRewel
Доброго времени суток!

Кто-нибудь может выложить модель часов (или самого браслета) из игры в формате obj. Также буду благодарен за текстуры часов)
DaaGuda
Цитата(iOrange @ 28.02.2019, 17:40) *
Вчера и позавчера ничего не делал, отдыхал и играл в Метро ))) Но работа над версией v0.3 ведется, не переживайте.


Куда скинуть на бутылочку пива?
iOrange
Цитата(WolfHeart @ 28.02.2019, 04:17) *
А у меня игра не тормозит, на ультра летает как Су-57.

Цитата(alexsimm @ 28.02.2019, 05:13) *
А ты подними циферки шейдер, посмотрим как твой СУ-57 начнёт тормозить...

Цитата(WolfHeart @ 28.02.2019, 16:55) *
Куда-ж еще выше то? Выше уже некуда.

Ребята, есть же тема для обсуждения игры, давайте не будем спамить не по делу? Спасибо.


Цитата(AlexRewel @ 28.02.2019, 18:03) *
Кто-нибудь может выложить модель часов (или самого браслета) из игры в формате obj. Также буду благодарен за текстуры часов)

Это делается в один клик из программы )


Цитата(DaaGuda @ 28.02.2019, 18:13) *
Куда скинуть на бутылочку пива?

Хехе, спасибо ) Куплю завтра после работы за ваш счет )) Сочтемся в будущем )
DaaGuda
AlexRewel,
Это?
https://yadi.sk/d/K7Y_H7I_L3KVrw


iOrange, я на полном серьёзе, ок)
AlexRewel
Цитата(DaaGuda @ 28.02.2019, 20:34) *
AlexRewel,
Это?
https://yadi.sk/d/K7Y_H7I_L3KVrw


Да, это) Большое спасибо)
iOrange
Разбавлю тишину - динамические модели уже читаются вместе с костями z_holiday.gif
Сегодня-завтра прикручу экспорт в FBX и, наверное, запилю версию v0.29 wink_old.gif
В нее войдут:
- Фикс "зеркалирования" моделей
- Улучшения просмотрщика моделей
- Возможность экспорта моделей в FBX (динамические модели - вместе с костями).
- Фиксы по мелочи

Почему не v0.3 ? Потому что я уже пообещал что v0.3 будет поддерживать анимации, а с ними пока не все так гладко. Но работы ведутся ph34r.gif
qvvxvvq
Ждем и надеемся на сегодня)
Skat
iOrange, А локации открывать когда и в какой версии можно будет?
atanda
Цитата(iOrange @ 01.03.2019, 09:23) *
, наверное, запилю версию v0.29

Круто, ждём! Кстати, как на счёт описания формата или хотя бы исходники слить в народ? rolleyes.gif
DaaGuda
Цитата(buffy @ 01.03.2019, 16:11) *
исходники слить


Будут, читайте внимательнее.
iOrange
Цитата(Skat @ 01.03.2019, 10:38) *
iOrange, А локации открывать когда и в какой версии можно будет?

Полноценно открывать и экспортировать локации - в планах. После v0.3 версии.
На данный момент - открывается только геометрия уровня (и показывается в 3Д виде, но без экспорта).

Я сейчас сосредоточен на анимациях.


Цитата(buffy @ 01.03.2019, 15:11) *
Кстати, как на счёт описания формата или хотя бы исходники слить в народ?

Описание формата чего? Скелета? Я его не полностью еще разобрал, только кости. Если интересен формат - могу вечером написать (на работе сейчас)
По поводу исходников - я уже писал несколько раз в это треде - они будут, но после версии v0.3
Сейчас там слишком бардак и говнокод (не считая того что папка с сорцами весит почти 5 ГБ )

Как закончу с анимациями - возьму тайм-брейк, и причешу код, залью на Гитхаб.
zubr14
Я нихрена не понимаю в извлечении ресурсов и в целом в построении мода, но помню что с такого ажиатажа, с самодельных СДК начинался модинг сталкера. Прямой вопрос - что из этого выйдет в перспективе? Всё таки модить на метрохе или все утащить в нашу классику?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.