Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SDK для 4A Engine своими руками
GAMEINATOR forums > Общие разделы > Создание и модификация игр. Геймдев.
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
TheStalkerNest
Цитата(Лохотрон @ 30.05.2021, 17:03) *
Цитата(Modera @ 30.05.2021, 15:53) *
Просто нет потребности в таком функционале.
Вижу утилиту от TheStalkerNest для генерации навмеша, оно имплементировано в сдк уже?


Как уже Modera писал, так и я перескажу.

На данный момент генератор использует PathEngine прямо из движка игры, поэтому пока не получится создать самостоятельную утилиту без движка, или интегрировать её в сдк.
Есть дллка PathEngine подходящей версии из другой игры, но там свои правки есть, из-за которых не получается проинициализировать её.
Rolan96
Что ж, удалось на основе кодов МетроЕх вывести в читаемый формат textures_handles_storage.bin.
Не json, конечно, но очень даже читаемо.

[wood\wood_old_grey_15]
name =
type = 64
format = 5
height = 2048
width = 2048
bump_name = wood\wood_old_grey_15_bump
reflectivity = 0,04000854
streamable = True
parallax_height_mul = 1
is_metal = False
animated = False
det_name = det\det_wood_fabric
DetailScale = none
det_intensity = 0.099976
override_avg_color = False
shader_name = geometry\default

Осталось ещё пару параметров добить и готово. Это была самая простая часть, сложнее будет обратно в bin уложить это все.
Хотя есть идея, как я понял МетроЕх может распаковывать и собирать обратно config.bin(а может и не может, мб просто зачатки этого увидел), воспользоваться этой функцией и попробовать собрать уже правленый файл.

Мб кто знает, у текстур есть параметр
aux
public:
void SetTextureInfo(const MetroTextureInfo* textureInfo) {
mTextureInfo = textureInfo;

if (mTextureInfo) {
mAuxNames[0] = ToNetString(mTextureInfo->aux0_name);
mAuxNames[1] = ToNetString(mTextureInfo->aux1_name);
mAuxNames[2] = ToNetString(mTextureInfo->aux2_name);
mAuxNames[3] = ToNetString(mTextureInfo->aux3_name);
mAuxNames[4] = ToNetString(mTextureInfo->aux4_name);
mAuxNames[5] = ToNetString(mTextureInfo->aux5_name);
mAuxNames[6] = ToNetString(mTextureInfo->aux6_name);
mAuxNames[7] = ToNetString(mTextureInfo->aux7_name);
}
}

для чего он нужен?


Modera, в SDK с момента последней записи в ченджлоге добавлено много изменений, может обновишь smile.gif
Modera
Цитата(Rolan96 @ 31.05.2021, 01:39) *
Modera, в SDK с момента последней записи в ченджлоге добавлено много изменений, может обновишь smile.gif

Ну я хотел бы ещё некоторые вещи доделать для выпуска новой версии smile.gif
Modera
Короче очередная тестовая версия: https://drive.google.com/file/d/1nS3TiDKApO...iew?usp=sharing
Заменил нафиг свои кривые манипуляторы на стороннюю либу + сделал запоминание выбранных режимов у инструментов (Object/World/Group) и некоторых других параметров.


Если никаких серьёзных багов не вылезет то буду выпускать уже не-тестовую версию.
Berkut107
Спасибо за удобный пивот! Декорить локации теперь не мучения, а балдеж.
Баг с приближением камеры после тыкания во вкладке "Weather" так и остался.
Какие дальнейшие планы на редактор? rolleyes.gif
Modera
Цитата(Berkut107 @ 01.06.2021, 16:25) *
Спасибо за удобный пивот! Декорить локации теперь не мучения, а балдеж.
Баг с приближением камеры после тыкания во вкладке "Weather" так и остался.
Какие дальнейшие планы на редактор? rolleyes.gif

Я не любитель составлять планы, просто делаю то что мне интересно когда появляется желание.
А что за баг, напомни?
Rolan96
Modera, чисто хотелка. Было бы удобно, чтобы в меню открытия уровней отображались пять последних открытых.
Modera
Rolan96, когда-нибудь может-быть сделаю.
Berkut107
Цитата(Modera @ 01.06.2021, 16:56) *
Цитата(Berkut107 @ 01.06.2021, 16:25) *
Спасибо за удобный пивот! Декорить локации теперь не мучения, а балдеж.
Баг с приближением камеры после тыкания во вкладке "Weather" так и остался.
Какие дальнейшие планы на редактор? rolleyes.gif

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

