Вскрытие ресурсов Метро 2033 |
Здравствуйте, гость ( Авторизация | Регистрация )
Вскрытие ресурсов Метро 2033 |
18.03.2010, 10:28
Сообщение
#481
|
|
Почти Игрок Репутация: 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 по собственному желанию
|
 
|
|
|
|
28.11.2018, 22:50
Сообщение
#482
|
|
Почти Игрок Репутация: 2 Группа: Участник Сообщений: 17 Регистрация: 06.03.2018 |
Выкладываю декомпилятор конфигов. Вроде все level.bin'ы и конфиги из scripts.bin(не все) декомпилирует и компилирует. Но на работоспособность с игрой не проверял. [attachment=4323:binunp.zip] [attachment=4324:source.zip] Как использовать: декомпиляция level.bin Код binunp -l -d level.bin level.txt компиляця level.bin Код binunp -l -c level.txt level.bin декомпиляция отдельного конфига Код binunp -d имяфайла.bin имяфайла.txt компиляция отдельного конфига Код binunp -c имяфайла.txt имяфайла.bin Есть ещё ключ -k, по идее его надо указывать при компиляции если при декомпилции было написано kind = 3, вот так Код binunp -k 3 -c имяфайла.txt имяфайла.bin Но это может быть и не обязательно, не проверял. Конфиги с kind = 3 это например файлы level.environment. split.exe просто положить рядом с scripts.bin, запустить и появится папка Scripts с отдельными файлами. Склеивателя Scripts.bin обратно не существует Кстати кто-нибудь понял как работают связи блоков в скриптах? осталось только для ласт лайта, а так очень круто -------------------- античеловек
|
 
|
|
28.11.2018, 22:59
Сообщение
#483
|
|
Ветеран Репутация: 10 Группа: Участник Сообщений: 99 Регистрация: 28.11.2018 |
Да, наверно это число не сильно важно, ну или я его угадал. Как выяснилось формат вершин немного не такой как написано в metro2033-tools. Никакой W компоненты там нет, на её месте нормаль упакованный(следующие два значения очевидно тангент и бинормаль). Четвертой компонентой у нормаля хранится AO, так что его неплохо бы считать. Не расскажешь как сделал? А то я уже пробовал менять оригинальные модельки местами, это скучно. Хочется чего нибудь своего добавить. -------------------- |
 
|
|
29.11.2018, 04:10
Сообщение
#484
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
осталось только для ласт лайта, а так очень круто А в ластлайте конфиги разбираемые? Нет они конечно все разбираемые, но есть разница нежду тем чтобы написать один универсальный распаковщик или писать много-много для каждого конфига по отдельности, предварительно поковыряв движок дизассемблером. Ии, нифига это не круто. Даже хуже чем сталкеровский ACDC. Вот если бы я какой-нибудь нормальный редактор адаптировал под 4A Engine, то это было бы круто. Бессмыслено, беспощадно, но круто. Не расскажешь как сделал? А то я уже пробовал менять оригинальные модельки местами, это скучно. Хочется чего нибудь своего добавить. Канешно расскажу. Сконвертировал модельку пальмы из OGF, а потом добавил на уровень скопировав какую-то сущность(entity) класса STATICPROP и помоняв ей модель и координаты в матрице. Исходники конвертера моделей есть в исходниках распаковщика конфигов, но скомпиленую версию я не выкладывал. Может потом выложу. Я тут уже немного продвинулся, теперь конвертировать можно сразу уровень в уровень, без всяких левых утилит. Вот огрызок агропрома на 4а Engine. Сообщение отредактировал Modera - 29.11.2018, 04:11 |
 
|
|
29.11.2018, 04:17
Сообщение
#485
|
|
Заслуженный Мастер Игры Репутация: 267 Группа: Участник Сообщений: 1524 Награды: 4 Регистрация: 10.11.2013 |
Вот огрызок агропрома на 4а Engine. biggrin.gif Офигенно. Эта котельная на каких движках только не успела побывать. На X-Ray, на Unreal, на id Tech 1, на Unity... теперь, вот, 4A Engine. -------------------- |
 
|
|
29.11.2018, 04:25
Сообщение
#486
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Эта котельная на каких движках только не успела побывать. На X-Ray, на Unreal, на id Tech 1, на Unity... теперь, вот, 4A Engine. Надо эту котельную признать идеальным тестовым уровнем. Чем-то вроде изображения Лены или чайника Юта. Я слышал, что это можно сделать с трейнерами, но, может, кто-то знает более изящный способ? Наверно с трейнерами и есть самый изящный. |
 
|
|
29.11.2018, 04:27
Сообщение
#487
|
|
Заслуженный Мастер Игры Репутация: 267 Группа: Участник Сообщений: 1524 Награды: 4 Регистрация: 10.11.2013 |
Наверно с трейнерами и есть самый изящный. Да мы уже сняли с Бартом тот новый ролик по Метро. Так что уже пока без надобности. -------------------- |
 
