Archiv verlassen und diese Seite im Standarddesign anzeigen : про вытаскивание тайлов для создания web-ка
Всем привет.
Когда-то немного поучаствовал в создании интерактивной карты по Ведьмаку (расположение врагов, телепортов, квестодателей, продавцов и тд), теперь дошло и до ELEX-а.
https://raw.githubusercontent.com/hhrhhr/LuaELEX/master/docs/img/map_example.jpg?raw=true
Самое простое оказалось вытащить тайлы игровой карты и немного пошаманить над ними для перевода в формат, понятный браузерам и картографическим движкам. Готовые скрипты и тестовый пример лежат на гитхабе (https://github.com/hhrhhr/LuaELEX). Как мог, изложил порядок действий на английском, попробую немного добавить на родном.
Первый скрипт вытаскивает из игрового архива все тайлы связанные с внутриигровой картой. Разработчики использовали DX10 DDS формат со сжатием BC7, что вылилось в поиск утилит, способных переконвертировать этот формат. Кроме Compressonator (>70 Мб инсталлятор) ничего сходу не нашлось, может кто подскажет более компактный аналог.
Этот же скрипт переименовывает файлы из игрового именования Map_ZZZZ_YYYY_XXXX с ведущими нулями в elex-Z-Y-X , который более понятен картодвижкам.
Второй скрипт из четырёх тайлов размером 256*256 склеивает один тайл размером 512*512 с соответствующим переименованием для экономии места и уменьшения общего количества файлов практически вчертверо.
Теперь о сложностях. Не знаю масштаба игрового мира, поэтому на демо-карте масштабная линейка показывает взятую от балды цифру. После его определения появится возможность легко и непринуждённо добавлять информационные слои с расположением телепортов, особо злых вражин, секретных мест и тд.
Но, для этого нужно как-то надёргать игровые координаты всех интересующих объектов или хотя бы уметь получать текущее положение ГГ. Вариант с ручным прописыванием не приемлю в принципе, а исследованию игровых файлов на этот предмет мешает некое отсутствие информации.
Поэтому принимаю любые намёки и помощь, в общем — приглашаю к обсуждению.
Вышукал таки координаты телепортов. Для разбора обновлённых внутренних форматов большая часть парсеров от Risen не подошли. Там по большей части чтение по захардкоженным значениям, поэтому лишний байтик всё рушит. Я же сторонник более универсальных решений, поэтому пришлось на коленке набросать парсер (гитхаб, \WIP\gar5_parser.lua, "мануал" в описании).
Вывод пока что страшный и изобилует отладочными строками, но для выдергивания нужных значений вполне подходит. Обновлённая карта содержит слой с координатами 42 телепортов с игровыми ID-шниками, ещё один какой-то нестандартный, поэтому он исключён.
Для совмещения игровых координат с Leafjet методом тыка было найдено значение "размер мира" равное 819200 условных единиц. Как это перевести в какие-нибудь метры пока не знаю. Хоть замеряй время на пробегание от точки до точки и масштабируй этот размер в что-то типа "обычным шагов два часа пути".
Для совмещения игровых координат с Leafjet методом тыка было найдено значение "размер мира" равное 819200 условных единиц. Как это перевести в какие-нибудь метры пока не знаю. Хоть замеряй время на пробегание от точки до точки и масштабируй этот размер в что-то типа "обычным шагов два часа пути".
В Готиках 1-2 РВ для миров использовали "сантиметры" в качестве единиц измерения для мира, возможно и здесь будет аналогично, учитывая что у них используется самописный движок.. :)
MfG MaGoth, :gratz
очень даже совпадает с данными, полученными "с секудомером" ;)
вывел ГГ на прямую дорогу, пошёл ускоренным шагом. за 20 сек ГГ делает 50 шагов, за 45 сек проходит ~360 точек на тайлах максимального масштаба. плюс-минус лапоть, получился коэффициент ~0.008 к размеру мира; почти попал в "правильный" 0.01.
p.s.
доступная для исследования площадь карты вышла довольно скромной — ~8 км^2.
добавил на карту расположение рецептов/чертежей, аудиозаписей, картинок, книг/писем и камешков (для усилений). картинка в первом посте должна обновиться автоматически.
алгоритм для повторения примерно такой:
разобрать нужные *_Items.sec при помощи gar5_parser.lua
все полученные lua-файлы скормить скрипту parse_items.lua (список путей как аргументы)
на выходе получить текстовый файл с координатами и ID-шниками вышеперечисленных объектов (отсортированный по ID)
+ ещё один слой с расположением амулетов и колец
+ всплывающие подсказки с названием/описанием (где имеется)
* под это дело обновлены скрипты
Навёл на тот же Амулет вора что на скрине в шапке, описания нет, просто написано - Амулет вора.
при наведении появляется всплывающая подсказка (tooltip), а при щелчке — всплывающее сообщение (baloon) с описанием.
Shifroval
29.10.2017, 18:21
Замечательная карта, почти как по первому Ризену, там аж с координатами все предметы и неписи.
Стоит ожидать эту карту в виде отдельной программы или даже приложения на андроид\иос? Что куда удобнее при игре, чем постоянно в браузере копаться. К сожалению, я сам в кодинг не умею от слова совсем.
В качестве предложений по улучшению - в всплывашках с описанием предметов вписывать и их свойства, если они доступны. А для книг и записок можно указать количество даваемого опыта.
у неписей есть расписание, по которому они находятся в определённых координатах в определённое время. время и ссылки на guid-ы координат есть, но сами координаты пока в поиске.
отдельное приложение — даже и мыслей таких нет. максимум, доработка карты под мобильные девайсы.
Ametistys
29.10.2017, 19:40
Спасибо большое, hhrhhr, за Ваш кропотливый труд! :gratz
Замечательная карта, почти как по первому Ризену, там аж с координатами все предметы и неписи.
Стоит ожидать эту карту в виде отдельной программы или даже приложения на андроид\иос? Что куда удобнее при игре, чем постоянно в браузере копаться. К сожалению, я сам в кодинг не умею от слова совсем.
В качестве предложений по улучшению - в всплывашках с описанием предметов вписывать и их свойства, если они доступны. А для книг и записок можно указать количество даваемого опыта.
Вот это было бы круто! Очень поддерживаю. Конечно, наверно, правильнее находить всё самостоятельно и, всё же, такая карта на iPad рядом с монитором многим могла бы послужить хорошим подспорьем!
Ametistys
29.10.2017, 19:55
отдельное приложение — даже и мыслей таких нет. максимум, доработка карты под мобильные девайсы.
Ну, может "энтузиастые" умельцы проявят интерес. База готова почти. Если решат, что игра того стоит, может и сделают. Кроме нашего, русскоязычного и в других разделах тему про карту разместить можно. А там, если пойдёт, глядишь и для всего WOP-Форума отдельное приложение на мобильные платформы сделают. Кто знает...
Очень крутая работа! :gratz
Закинула все ссылки нашим воповским модераторам и умельцам. Надеюсь, они разберутся, поскольку я в технических вопросах мало чего смыслю.
Насколько я понимаю, в случае чего, ты сам сможешь с ними объяснится на английском.
Надеюсь, уважаемый hhrhhr, наша интернациональная команда сможет тебе помочь и поддержать это замечательное начинание!§wink
Ametistys
29.10.2017, 21:33
Здорово, Алёна! Знал, что не обойдёшь вниманием! Спасибо большое! :gratz
для книг и записок можно указать количество даваемого опыта.
нужен пример такой книги или записки, хотя бы примерное название.
в случае чего, ты сам сможешь с ними объяснится на английском.
с этим ещё сложнее, чем с отдельными приложениями. но были бы вопросы, а там как нибудь разберёмся.
в общем, всё уже сделано до нас — http://elex-map.eu/map
тягаться с таким "монстром" мне нет смысла...
Ты умничка! Не огорчайся...:gratz
В этом "монстре" нет русского языка. Думаю, многие русскоязычные игроки будут тебе очень благодарны!§wink
Shifroval
31.10.2017, 17:23
В том монстре и инглиша нет, кстати. Так что ценость представляет лишь для немцев. Ну или если нужно что-то одно найти и ты точно знаешь как это переводится.
А я только хотел предложить помощь по вытаскиванию координат предметов...
Всегда найдётся азиатнемец, что делает что-то лучше тебя (с)
Не огорчайся...
да я не в этом плане, но всё равно спасибо.
А я только хотел предложить помощь по вытаскиванию координат предметов...
с предметами проблем нет, куда интереснее узнать, где искать расположение контейнеров. и не совсем понятно, их содержимое генерируется случайным образом, в зависимости от уровня игрока или статически прописано.
иконки ещё нужно научиться доставать, текущие как-то не вдохновляют.
по карте. разноцветная мозаика в картинке из первого поста — это свежедобавленный слой зон повышенной опасности. цвет обозначает холод, огонь, отраву; радиоактивные зоны красные. количество черепов при наведении курсора есть фактор вредности данной зоны.
вот такие заборчики в открытом мире ;)
очень даже совпадает с данными, полученными "с секудомером" ;)
Гут.. :)
вывел ГГ на прямую дорогу, пошёл ускоренным шагом. за 20 сек ГГ делает 50 шагов, за 45 сек проходит ~360 точек на тайлах максимального масштаба. плюс-минус лапоть, получился коэффициент ~0.008 к размеру мира; почти попал в "правильный" 0.01.
Ну, погрешности можно скинуть на издержки мат., конвертеров единиц, ведь и в оригинале мира в 3дс-максе например, значения были иные нежели в итоге в игре. Опять же сужу по Г1-Г2, т.к. Г3 и Геном никогда не интересовали..
p.s. доступная для исследования площадь карты вышла довольно скромной — ~8 км^2.
Главное что есть где гулять.. ;)
Зы, + не в курсе будет полезна или нет эта инфа, в Г1-2 сетка мира относительно карты и позиционирования на ней Гг строилась путем отбора самых крайних вертекстов по сторонам света, и их значения вносились в расчет скриптов игры..
Зы-зы, а русскую карту продолжай, буржуинских нам не нать.. ;)
MfG MaGoth, :gratz
немного обновлений:
слой с очками (правда, всего шесть штук)
векторный слой с дорогами (совершенно бесполезный ;)
тайлы в JPG-формате (чтоб пользователи IE/Firefox отстали). переключение через ссылки в правом нижнем углу или при добавлении аргумента "...?f=jpg..." к адресу.
плагин leaflet-hash, формирующий ссылку на текущее положение и уровень зума. можно делиться конкретными координатами.
например, такая ссылка покажет немецкую версию с jpg-тайлами и расположение очков для "замечания живых существ":
https://hhrhhr.github.io/LuaELEX/elex_map.html?l=de#7|-2806.563|-2020.438 (https://hhrhhr.github.io/LuaELEX/elex_map.html?l=de#7|-2806.563|-2020.438)
Такое предложение - возможно ли на карте, нанести метки рудных жил? ;)
ну как-то так:
https://s8.hostingkartinok.com/uploads/images/2017/11/cb05611977641f831682cc89b1a03cbb.jpg (https://hhrhhr.github.io/LuaELEX/elex_map.html)
с иконками до сих пор беда... но зато в поисках залежей руды "нарыл" вместе с ними ящики, контейнеры и прочие интерактивные штуки. содержимое большинства таких ящиков полностью скриптовое, поэтому пришлось зарыть обратно.
+ слой с залежами руды.
+ определение поддержки WebP-формата и автоматическое переключение на запасной набор тайлов.
* ручной выбор теперь доступен просто в списке слоёв.
p.s.
для самых ленивых полный набор тайлов в не таком гадком качестве, как в репозитории (для локальной версии, например):
map_512_0-5_webp.zip 5.1 MB
https://mega.nz/#!q0A1BJya!bYC3_OtDNsAgSg0TRN3N7ynfowQx76R5immFDMt-OZE
Powered by vBulletin® Version 4.2.2 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.