Modera
Вот те раз, никогда с таким не сталкивался...
Попробую повторить, если получится - то можно думать в сторону исправления.
Berkut107
Цитата(Modera @ 01.06.2021, 23:55) *
Вот те раз, никогда с таким не сталкивался...
Попробую повторить, если получится - то можно думать в сторону исправления.

Вот после таких действий появляется баг
TheStalkerNest
Цитата(Berkut107 @ 02.06.2021, 14:12) *
Цитата(Modera @ 01.06.2021, 23:55) *
Вот те раз, никогда с таким не сталкивался...
Попробую повторить, если получится - то можно думать в сторону исправления.

Вот после таких действий появляется баг



Аналогичный баг периодически появлялся когда на долго сворачивал сдк, а потом снова разворачивал.
Berkut107
Было бы еще удобно, если бы при повороте объекта показывались бы градусы, на сколько я повернул
Modera
Попробую сделать, но не факт что именно в таком виде будет
Rolan96
Цитата(Rolan96 @ 31.05.2021, 01:39) *
Что ж, удалось на основе кодов МетроЕх вывести в читаемый формат textures_handles_storage.bin.
Не json, конечно, но очень даже читаемо.

[wood\wood_old_grey_15]
name =
type = 64
format = 5
height = 2048
width = 2048
bump_name = wood\wood_old_grey_15_bump
reflectivity = 0,04000854
streamable = True
parallax_height_mul = 1
is_metal = False
animated = False
det_name = det\det_wood_fabric
DetailScale = none
det_intensity = 0.099976
override_avg_color = False
shader_name = geometry\default

Осталось ещё пару параметров добить и готово. Это была самая простая часть, сложнее будет обратно в bin уложить это все.
Хотя есть идея, как я понял МетроЕх может распаковывать и собирать обратно config.bin(а может и не может, мб просто зачатки этого увидел), воспользоваться этой функцией и попробовать собрать уже правленый файл.

Мб кто знает, у текстур есть параметр
aux
public:
void SetTextureInfo(const MetroTextureInfo* textureInfo) {
mTextureInfo = textureInfo;

if (mTextureInfo) {
mAuxNames[0] = ToNetString(mTextureInfo->aux0_name);
mAuxNames[1] = ToNetString(mTextureInfo->aux1_name);
mAuxNames[2] = ToNetString(mTextureInfo->aux2_name);
mAuxNames[3] = ToNetString(mTextureInfo->aux3_name);
mAuxNames[4] = ToNetString(mTextureInfo->aux4_name);
mAuxNames[5] = ToNetString(mTextureInfo->aux5_name);
mAuxNames[6] = ToNetString(mTextureInfo->aux6_name);
mAuxNames[7] = ToNetString(mTextureInfo->aux7_name);
}
}

для чего он нужен?


Modera, в SDK с момента последней записи в ченджлоге добавлено много изменений, может обновишь smile.gif


А параметров-то оказалось намного больше чем пару штук)

туц
[window\avroracurtaincover]
name = window\avroracurtaincover
type = 0
texture_type = 0
source_name = window\avroracurtaincover
surf_xform = 0 0 1 1
format = 5
width = 1024
height = 1024
animated = False
draft = False
override_avg_color = False
avg_color = 0,5058594 0,3920898 0,3293457 1
shader_name = geometry\default
gamemtl_name = materials\wooden_board
priority = 0
streamable = True
bump_height = 0,04998779
displ_type = 2
displ_height = 0,005001068
parallax_height_mul = 1
mipmapped = True
reflectivity = 0,04000854
is_metal = False
det_name =
DetailScale X = 1
DetailScale Y = 1
det_intensity = 1.000000
aux_params = 1 1 1 1
aux_params_1 = 1 1 1 1
bump_name = window\avroracurtaincover_bump
aux0_name =
aux1_name =
aux2_name =
aux3_name =
aux4_name =
aux5_name =
aux6_name =
aux7_name =

