Вскрытие ресурсов Метро 2033 |
Здравствуйте, гость ( Авторизация | Регистрация )
Вскрытие ресурсов Метро 2033 |
18.03.2010, 10:28
Сообщение
#201
|
|
Почти Игрок Репутация: 18 Группа: Забанен Сообщений: 28 Регистрация: 22.10.2009 |
ПО для работы с ресурсами игры Обсуждение ПО для работы с ресурсами Мелкие моды и фиксы Моддинг. Общее обсуждение Советы и решения Работа с 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) Наслаждаемся результатом Сообщение отредактировал Deimos - 20.04.2010, 17:01 -------------------- забанen по собственному желанию
|
 
|
|
|
|
29.03.2010, 23:22
Сообщение
#202
|
|
Опытный Геймер Репутация: 147 Группа: Участник Сообщений: 182 Регистрация: 08.09.2008 |
Я расковырял формат модели .model, я - инсайдер не похож ты на инсайдера Цитата 96-й байт от начала Правильнее оперировать не смещениями от начала, а чанками(блоками) Тогда Цитата после нее какое-то четырехбайтовое поле, а после 4 байта - содержащие размер вертексного буффера превратиться в чанк с вертексным буффером, а какое-то четырехбайтовое поле - станет идентификатором чанка |
 
|
|
30.03.2010, 04:45
Сообщение
#203
|
|
Почти Игроман Репутация: 70 Группа: Забанен Сообщений: 631 Регистрация: 25.11.2009 |
-------------------- забанен, нарушение правил, пп. 2.1 и 7.2
|
 
|
|
30.03.2010, 05:59
Сообщение
#204
|
|
какой жим, вы о чем?) Репутация: 1523 Группа: Участник Сообщений: 7234 Награды: 10 Регистрация: 30.05.2009 |
Тоесть уже можно вытащить в Макс модели игры со скелетом и прочими атрибутами?
|
 
|
|
30.03.2010, 10:01
Сообщение
#205
|
|
Lo Res Chairman Репутация: 452 Группа: Участник Сообщений: 1796 Награды: 6 Регистрация: 09.09.2007 |
|
 
|
|
30.03.2010, 11:35
Сообщение
#206
|
|
Опытный Игрок Репутация: 37 Группа: Участник Сообщений: 59 Регистрация: 31.12.2009 |
да и без скелета пока что подойдёт если модельки в сталкер перетаскивать
|
 
|
|
30.03.2010, 13:07
Сообщение
#207
|
|
Почти Игроман Репутация: 70 Группа: Забанен Сообщений: 631 Регистрация: 25.11.2009 |
Нехорошо это, имхо, модели выдергивать пока не будем, по крайней мере до выхода или невыхода сдк Метро 2033. Вот если он не выйдет в итоге, тогда дернем
-------------------- забанен, нарушение правил, пп. 2.1 и 7.2
|
 
|
|
30.03.2010, 13:12
Сообщение
#208
|
|
Почти Игроман Репутация: 395 Группа: Участник Сообщений: 684 Награды: 2 Регистрация: 25.01.2010 |
surfer, по всей логике СДК будет поддерживать только импорт в форматы самой игры, никак не в обратную сторону (вспомним логику ПЫС, откуда вышли 4А). Да и раз поддержки все равно нет (даром, что название компании-родителя поменялось), отчего тянуть? Свободная фанатская программа, вот так-то.
-------------------- ...Имен не осталось. Приказано забыть 14/88 |
 
|
|
30.03.2010, 13:18
Сообщение
#209
|
|
Опытный Игрок Репутация: 37 Группа: Участник Сообщений: 59 Регистрация: 31.12.2009 |
Цитата Нехорошо это, имхо, модели выдергивать пока не будем, по крайней мере до выхода или невыхода сдк Метро 2033. Вот если он не выйдет в итоге, тогда дернем smile.gif гдето слышал что не раньше аддона выйдет, так что долговато ждать Цитата surfer, по всей логике СДК будет поддерживать только импорт в форматы самой игры, никак не в обратную сторону (вспомним логику ПЫС, откуда вышли 4А). Да и раз поддержки все равно нет (даром, что название компании-родителя поменялось), отчего тянуть? Свободная фанатская программа, вот так-то. согласен да и кто нибудь другой к тому времени уже наверное сделает, так что лучше не тянуть |
 