|
|
29.11.2018, 08:56
Сообщение
#488
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
А в ластлайте конфиги разбираемые? Нет они конечно все разбираемые, но есть разница нежду тем чтобы написать один универсальный распаковщик или писать много-много для каждого конфига по отдельности, предварительно поковыряв движок дизассемблером. В релизном ЛЛ разбираемые, в первом или втором апдейте разбираемость убрали. Редуксы снова разбираемые. |
 
|
|
29.11.2018, 15:00
Сообщение
#489
|
|
Почти Игрок Репутация: 2 Группа: Участник Сообщений: 17 Регистрация: 06.03.2018 |
А в ластлайте конфиги разбираемые? Нет они конечно все разбираемые, но есть разница нежду тем чтобы написать один универсальный распаковщик или писать много-много для каждого конфига по отдельности, предварительно поковыряв движок дизассемблером. В релизном ЛЛ разбираемые, в первом или втором апдейте разбираемость убрали. Редуксы снова разбираемые. лучше сразу редуксы разбирать. У них с 33 и лл одинаковые движки и будет куда проще -------------------- античеловек
|
 
|
|
29.11.2018, 21:25
Сообщение
#490
|
|
Ветеран Репутация: 10 Группа: Участник Сообщений: 99 Регистрация: 28.11.2018 |
Исходники конвертера моделей есть в исходниках распаковщика конфигов, но скомпиленую версию я не выкладывал. Может потом выложу. Очень надеюсь что выложишь. Сообщение отредактировал JackieR - 29.11.2018, 21:27 -------------------- |
 
|
|
01.12.2018, 05:33
Сообщение
#491
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Новая версия:
binunp2.zip ( 163,19 килобайт )
Кол-во скачиваний: 27
Теперь умеет ещё декомпилировать некоторые неразбираемые конфиги, а именно textures.bin и environments.bin Код binunp -s textures.bin textures.txt binunp -s environments.bin environments.txt Ключ -k теперь может иметь значение 4, для компиляции неразбираемых конфигов: Код binunp -k 4 -c textures.txt textures.bin У меня игра такой textures.bin вроде переварила, хотя я там ничего не менял, просто декомпилировал и обратно скомпилировал. Утилита model конвертирует модели из OGF в формат metro 2033 и обратно: Код model -ogf2model model.ogf model.model model -model2ogf model.model model.ogf OGF модель должна быть не прогрессивной(легко исправить, но я забыл), и желательно с костью, в моделях без костей нет бинормалей и тангентов. Ещё умеет конвертировать модель в nxcform_pc: Код model -model2nxcform_pc model.model model.nxcform_pc Модели в уровень, указывать можно много Код model -model2level model1.model model2.model .. modelN.model leveldir Уровень движка X-Ray в уровень 4A Engine, проверял вот этой картой: Код model -level2level xrayleveldir leveldir В файлах shadersbytextures.txt и materialsbytextures.txt указывается какие шейдеры и материалы назначить в модели или уровне в зависимости от текстуры. Какие шейдеры указывать можно узнать из конфига render_subst_all, материалы из game_materials. Конфиг материалов неразборный, но можно его открыть и поискать в нём строки начинающеися с materials\. Текстуры в content можно класть прямо в формате .dds, движок их читает. Сообщение отредактировал Modera - 01.12.2018, 05:36 |
 
|
|
07.12.2018, 00:42
Сообщение
#492
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Кстати кто-нибудь понял как работают связи блоков в скриптах? Я понял. xD У каждого блока есть точки входа/выхода(так кажется это называется, не знаком с визуальных программированием). Запись связи представляет собой [блок1, точка1, блок2, точка2]. Рассмотрим простой скрипт балалайки, у которой можно провести пальцем по струнам: Скрипт Код vss_ver_6 = begin count : u32 = 1; rec_0000 = begin groups : array; groups = begin count : u32 = 0; end; blocks = begin block_count : u32 = 4294967295; 'array with no key' : array; count : u32 = 4; block_0000 = begin clsid : stringz = 'triggers/use'; posx : u16 = 105; posy : u16 = 53; active : bool = True; entity : 'entity_link, uobject_link' = 65535; initiator : 'entity_link, uobject_link' = 65535; player : bool = True; usage_distance : fp32 = 2; use_action : choose; use_action : stringz = ''; use_offset : vec2f = [0, -0.100000001490116]; blink : bool = True; blink_distance : fp32 = 10; end; block_0001 = begin clsid : stringz = 'entities/entity self'; posx : u16 = 207; posy : u16 = 62; end; block_0002 = begin clsid : stringz = 'actions/play sound'; posx : u16 = 160; posy : u16 = 53; sound : sound; sound : stringz = 'objects\usable_items\balalayka_use'; volume : fp32 = 1; instant : bool = True; ai_sound_type : u32 = 0; stop_interval : fp32 = 0.5; startus_intervalus : fp32 = 0; looped : bool = False; enable_slowmo : bool = True; enable_fx : bool = True; play_as_music : bool = False; end; block_0003 = begin clsid : stringz = 'entities/entity ref'; posx : u16 = 162; posy : u16 = 102; target : 'entity_link, uobject_link' = 47361; end; end; link_count : u32 = 5; 0 : vec4s16 = [0, 0, 2, 0]; 1 : vec4s16 = [0, 0, 0, 1]; 2 : vec4s16 = [0, 2, 3, 0]; 3 : vec4s16 = [2, 0, 1, 0]; 4 : vec4s16 = [2, 2, 0, 0]; end; end; Как у любой программы, у этой есть точка входа. Ей является триггер на использование, блок0. Первая связь: блок0, точка0, блок2, точка0. Точка0 у триггера срабатывает при использовании и выполняет блок2. Блок2 это проигрывание звука. Вторая связь: блок0, точка0, блок0, точка1. Точка1 при входе в неё выключает триггер(параметр active), если убрать то по балалайке можно будет колотить без пауз. Третья связь: блок0, точка2, блок3, точка0. Эта свзять указывает какой объект нужно поюзать, чтобы сработал триггер. Можно указать блок1(сама балалайка), но тут почему-то указан какой-то левый объект из блока3. Четвёртая связь: блок2, точка0, блок1, точка0. Это свзять указывает из какого объекта нужно проиграть звук для блока2. Пятая связь: блок2, точка2, блок0, точка0. Эта связь включает обрано триггер. Очевидно точка2 у блока проигрывания звука срабатывает по окончании звука. Ещё очевидно что точки имеют разное назначение на вход и на выход. Весьма сложно. Страшно представить как этот язык игрой интерпретируется. Сообщение отредактировал Modera - 07.12.2018, 00:42 |
 