Modera
Rolan96, будешь делать редактор настроек текстур?
Rolan96
Цитата(Modera @ 08.06.2021, 00:24) *
Rolan96, будешь делать редактор настроек текстур?

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

кстати, в одной из веток на гитхабе, пользователь ShokerStlk написал конвертер базы текстур в формат xml и оно работало, но как я понял, дальше конверта в одну сторону оно не ушло. Но на улучшенной версии исхода он не работал, хотя вроде формат не менялся, хз. мой костылёк на основе исходников MetroEx норм разбирает из новой версии.
Спасибо большое iOrange за такой мощный инструмент.
Berkut107

Небольшой гайд по замене динамических моделей в игре.
Может быть, кому нибудь пригодится
JackieR
Цитата(Berkut107 @ 23.06.2021, 01:31) *

Небольшой гайд по замене динамических моделей в игре.
Может быть, кому нибудь пригодится

По замене моделей оружия. С другой динамикой (неписи, хад рук, объекты) все несколько иначе. Потом напишу тутор и про них, если будет время.
TheStalkerNest
Сравнение ВДНХ с официального скриншота СДК 2009 года, и то-же самое место в релизе 2010 года.



Эхх, билдота, которой у нас нет, и никогда наверное не будет laugh.gif
TheStalkerNest
Публикую новую версию утилиты MetroDeveloper.
https://github.com/tsnest/MetroDeveloper/re...roDeveloper.zip

Внимание! В данном релизе, добавлены новые параметры в конфиг developer.ini.

Добавлена возможность включения консоли разработчика на клавишу тильду, включением параметра unlock_dev_console в секции other.

Теперь игра корректно выключается, при включенном параметре exitwhendone в секции nav_map, путём автоматической отправки команды quit в консоль.

Прочие незначительные правки кода.
JackieR
Цитата(Modera @ 31.05.2021, 16:30) *
Цитата(Rolan96 @ 31.05.2021, 01:39) *
Modera, в SDK с момента последней записи в ченджлоге добавлено много изменений, может обновишь smile.gif

Ну я хотел бы ещё некоторые вещи доделать для выпуска новой версии smile.gif

А сможешь сделать свободную камеру в Model Editor?
Modera
Смогу.
Modera
Короче выпустил новую не-тестовую версию, баг с приближением камеры пофиксил, баг с перемещением повторить не удалось, свободную камеру в model_Editor'е потом как-нить, а то я эту хрень никогда не выпущу.
TheStalkerNest
Цитата(Modera @ 28.06.2021, 19:47) *
Короче выпустил новую не-тестовую версию, баг с приближением камеры пофиксил, баг с перемещением повторить не удалось, свободную камеру в model_Editor'е потом как-нить, а то я эту хрень никогда не выпущу.


Первый баг-репорт:

Надпись Cam pos мерцает, т.к. на её месте по очереди отображается одна из координат мыши, а потом надпись с координатами камеры.
Modera
TheStalkerNest, ну это так давно, странно что только сейчас стало заметно.
Berkut107
Цитата(Modera @ 28.06.2021, 18:47) *
Короче выпустил новую не-тестовую версию, баг с приближением камеры пофиксил, баг с перемещением повторить не удалось, свободную камеру в model_Editor'е потом как-нить, а то я эту хрень никогда не выпущу.

Модера, а можно, как-то сделать, чтобы энвайромент зоны копировать можно было? Было бы еще удобно их сохранять в ту же боковую панель, чтобы потом устанавливать на своих уровнях. Просто с нуля делать их нудно)
Modera
Berkut107, сделать можно, но мне лень. ^^
Berkut107
У меня вопрос не особо по теме, но есть на данный момент, какие нибудь не слитые билды метро? Кто нибудь знает о таких?
К примеру, может кто-то, когда-то, каким-то образом заполучил архивец, какой нибудь, и до сих пор его хранит...
Сталкер 2(2011) до нынешнего года же кто-то хранил)
macron
Berkut107, когда-то сливали исходники карт в формате maya и для x-ray sdk, но они как-то никому особо не нужны оказались.
Berkut107
Цитата(macron @ 25.08.2021, 04:22) *
Berkut107, когда-то сливали исходники карт в формате maya и для x-ray sdk, но они как-то никому особо не нужны оказались.

