IPB

>

Вскрытие ресурсов Метро 2033

 
 Panisher
сообщение 18.03.2010, 10:28
Сообщение #161


Почти Игрок
**

Группа: Забанен
Сообщений: 28
Регистрация: 22.10.2009
Пользователь №: 12736



ЭкшнШутерПостапокалипсис
93 %
81/100
Разработчик: 4A Games
Дата выхода: 16 марта 2010
Здесь технический разговор между создателями ПО на тему ресурсов игры.

ПО для работы с ресурсами игры

Обсуждение ПО для работы с ресурсами

Мелкие моды и фиксы

Моддинг. Общее обсуждение

Советы и решения

Работа с bump- и normalmaps (от iOrange)
В альфе лежит бамп, а в зеленом канале (если я правильно понял) лежит Gloss-Map (регулирующая силу specular-бликов).
Если Вам нужна normal-map, то бапм легко в нее превратить:
1) Качаем плагин nVidia для фотошопа (тыц)
2) Открываем в фотошопе интересующий бамп (например act\act_bab_body_bump.512.dds)
3) Выделяем все четыре канала (RGB + Alpha)
4) Жмем Filter->NVIDIA Tools->NormalMapFilter...
5) В появившемся окне в разделе Height Source выбираем Alpha Channel
6) Ставим нужный scale (я ставлю 10)
7) Жмем OK
8) Наслаждаемся результатом