|
|
30.03.2010, 17:14
Сообщение
#210
|
|
Почти Мастер Репутация: 250 Группа: Забанен Сообщений: 1131 Награды: 1 Регистрация: 25.01.2010 |
Нехорошо это, имхо, модели выдергивать пока не будем, по крайней мере до выхода или невыхода сдк Метро 2033 извините, но это бред. Вся статика и без вашей утилиты выдергивается, остались только неписи и монстры. А вы пай-девочку строите (уж извините за откровенность и некоторую некультурность) Сообщение отредактировал Veresk - 30.03.2010, 17:16 -------------------- До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Прочитай сам, сообщи другому! Убей салоедного имперца - спаси триединство: Белоруссия, Россия, Украина |
 
|
|
30.03.2010, 18:13
Сообщение
#211
|
|
Почти Мастер Репутация: 250 Группа: Забанен Сообщений: 1131 Награды: 1 Регистрация: 25.01.2010 |
тот же самый противогаз без особого шаманства (со вторым слоем на стекле с кровушкой)
так что смысла в "Нехорошо это" нету никакого Сообщение отредактировал Veresk - 30.03.2010, 18:38 -------------------- До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Прочитай сам, сообщи другому! Убей салоедного имперца - спаси триединство: Белоруссия, Россия, Украина |
 
|
|
30.03.2010, 18:19
Сообщение
#212
|
|
Опытный Игрок Репутация: 37 Группа: Участник Сообщений: 59 Регистрация: 31.12.2009 |
Цитата тот же самы противогаз без особого шаманства (со вторым слоем на стекле с кровушкой) ооо дай ссыль |
 
|
|
30.03.2010, 18:24
Сообщение
#213
|
|
Геймер Репутация: 59 Группа: Участник Сообщений: 103 Награды: 2 Регистрация: 12.01.2009 |
VENOM :
в шапке ищи метод с 3д риппером, затем действуй по инструкции. Сообщение отредактировал kalinin11 - 30.03.2010, 18:25 -------------------- АНАРХИЯ - СВОБОДА
|
 
|
|
30.03.2010, 18:27
Сообщение
#214
|
|
Опытный Игрок Репутация: 37 Группа: Участник Сообщений: 59 Регистрация: 31.12.2009 |
kalinin11, что бы им воспользоваться нужно запустить игру а её я никак не запущу так как видюха моя имеет первые шейдеры а метро требует третьи
Сообщение отредактировал VEN0M - 30.03.2010, 18:28 |
 
|
|
30.03.2010, 18:35
Сообщение
#215
|
|
Доктор Игровых Наук Репутация: 528 Группа: Забанен Сообщений: 3591 Награды: 2 Регистрация: 16.09.2009 |
surfer, молодец, доделывай и выкладывай скрипт на модели.
Это уже достижение. -------------------- Забанен по собственному желанию
|
 
|
|
30.03.2010, 18:45
Сообщение
#216
|
|
Почти Игроман Репутация: 70 Группа: Забанен Сообщений: 631 Регистрация: 25.11.2009 |
доделывай и выкладывай скрипт на модели. Плагин надо писать для 3DS, сейчас пользуюсь на скорую руку написанной прогой для конвертации в формат Ogre .mesh кто нибудь другой к тому времени уже наверное сделает Да я в принципе не против -------------------- забанен, нарушение правил, пп. 2.1 и 7.2
|
 
|
|
30.03.2010, 18:53
Сообщение
#217
|
|
Доктор Игровых Наук Репутация: 528 Группа: Забанен Сообщений: 3591 Награды: 2 Регистрация: 16.09.2009 |
Плагин надо писать для 3DS, сейчас пользуюсь на скорую руку написанной прогой для конвертации в формат Ogre .mesh Макс-скрипт вроде похож на эти КвикБМСы. Цитата Да я в принципе не против Но но но. *угрожающе водит пальце в воздухе* Сообщение отредактировал Deimos - 30.03.2010, 18:55 -------------------- Забанен по собственному желанию
|
 
|
|
31.03.2010, 00:43
Сообщение
#218
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Здравствуйте всем.
Я новенький на вашем форуме, вот прошел игру и начал тоже в ней копаться, так и вышел на ваш форум. Вопщем surfer'у спасибо за инфу, только она верна лишь для небольшого количества моделей, у остальных смещения не те, копаю в эту сторону. Попутно пишу импортер в 3DS Max. Вот первые скрины. Ага - файл все-таки чанковый, так же похоже что в каждом файле модели хранятся также и лоды. Все, с форматом вроде бы разобрался. Все довольно просто, вечером приду с работы - продолжу работу (там еще есть какая-то геометрия, просто хочу спать, поэтому буду разбираться вечером после работы). Скрин с импортированой бабкой (content\meshes\static\babka\sdf.model) для нетерпеливых - вот очень ранняя версия плагина (под 2010-й макс 32-бита), в принципе импортирует любую статику (см. аттач) Всем спасибо, пошел спать (утром на работу) Сообщение отредактировал MetroStalk - 31.03.2010, 05:40
Прикрепленные файлы
-------------------- Hello worlds!
|
 