Исходники оригинальных карт 2033? Мне такое нада, я так понимаю сейчас их не найти?
Modera
Ну там не оригинальные карты 2033, а всего один уровень m91 запускаемый на движке сталкера.
https://www.gameru.net/forum/index.php?show...t&p=1234931

Ещё плюс было несколько моделей в формате .object (летучая мышь, носач, человек в противогазе и худ калаша). Худ кстати с часами, т.е. модель более поздняя чем используемая в билде 375.
macron
Цитата(Berkut107 @ 25.08.2021, 06:14) *
Исходники оригинальных карт 2033? Мне такое нада, я так понимаю сейчас их не найти?

https://cloud.mail.ru/public/35ab/aud9rJ3kG

Цитата(Modera @ 25.08.2021, 15:22) *
Ну там не оригинальные карты 2033, а всего один уровень m91 запускаемый на движке сталкера.

Неа.
Modera
Цитата(macron @ 25.08.2021, 15:46) *

Так это ж вроде просто импортированные в майю уровни из релиза. Они ещё отзеркалены по двум осям, потому что плагин m2033_import.mll так импортирует.
macron
Цитата(Modera @ 25.08.2021, 16:06) *
Так это ж вроде просто импортированные в майю уровни из релиза.
Не знаю, как-то пофиг. Там еще много просто объектов для ТЧ-SDK, когда-то ими дорабатывал outdoor_n под мультиплеер.

Еще в нете есть какая-то демка за 2010.
https://archive.org/details/metro_2033_demo
Билдомассон
Цитата(macron @ 25.08.2021, 18:39) *
Цитата(Modera @ 25.08.2021, 16:06) *
Так это ж вроде просто импортированные в майю уровни из релиза.
Не знаю, как-то пофиг. Там еще много просто объектов для ТЧ-SDK, когда-то ими дорабатывал outdoor_n под мультиплеер.

Еще в нете есть какая-то демка за 2010.
https://archive.org/details/metro_2033_demo

Она вышла уже после релиза.
Modera
Я научился делать навмешы для ласт лайта, теперь можно делать карты с противниками.

Что я могу отметить:
1. Люди во время боя могут перемещаться в отличии от 2033, даже без укрытий. Но как-то вяло.
2. Возможно nav_map.bin от ластлайта подойдёт и для редакса, номер версии у них одинаковый. Но проверить я не могу, т.к. для редакса нет запаковщика и изобретать его никто не хочет. С хаком для чтения файлов прямо из папки nav_map.bin НЕ загружается.
3. АИ сетка в сталкере не так уж и плоха на самом деле. Она хотя-бы создаётся автоматически, а вручную моделить навмеш не очень то приятно.
TheStalkerNest
Цитата(Modera @ 31.08.2021, 17:26) *
Я научился делать навмешы для ласт лайта, теперь можно делать карты с противниками.

Что я могу отметить:
1. Люди во время боя могут перемещаться в отличии от 2033, даже без укрытий. Но как-то вяло.
2. Возможно nav_map.bin от ластлайта подойдёт и для редакса, номер версии у них одинаковый. Но проверить я не могу, т.к. для редакса нет запаковщика и изобретать его никто не хочет. С хаком для чтения файлов прямо из папки nav_map.bin НЕ загружается.
3. АИ сетка в сталкере не так уж и плоха на самом деле. Она хотя-бы создаётся автоматически, а вручную моделить навмеш не очень то приятно.


Чувствую, пора в мою дллку завозить поддержку ласт-лайта.
Modera
TheStalkerNest, да там только шейпы из восьми точек нужно завести вместо шейпов из шести точек, и перекорячиватель из nav_map.pe в nav_map.bin. Модель всё так же создаётся 2033 движком.
Modera
TheStalkerNest, твоя версия ДЛЛки с сохранением в формат ласт лайта: https://drive.google.com/file/d/1W-ZU5OB3Nu...iew?usp=sharing (исходники) Но я не проверял.

Параметры надо указывать как-то так:
Код
[nav_map]
enabled = yes
format = raw
output_version = ll
filename = nav_map.raw
result = nav_map.bin
exitwhendone = yes