|
|
07.12.2018, 00:46
Сообщение
#493
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
Ребята, я открыл все локации, но скажу честно, я шокирован этим контентом - его много, но он убог. Там столько надо сшивать вертекстов, иначе кругом зияют дыры. В движке их-рей эти щели ого-го как светятся. Там даже верлд не спасает.
Сообщение отредактировал Дизель - 07.12.2018, 00:46 |
 
|
|
07.12.2018, 01:22
Сообщение
#494
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
|
 
|
|
08.12.2018, 20:21
Сообщение
#495
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Почему? Обычные сигнал/слоты или обычные события и подписка на них. Хм, ну если о блоках думать как о объектах обменивающихся друг с другом сообщениями то да, уже не так сложно, как мне раньше показалось. А интерпретатора наверное вообще нет, вместо него какой-нибудь обновлятор блоков(шедулер), т.к. язык оказывается многопоточный. Например с такой программой: Будут проигрыватся два разных звука с разной частотой повторения. Стрелки из триггера не передают управление другим блокам, они их активируют. Напоминает описание smalltalk'а, про то что каждый объект как отдельный компьютер. 4A всё-таки крутой движок. |
 
|
|
08.12.2018, 22:12
Сообщение
#496
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
вместо него какой-нибудь обновлятор блоков(шедулер), Ну да, можно на каждом фрейме опрашивать активные блоки. На самом деле схеме нужно обновлять максимум logic/delay, триггер и проигрыватель работают чисто по сигналам. Ну и многопоточность для схемы выше вообще не нужна, проигрыватель отправил звук на воспроизведение и свободен, можно опрашивать следующие блоки. |
 
|
|
12.12.2018, 00:09
Сообщение
#497
|
|
Ветеран Репутация: 10 Группа: Участник Сообщений: 99 Регистрация: 28.11.2018 |
Выкладываю декомпилятор конфигов. Вроде все level.bin'ы и конфиги из scripts.bin(не все) декомпилирует и компилирует. Но на работоспособность с игрой не проверял. Работает. Занятно, для некоторых людей и мутантов нужно прописывать ещё и анимации. Иначе они будут спавниться в Т-позах либо просто стоять на месте. -------------------- |
 
|
|
02.01.2019, 22:07
Сообщение
#498
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
|
 
|
|
02.01.2019, 22:19
Сообщение
#499
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
buffy, а можешь файл модельки выложить?
|
 
|
|
02.01.2019, 22:31
Сообщение
#500
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
Modera, модель статическая, с динамическими у меня пишет "Must be hierarchy" и конвертация прерывается
К слову говоря, как быть с моделями, которые разбиты на *.model *.mesh *.skeleton? |
 
|
|
02.01.2019, 22:58
Сообщение
#501
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
buffy, исправил одну багу. Скачать исправленную версию можно тут:
К слову говоря, как быть с моделями, которые разбиты на *.model *.mesh *.skeleton? Использовать плагины для 3д пакетов или OGFViewer. Со скелетными моделями эта программа не работает. Да и вообще я конвертирование моделек в формат сталкера делал только чтобы понять как нормали пакуются, основной посыл был наоборот в конвертировании в формат метро. Сообщение отредактировал Modera - 02.01.2019, 23:08 |
 
|
|
Текстовая версия | Сейчас: 26.04.2024, 06:31 |