(IMG:http://img.gameru.net/th/c49ec.gif)

(IMG:http://img.gameru.net/th/86f79.gif) (IMG:http://img.gameru.net/th/c0be6.gif)


Сообщение отредактировал Deimos - 20.04.2010, 17:01
Перейти в начало страницы
 
 
 
Ответов
 surfer
сообщение 26.03.2010, 23:44
Сообщение #162


Почти Игроман
*********

Группа: Забанен
Сообщений: 631
Регистрация: 25.11.2009
Пользователь №: 13092



Цитата(HikeR @ 26.03.2010, 20:42) *
вот какие встречаются текстуры
размер - расширение - тип
Код
174776     512     DXT1+mipmap
349552     512     DXT5+mipmap
524288     1024    DXT1
1048576    1024    DXT5
2097152    2048    DXT1
4194304    2048    DXT5

файлы .512 пишутся без учета мип-уровней

Ок, пофиксил. По ходу еще обнаружил, что заголовок не правильно обрезался, в результате чего к файлу прибавлялость 128 байт вместо того чтобы отниматься вместе с заголовком.

Исправленная версия: http://narod.ru/disk/19139649000/magicdds.rar.html

Сообщение отредактировал surfer - 27.03.2010, 00:00
Перейти в начало страницы
 
 
 VEN0M
сообщение 27.03.2010, 19:58
Сообщение #163


Опытный Игрок
****

Группа: Участник
Сообщений: 59
Регистрация: 31.12.2009
Из: Сыктывкар
Пользователь №: 13373



пробовал сделать upk архив но выдаёт вот такое
(IMG:http://i032.radikal.ru/1003/cd/1f187f029b3at.jpg)
Перейти в начало страницы
 
 
 Nekt
сообщение 27.03.2010, 21:13
Сообщение #164


Опытный Геймер
*******

Группа: Участник
Сообщений: 182
Регистрация: 09.04.2008
Пользователь №: 7869



ну так русское он и не понял... Там инпунт по крякозябры.. (IMG:style_emoticons/default/laugh.gif)
Перейти в начало страницы
 
 
 BAC9-FLCL
сообщение 27.03.2010, 21:50
Сообщение #165


Lo Res Chairman
**************

Группа: Участник
Сообщений: 1796
Регистрация: 09.09.2007
Пользователь №: 6792



wall_turnstena.1024 сжата по горизонтали вдвое (судя по пропорциям, там должно быть 2048х1024) - это факап конвертера или текстура действительно такая, для любителей тонких извращений с маппингом? (IMG:style_emoticons/default/smile.gif)

Сообщение отредактировал BAC9-FLCL - 27.03.2010, 21:51
Перейти в начало страницы
 
 
 VEN0M
сообщение 27.03.2010, 22:10
Сообщение #166


Опытный Игрок
****

Группа: Участник
Сообщений: 59
Регистрация: 31.12.2009
Из: Сыктывкар
Пользователь №: 13373



Цитата
ну так русское он и не понял... Там инпунт по крякозябры.. laugh.gif

без разницы есть русские буквы или нет я и из папки с игрой пробовал вместо этих "крякозябр" писалось F:\metro а остальное всё также
Цитата
wall_turnstena.1024 сжата по горизонтали вдвое (судя по пропорциям, там должно быть 2048х1024) - это факап конвертера или текстура действительно такая, для любителей тонких извращений с маппингом? smile.gif

походу
Перейти в начало страницы
 
 
 HikeR
сообщение 28.03.2010, 00:42
Сообщение #167


Магистр Игры
****************

Группа: Участник
Сообщений: 2620
Регистрация: 26.03.2007
Из: Великий Новгород
Пользователь №: 5660



Цитата(VEN0M @ 27.03.2010, 22:10) *
F:\metro а остальное всё также

пробелы в пути убери.
Перейти в начало страницы
 
 
 VEN0M
сообщение 28.03.2010, 04:28
Сообщение #168


Опытный Игрок
****

Группа: Участник
Сообщений: 59
Регистрация: 31.12.2009
Из: Сыктывкар
Пользователь №: 13373



Цитата
пробелы в пути убери.

)) спасибо помогло (IMG:style_emoticons/default/smile.gif)
Цитата
- Мод "Скажи нет рекламе книг!"

можешь вычёркивать (IMG:style_emoticons/default/smile.gif)
(IMG:http://s16.radikal.ru/i190/1003/cd/01fda5493803t.jpg)
Ссылка

Сообщение отредактировал VEN0M - 28.03.2010, 04:33
Перейти в начало страницы
 
 
 Rezzoxe
сообщение 28.03.2010, 04:39
Сообщение #169


Игроман
**********

Группа: Участник
Сообщений: 918
Регистрация: 17.10.2009
Из: Нальчик
Пользователь №: 12667



Товарищи, как закончите все мучения над распаковщиком, и если он будет
полностью консольный, кричите сделаю GUI (IMG:style_emoticons/default/rolleyes.gif)

Пример можно посмотреть тут

Сообщение отредактировал Dordex - 28.03.2010, 05:06
Перейти в начало страницы
 
 
 surfer
сообщение 28.03.2010, 05:25
Сообщение #170


Почти Игроман
*********

Группа: Забанен
Сообщений: 631
Регистрация: 25.11.2009
Пользователь №: 13092



2BAC9-FLCL, я пробовал менять значения ширины и высоты в заголовке файла - безрезультатно, все тот же квадрат.
2HikeR,
Недопиленный запаковщик .upk

Код
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include "crc32.h"

typedef struct
{
    DWORD    csig;
    DWORD    clen;
    DWORD    crc;
    DWORD    off;
    DWORD    flen;
    DWORD    cflen;
    DWORD    strlen;
    CHAR    string[1];
}
CHUNK_HEADER;

typedef struct
{
    HANDLE file;
    HANDLE memory;
    LPCVOID pdata;
    SIZE_T len;
}
MEMORY_FILE;

static MEMORY_FILE* open_memory_file( const char* name )
{
    MEMORY_FILE* handle;
    LARGE_INTEGER length;
    BOOL result;

    handle = malloc( sizeof( MEMORY_FILE ) );

    handle->file = CreateFileA(name, GENERIC_READ, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
            OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    if (handle->file == INVALID_HANDLE_VALUE)
        return 0;

    result = GetFileSizeEx(handle->file, &length);
    assert(result != FALSE);
    if (result == FALSE)
        return 0;

    handle->memory = CreateFileMapping(handle->file, NULL, PAGE_READONLY, length.HighPart, length.LowPart, NULL);
    assert(handle->memory != NULL);
    if (handle->memory == NULL)
        return 0;

    handle->len = (size_t)length.QuadPart;

    handle->pdata = MapViewOfFile(handle->memory, FILE_MAP_READ, 0, 0, handle->len);
    assert(handle->pdata != NULL);

    return handle;
}

static void close_memory_file( MEMORY_FILE* handle )
{
    assert( handle != NULL );

    UnmapViewOfFile(handle->pdata);

    CloseHandle(handle->memory);

    CloseHandle(handle->file);

    free( handle );
}

static void pack(HANDLE file, const char *path, const unsigned char *p, unsigned len)
{
    CHUNK_HEADER* header;
    unsigned size, slen;
    DWORD out, fptr;
    int i;

    slen = strlen( path ) + 1;
    size = 28 + slen + len;

    fptr = SetFilePointer( file, 0, 0, FILE_CURRENT );

    header = malloc( size );

    header->csig = 1;
    header->clen = size;
    header->crc = crc32( p, len );
    header->off = fptr + 28 + slen;
    header->flen = len;
    header->cflen = len;
    header->strlen = slen;
    for( i = 0; i < slen; i++ )
        header->string[i] = (path[i] & 0xFF) ^ header->crc;

    WriteFile( file, header, size, &out, NULL );
    WriteFile( file, p, len, &out, NULL );


}

int __cdecl main(int argc, char *argv[])
{
    HANDLE find, target;
    MEMORY_FILE* source;
    WIN32_FIND_DATA data;
    BOOL result;
    char path[255], fname[255];
    const char *filename;

    if( argc < 2 )
        return -1;

    sprintf( path, "%s\\*.*", argv[1] );

    find = FindFirstFileA( path, &data );
    assert( find != INVALID_HANDLE_VALUE );
    if( find == INVALID_HANDLE_VALUE )
        return -1;

    result = find ? TRUE : FALSE;

    if( result == TRUE )
    {
        target = CreateFileA( argv[2], GENERIC_WRITE, FILE_SHARE_READ, NULL,
                CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
        if( target == 0 )
        return -1;
    }

    while( result )
    {
        while( (strcmp( data.cFileName, "." ) == 0) || (strcmp( data.cFileName, ".." ) == 0) )
        {
            result = FindNextFile( find, &data );
            if( result == FALSE )
                return 0;
        }

        sprintf( path, "%s\\%s", argv[1], data.cFileName );
        sprintf( fname, "content\\%s", data.cFileName );
        source = open_memory_file( path );
        pack( target, fname, source->pdata, source->len );
        close_memory_file( source );

        result = FindNextFile( find, &data );
    }

    FindClose( find );

    CloseHandle( target );

    return 0;
}


Не работает. Я так понимаю в этом файле заголовки блоков записываются подряд, отдельно от блоков данных, а следом за ними в той же последовательности сами блоки (содержимое файлов) то есть котлеты отдельно мухи отдельно?

Кто-нибудь пробовал расковырять формат модели или меша? Все что оттуда нужно - это содержимое индексного и вертексного буффера, и структура вертекса. Вертекс - структура, которая может объединять набор след. данных: http://msdn.microsoft.com/en-us/library/bb172559(VS.85).aspx более подробная инфа: http://netlib.narod.ru/library/book0032/ch02_01.htm
Если удастся, то можно будет написать конвертер в какой-нить открытый формат, типа collada
Перейти в начало страницы
 
 
 BAC9-FLCL
сообщение 28.03.2010, 10:15
Сообщение #171


Lo Res Chairman
**************

Группа: Участник
Сообщений: 1796
Регистрация: 09.09.2007
Пользователь №: 6792



Еще странная текстура - window_window_3.512.

(IMG:http://img.gameru.net/th/ddd8d.jpg)

Понятно, что тут должен быть формат 1:2, а не 1:1, но проблема не столько в этом - текстура как будто размыта, и в ней очень много цветовых артефактов. Она в таком состоянии и была, или это ошибка при конвертации в ддс?

Сообщение отредактировал BAC9-FLCL - 28.03.2010, 10:22
Перейти в начало страницы
 
 
 Dr.Cox
сообщение 28.03.2010, 11:03
Сообщение #172


Ты меня так разозлил, что я сейчас ударю сам себя!
*******************

Группа: Участник
Сообщений: 3841
Регистрация: 08.07.2009
Из: Новосибирск
Пользователь №: 11551



Можно ли как-то вытащить из игры все саунтреки так скажем?
Все,надыбал при помощи распаковщика звуков,тот,что в шапке.Спасибо за него)

Сообщение отредактировал MrBlack - 28.03.2010, 11:27
Перейти в начало страницы
 
 
 surfer
сообщение 28.03.2010, 11:40
Сообщение #173


Почти Игроман
*********

Группа: Забанен
Сообщений: 631
Регистрация: 25.11.2009
Пользователь №: 13092



BAC9-FLCL, тулза всего лишь добавляет к данным об изображении заголовок, чтобы файл мог открыться в редакторе, а потом этот заголовок отрезается обратно, то есть с самим изображением никаких манипуляций не производится.

Я могу вынести настройку значений заголовка в конфиг, если в этом есть необходимость. Описание формата заголовка и устанавливаемых значений:
http://msdn.microsoft.com/en-us/library/bb943982(VS.85).aspx
http://msdn.microsoft.com/en-us/library/bb943984(VS.85).aspx
Перейти в начало страницы
 
 
 scynet
сообщение 28.03.2010, 13:23
Сообщение #174


Игроман
**********

Группа: Участник
Сообщений: 852
Регистрация: 08.07.2009
Из: г. Киев
Пользователь №: 11266



Жжёте, товарищи (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 .db.
сообщение 28.03.2010, 13:27
Сообщение #175


Ш фь тф швшще)
******************

Группа: Забанен
Сообщений: 3292
Регистрация: 12.02.2009
Пользователь №: 9832



А вы дайте SDK и будем жечь еще сильнее (IMG:style_emoticons/default/biggrin.gif)
Перейти в начало страницы
 
 
 VEN0M
сообщение 28.03.2010, 13:45
Сообщение #176


Опытный Игрок
****

Группа: Участник
Сообщений: 59
Регистрация: 31.12.2009
Из: Сыктывкар
Пользователь №: 13373



Цитата
Она в таком состоянии и была

в таком и была
Цитата
Жжёте, товарищи smile.gif

Цитата
А вы дайте SDK и будем жечь еще сильнее biggrin.gif

вообще всё испепелим (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 Salasar
сообщение 28.03.2010, 13:49
Сообщение #177


Spread the Love
************************

Группа: Участник
Сообщений: 10582
Регистрация: 25.02.2007
Из: Москва
Пользователь №: 5215



Цитата(VEN0M @ 28.03.2010, 05:28) *
Цитата
- Мод "Скажи нет рекламе книг!"

(IMG:http://s16.radikal.ru/i190/1003/cd/01fda5493803t.jpg)

(IMG:style_emoticons/default/bravo7kg.gif) (IMG:style_emoticons/default/z_lol1.gif) Браво!
Перейти в начало страницы
 
 
 VEN0M
сообщение 28.03.2010, 13:58
Сообщение #178


Опытный Игрок
****

Группа: Участник
Сообщений: 59
Регистрация: 31.12.2009
Из: Сыктывкар
Пользователь №: 13373



Цитата
bravo7kg.gif z_lol1.gif Браво!

спасибо (IMG:style_emoticons/default/smile.gif)
Перейти в начало страницы
 
 
 Скиф
сообщение 28.03.2010, 16:05
Сообщение #179


какой жим, вы о чем?)
**********************

Группа: Участник
Сообщений: 7234
Регистрация: 30.05.2009
Пользователь №: 10964



VEN0M, практически мод-почин (IMG:style_emoticons/default/biggrin.gif) Такого эротического подтекста)) Правда, книги так и остались.. Но если уже и их менять на какой-нибудь Плэйбой... Думаю, ни к чему (IMG:style_emoticons/default/biggrin.gif)
Перейти в начало страницы
 
 
 VEN0M
сообщение 28.03.2010, 17:55
Сообщение #180


Опытный Игрок
****

Группа: Участник
Сообщений: 59
Регистрация: 31.12.2009
Из: Сыктывкар
Пользователь №: 13373



Цитата
VEN0M, практически мод-почин biggrin.gif Такого эротического подтекста)) Правда, книги так и остались.. Но если уже и их менять на какой-нибудь Плэйбой... Думаю, ни к чему biggrin.gif

(IMG:style_emoticons/default/o_O.gif) как это книги остались? друган тестил всё изменилось вот скрин токо это с версии где бамп текстуры не были правлены
http://file.qip.ru/file/124057885/ac651c53..._04-16-25-.html
Перейти в начало страницы
 
 
 Deimos
сообщение 28.03.2010, 20:24
Сообщение #181


Доктор Игровых Наук
*******************

Группа: Забанен
Сообщений: 3591
Регистрация: 16.09.2009
Из: Украина
Пользователь №: 11874



VEN0M,
Обложки книг нужно заменить на обложки DVD. Ну ты понял каких фильмов. (IMG:style_emoticons/default/smile.gif)

А фотку надо грязнее сделать. Постап. (IMG:style_emoticons/default/smile.gif)

Думаю, ДГ оценит. (IMG:style_emoticons/default/smile.gif)

Сообщение отредактировал Deimos - 28.03.2010, 20:44
Перейти в начало страницы
 
 
 
 

 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

Текстовая версия Сейчас: 02.10.2022, 22:13