Один момент я только там не разобрал, в circuit иногда вместе атрибутом line появляется атрибут intersect. На моих новых картах я его не встречал, хотя в оригинальных есть. Я его просто пропускаю, не знаю какие последствия может иметь если он вдруг появится. scratch_one-s_head.gif
TheStalkerNest
Цитата(Modera @ 31.08.2021, 22:54) *
TheStalkerNest, твоя версия ДЛЛки с сохранением в формат ласт лайта: https://drive.google.com/file/d/1W-ZU5OB3Nu...iew?usp=sharing (исходники) Но я не проверял.

Параметры надо указывать как-то так:
Код
[nav_map]
enabled = yes
format = raw
output_version = ll
filename = nav_map.raw
result = nav_map.bin
exitwhendone = yes


Один момент я только там не разобрал, в circuit иногда вместе атрибутом line появляется атрибут intersect. На моих новых картах я его не встречал, хотя в оригинальных есть. Я его просто пропускаю, не знаю какие последствия может иметь если он вдруг появится. scratch_one-s_head.gif


Ура! Я уже не думал, что получится реализовать возможность генерации навмеша для ll.
Завтра займусь добавлением сигнатур для ll в дллку.

ЛЛ умеет читать кастомные архивы как и 2033?
Modera
Цитата(TheStalkerNest @ 31.08.2021, 22:33) *
ЛЛ умеет читать кастомные архивы как и 2033?

Да.
JackieR
Цитата(Modera @ 31.08.2021, 16:26) *
Я научился делать навмешы для ласт лайта, теперь можно делать карты с противниками.

Что я могу отметить:
1. Люди во время боя могут перемещаться в отличии от 2033, даже без укрытий. Но как-то вяло.
2. Возможно nav_map.bin от ластлайта подойдёт и для редакса, номер версии у них одинаковый. Но проверить я не могу, т.к. для редакса нет запаковщика и изобретать его никто не хочет. С хаком для чтения файлов прямо из папки nav_map.bin НЕ загружается.
3. АИ сетка в сталкере не так уж и плоха на самом деле. Она хотя-бы создаётся автоматически, а вручную моделить навмеш не очень то приятно.

Слов нет, шикарно. Не терпится это дело протестировать уже. Уровень с дождем сделаю, чтоб повсюду были отражения и мокрая поверхность. Графоон ^^
Modera
Надо наверно ещё в девелоперскую длл добавить загрузчик обычных моделей .model, чтобы в .raw не конвертировать.
autistic
Привет. Приятно видеть, что тема модифицирования метро еще жива. Если понадобится помощь, можете пинать smile.gif
Modera
autistic, у вас таки есть желание кодить на паскале?
Berkut107
Цитата(autistic @ 06.09.2021, 23:38) *
Привет. Приятно видеть, что тема модифицирования метро еще жива. Если понадобится помощь, можете пинать smile.gif

А вы хто? И шо умеете?)
Modera
Мама, я в телевизоре. laugh.gif
autistic
Цитата(Modera @ 07.09.2021, 03:44) *
autistic, у вас таки есть желание кодить на паскале?

Желание есть, времени нет smile.gif Но если есть мысли что еще можно пореверсить, постараюсь найти время smile.gif
Modera
autistic, ну, ещё есть идея всё-таки доделать загрузчик с хаком движка для чтения модов из папки content без всяких архивов, который задумывался в 2019. Особенно для Redux версии это нужно, там совсем плохо, ибо у него нет патчей, и хотя код их загрузки в движке остался создать рабочий патч архив у меня не получилось, моды ставятся только модификацией основного content.vfx, что удобно и аккуратно ну просто пипец.

Подсказка как это сделать: в движке функция для чтения не запакованных в архив файлов уже есть (vfs::ropen_os), ей грузятся user.cfg и content.vfx. Достаточно поставить хук на функцию открытия файла из архива(vfs::ropen), проверить если файл существует в папке, и если существует то перенаправить вызов в vfs::ropen_os, иначе вызвать оригинальный vfs::ropen.
У меня даже получилось это реализовать, правда не загрузчиком, а DLLкой, в принципе работает, но косяков много вылезло, не все файлы грузятся, видимо vfs::ropen не единственная функция для открытия файла из архива. Как минимум ещё не работает перебор файлов, что не даёт добавлять новые текстуры.

Ещё подсказка: на торрентах можно скачать Арктику.1 с PDBшкой, что значительно упростит копание в движке.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.