|
|
31.03.2010, 06:56
Сообщение
#219
|
|
Почти Мастер Репутация: 250 Группа: Забанен Сообщений: 1131 Награды: 1 Регистрация: 25.01.2010 |
просто ШАЙТАН
Спасибо за импортер, но если можно сделайте его ещё для 2009 макса. 2010 ну просто жутко ненравится своей гламурностью. Кстати, а никто не пробовал расковырять формат моделей игры You are Empty, там тоже есть на что посмотерть (я уж неговорю про архитектуру) http://www.playerzblog.com/wp-content/big_s_57.jpg http://www.3dnews.ru/documents/12791/yae.jpg http://www.fpsteam.it/img2005/YouAreEmpty/...re_empty_09.jpg Сообщение отредактировал Veresk - 31.03.2010, 07:10 -------------------- До каких пор людей, по крохам собиравших державу и беспощадно каравших её врагов, мы будем обзывать палачами, а индивидов, разваливших страну и пустивших на ветер труды целых поколений, именовать реформаторами? (Ф.М. Достоевский)
Прочитай сам, сообщи другому! Убей салоедного имперца - спаси триединство: Белоруссия, Россия, Украина |
 
|
|
31.03.2010, 08:31
Сообщение
#220
|
|
BFG9000 owner
Половина землекопа Репутация: 247 Куратор темы Сообщений: 1813 Награды: 3 Регистрация: 30.03.2010 |
Спасибо за импортер, но если можно сделайте его ещё для 2009 макса. 2010 ну просто жутко ненравится своей гламурностью. Да не вопрос - прикрепил в аттаче (для 3DS Max 2009 32-бита) Сегодня вечером постараюсь как можно больше доделать импорт, и тогда же выложу с исходниками. Metro2033MeshImport_max2009.zip ( 7,13 килобайт ) Кол-во скачиваний: 284 Сообщение отредактировал iOrange - 31.03.2010, 08:31 -------------------- Hello worlds!
|
 
|
|
31.03.2010, 14:57
Сообщение
#221
|
|
Почти Игроман Репутация: 70 Группа: Забанен Сообщений: 631 Регистрация: 25.11.2009 |
Вау, внезапно )))
она верна лишь для небольшого количества моделей, у остальных смещения не те Нет, формат один для всех статических моделей, но есть еще файлы .mesh, там формат отличается файл все-таки чанковый, так же похоже что в каждом файле модели хранятся также и лоды. Файл состоит из нескольких сеток, например в файле lib_dead_body.model кроме маски еще 3 сетки есть, среди них дохлое тело должно быть. вот часть исходного кода моего плагина формат файла Код #ifndef __MODELFORMAT_H__ #define __MODELFORMAT_H__ typedef struct { float x, y, z, w; // координаты вершины unsigned a, b; // наверное diffuse и specular float u, v; // текстурные координаты } VERTEX_FORMAT; typedef unsigned short INDEX_FORMAT; typedef struct { unsigned chunkId; // идентификатор, всегда = 3 unsigned vbsize; // размер вертексного буфера unsigned unknown1; // всегда = 2 unsigned vcount; // кол-во вертексов } VERTICES_CHUNK_HEADER; typedef struct { unsigned chunkId; // идентификатор, всегда = 4 unsigned ibsize; // размер индексного буфера unsigned nindices; // число индексов } INDICES_CHUNK_HEADER; typedef struct { unsigned chunkId; // номер блока unsigned chunkSize; // размер блока unsigned modelNum; // порядковый номер модели unsigned length1; // длина строки, всегда 64 байта char stringData[64]; // строка (crc32) ? unsigned unknown1; // всегда = 2 unsigned length2; // длина строки char stringArray[1]; // название текстуры, материала, модели } STATIC_MODEL_CHUNK_HEADER; typedef struct { unsigned fileId; // идентификатор unsigned fileSize; // размер файла } STATIC_MODEL_FILE_HEADER; #endif // __MODELFORMAT_H__ sceneimport.h Код #ifndef __SCENEIMPORT_H__ #define __SCENEIMPORT_H__ #include <Max.h> #include <sstream> class CSceneImport : public SceneImport { public: CSceneImport(); ~CSceneImport(); int ExtCount(); BOOL SupportsOptions(int ext, DWORD options ); const char* Ext(int n); const char* LongDesc(); const char* ShortDesc(); const char* AuthorName(); const char* CopyrightMessage(); const char* OtherMessage1(); const char* OtherMessage2(); unsigned int Version(); void ShowAbout(HWND hWnd); void loadModel( const char* name ); void unloadModel(); int DoImport(const char* pszName, ImpInterface* pImpInterface, Interface* pInterface, BOOL bPrompts = FALSE ); private: std::stringstream mStream; }; // CSceneImport #endif // __SCENEIMPORT_H__ sceneimport.cpp Код #include <SceneImport.h> #include <fstream> #include <exception> #include <locale> #include <ModelFormat.h> CSceneImport::CSceneImport() { } CSceneImport::~CSceneImport() { unloadModel(); } int CSceneImport::ExtCount() { return 1; } BOOL CSceneImport::SupportsOptions(int ext, DWORD options ) { return 0; } const char* CSceneImport::Ext(int n) { return "model"; } const char* CSceneImport::LongDesc() { return ""; } const char* CSceneImport::ShortDesc() { return ""; } const char* CSceneImport::AuthorName() { return ""; } const char* CSceneImport::CopyrightMessage() { return ""; } const char* CSceneImport::OtherMessage1() { return ""; } const char* CSceneImport::OtherMessage2() { return ""; } unsigned int CSceneImport::Version() { return 100; } void CSceneImport::ShowAbout(HWND hWnd) { } void CSceneImport::loadModel( const char* model ) { std::ifstream source; unsigned length; char *buffer; source.open( model, std::ios::binary ); if( source.good() == 0 ) { throw std::exception( "File not found" ); } source.seekg( 0, std::ios::end ); length = source.tellg(); source.seekg( 0, std::ios::beg ); buffer = new char[length]; source.read( buffer, length ); mStream.write( buffer, length ); delete buffer; source.close(); } void CSceneImport::unloadModel() { mStream.clear(); } int CSceneImport::DoImport(const char* pszName, ImpInterface* pImpInterface, Interface* pInterface, BOOL bPrompts ) { try { STATIC_MODEL_FILE_HEADER fileHeader; STATIC_MODEL_CHUNK_HEADER chunkHeader; INDICES_CHUNK_HEADER indicesHeader; VERTICES_CHUNK_HEADER verticesHeader; VERTEX_FORMAT* vertices; INDEX_FORMAT* indices; unsigned filePtr; setlocale( LC_ALL, ".1251" ); loadModel( pszName ); filePtr = sizeof(STATIC_MODEL_FILE_HEADER); mStream.read( reinterpret_cast<char*>(&fileHeader), filePtr ); while( filePtr < fileHeader.fileSize ) { mStream.read( reinterpret_cast<char*>(&chunkHeader), sizeof(STATIC_MODEL_CHUNK_HEADER) ); mStream.seekg( chunkHeader.length2-4, std::ios::cur ); mStream.read( reinterpret_cast<char*>(&verticesHeader), sizeof(VERTICES_CHUNK_HEADER) ); vertices = new VERTEX_FORMAT[verticesHeader.vcount]; mStream.read( reinterpret_cast<char*>(vertices), verticesHeader.vbsize-8 ); mStream.read( reinterpret_cast<char*>(&indicesHeader), sizeof(INDICES_CHUNK_HEADER) ); indices = new INDEX_FORMAT[indicesHeader.nindices]; mStream.read( reinterpret_cast<char*>(indices), indicesHeader.ibsize ); ImpNode* node = pImpInterface->CreateNode(); node->SetName( "test" ); TriObject* obj = CreateNewTriObject(); // ... node->Reference( obj ); pImpInterface->AddNodeToScene( node ); delete indices; delete vertices; filePtr += chunkHeader.chunkSize; } unloadModel(); return IMPEXP_SUCCESS; } catch( ... ) { return 0; } } Правка, хотя, да, есть файлы у которых id = 9, а есть такие у которых = 1, они немного отличаются. Сообщение отредактировал surfer - 31.03.2010, 15:17 -------------------- забанен, нарушение правил, пп. 2.1 и 7.2
|
 
|
|
Текстовая версия | Сейчас: 25.04.2024, 02:39 |