LINUX.ORG.RU
ФорумTalks

Как часто вы создаете стандарты? Привлекаете ли вы внимание санитаров?

 , , , ,


0

2

Все начиналось с того, что я однажды родилс^Wрешил засунуть реальный город в GTA: San Andreas. Нормальное такое желание школьника. А собственно, почему бы и нет, ведь когда-то его выполнять надо?

Задача представлялась как нечто достаточно простое: надо просто натырить данных с OpenStreetsMap, присыпать спутниковыми снимками GoogleMaps, добавить фоточек (любых, хоть из ВТентакля) как источник текстур и в принципе все необходимые данные есть. Полигончики домов выдавливаем на нужное количество этажей, дороги рисуем вдоль домиков, все что между дорогой и домиком - газоны и клумбы. В принципе, все просто, можно заморочиться и написать процедурный генератор городов. В принципе, ничего сложного. К тому же это уже не однократно было сделано:

Есть и другие авторы и изделия народного хозяйства на https://wiki.openstreetmap.org/wiki/Simple_3D_Buildings, как с большей, так и не меньшей степенью всратости, а то и степенью мертвости. OSM-3D не вырос дальше интерфейса для автомобильных навигаторов 2007-го года, OSM2World выглядит как игрушка под msdos, но умеет кушать гигабайты памяти, местами f4map показывает что-то веселое, но это скорее благодаря багам реализации, а не полноте данных. Я же хочу город уровня GTA! Хотя бы GTA San Andreas, которая вышла в 2004 году! Мне что, самому создавать город?

Городов я раньше не создавал. Была попытка стать ландшафтным дизайнером, причем не одна, но складывать байты получалось лучше. А города - вообще какая-то закрытая тема, вроде бы никто не учит их создавать. Хотя бы в рамках игры. Потому решил начать с поиска существующих стандартов: к примеру, как часто расставлять фонари вдоль дорог? Нашелся ГОСТ 32947-2014 "Опоры стационарного электрического освещения", правда быстро выяснилось, что большинство ГОСТов в этой стране носят рекомендательный характер, так как дядя Вася поставит опору освещения там, где захочет, или где ему укажет прораб, и сделать генератор столбов на одних только правилах из ГОСТа не получится. Потом были найдены ГОСТ 33475-2015, ГОСТ Р 51256-2018, ГОСТ Р 58653-2019 и другие матерные слова.

Но вернемся к столбам освещения. Столбы освещения очень важны: это источники света для игровой сцены (прелайта в случае San Andreas), это то, что указывает на наличие дороги с большого расстояния, это тот самый высокочастотный городской шум, так приятный глазу, к тому же в них весело врезаться, когда катаешься по городу. Какие у нас есть данные и какие данные нам могут понадобиться? В вики проекта OSM есть следующие статьи:

Отсюда мы можем, если нам сильно повезет, вытащить информацию не только о столбе, но даже о его моделе и изготовителе! Причем можно узнать модель как самого абажура, так и самой лампочки, все это есть в OSM! Хватит ли мне этих данных? Конечно же нет! Так как я собрался расставлять фонари вдоль дорог, то мне нужны какие-то взаимосвязи именно с дорогами, чтобы полу-автоматически расставить фонари. А этих связей не только нет, но они и запрещены, разрешены только точечные данные, без привязки к чему-либо.

Далее, у меня в городе стоят красивые железобетонные столбы, с круглым сечением, на них есть крепежи для всяких камер и флагштоков, а на самой вершине - фонарь, явно поставленный туда штатно. Ближе к сельской местности же можно заметить, как фонари прикручены проволкой к 2 железобетонным ногам, которые обычно используют электрики, а то и вообще к деревянной опоре. Есть ли эти данные в OSM? В принципе да, есть lamp_mount, но почти всегда это будет lamp_mount=bent_mast или lamp_mount=straight_mast. Мне опять нехватает данных. тык - тут вообще можно найти все виды столбов

Подумав, решил идти 2 возможными путями:

  1. Взять данные из OSM как некие legacy-наметки, поверх которых строить свой собственный нескучный мирок. К примеру, берем дорогу из OSM, используем ее только как референс, как некую сущность, которая существует только в редакторе, но которая нигде не видна и никак не рендерится. И уже опираясь на эту сущность начинаем богато набрасывать с лопаты свои нескучные слои и даже полигоны: типы столбов, фонарей, ширина обочины, есть на дороге поребрики или заборчики, наличие деревьев, люков и даже тротуаров. Есть заборчик вдоль тротуара? Задать его как отношение к невидимой абстрактной дороге, прописав начало-конец-смещение относительно референсной дороги. Для осуществления этой деятельности мне не помешали бы государственные гранты и пару-тройку научных или псевдонаучных институтов в подчинение. И главное, не привлекать внимание санитаров.

  2. Взять саму игру (GTA San Andreas), за последние 20 лет игра отревершена вдоль и поперек, все внутренние форматы документированы и для них написаны всевозможные тулы. Из самой игры или из ее ресурсов вытащить данные или сымитировать процессы, которые можно сделать в реальной жизни. К примеру, в реальной жизни мы можем снять панораму местности (как это делает Google StreetView), такую же панораму можно снять и в игре, я как раз являюсь автором https://github.com/LudmilaPetrovna/panorama-gtasa/ (работоспособность сейчас не гарантирована). Добавить к таким панорамам снимки с виртуального же спутника, нарисовать виртуальные генпланы и другие средства, которые есть в реальности. И потом начать мапить, т.е. «оцифровывать» виртуальный игровой город так, словно он реальный. Затем, попытаться то, что мы намапили, отрендерить в 3D, чтобы это было максимально аутентично. Желательно так, чтобы это было пиксель-в-пиксель идентично. Так как у нас изначально игровые данные, то нам не нужны дорогие лидары, сверхточные дальномеры и фотоаппараты за миллионы даляров, все данные у нас уже есть, причем с точностью «до миллиметра». Все кирпичи, деревца и грязь на дорогах у нас уже стандартные. Остается все это дело классифицировать и сделать нескучный язык разметки, в который потом размечать реальный город с такой же точностью. По идее, тут бы помогли эти ваши нейросети, но нынче для запуска хелловорлда нужно иметь пару датацентров, а у меня их нет. Вроде бы этот способ более безопасен и интересен, но санитары тоже могут материализоваться.

Так вот, Лор. Что мне делать?

Да, неболшой пиар конфочки: https://discord.gg/pbSTvva4tG - если ты санитар, умеешь создавать свои стандарты, у тебя 15 лет опыта работы в OSM, то можешь зайти

ruzisufaka
() автор топика

Не понял зачем тебе связь фонарей с дорогами? Хочешь облегчить себе работу с мапингом координат из осмных в игровые? Чтобы столбы не стояли на проезжей части?

cobold ★★★★★
()
Последнее исправление: cobold (всего исправлений: 1)

Так вот, Лор. Что мне делать?

Позвонить санитарам, самому завязаться в смирительную рубашку и ждать.

Ну или жениться.

PPP328 ★★★★★
()

Но вернемся к столбам освещения

Освещение должно создавать нормативную освещённость на проезжей части (5/10 лк в зависимости от типа дороги). Расстояние между столбами рассчитывается исходя из применяемых светильников так, чтобы средняя освещённость была не меньше нормативной.

Можно сделать проще - взять 20 или 30 метров и двигаться дальше

Jurik_Phys ★★★★★
()

Санитар тот, кто халат быстрее надел

mittorn ★★★★★
()
Ответ на: комментарий от cobold

Не понял зачем тебе связь фонарей с дорогами? Хочешь облегчить себе работу с мапингом координат из осмных в игровые? Чтобы столбы не стояли на проезжей части?

Так как фонари зачастую ставят вдоль дорог, то какая-то минимальная связь все же должна быть. Она позволит или автоматически наштамповать фонарей вдоль дорог, или как минимум написать валидатор «эй, чувак, у тебя тут фонарей критически нехватает, может добавишь?». А вот эвристика «фонарь стоит на проезжей части» - это уже скорее к самим дорогам относится, так как на проезжей части может быть и дерево, и дом, и что-либо еще - это скорее в валидацию дорог добавить.

ruzisufaka
() автор топика
Ответ на: комментарий от ruzisufaka

Придумай эвристику. Например, если фонарь на расстоянии не более 5м от дороги, то свет от него попадает на дорогу, а значит он связан с дорогой

cobold ★★★★★
()

добавить фоточек (любых, хоть из ВТентакля) как источник текстур

Фототекстуры и фотограмметрия — говно, не делай так никогда.

intelfx ★★★★★
()

Все очень просто! Пишешь специальную нейросеть, обучаешь, затем натравливаешь ее на Google Street View и получаешь на выходе готовые карты для своей ГТА

r0ck3r ★★★★★
()

Привлекаете ли вы внимание санитаров?

Что? Это же самая нормальная из твоих тем)

goingUp ★★★★★
()

Что мне делать?

Do barrel!

Ну че ты к фонарям докопался то. Ставь, как выше указали, через определенное расстояние или в том же месте, где и реальные. Ну а уникальные типы\модификации потом проставишь.

Вообще, интересный момент, что тебя именно столбы освещения заинтересовали. У нас и не было таких, только на мостах, чугунные круглые, нерабочие, потом относительно недавно на въездах\выездах из города добавились. А так по одной стороне дороги ж\б столбы лэп 0,4, по другой деревянные для радиоточек и телефонов. Сейчас еще и оптика висит... Так вот, фонари освещения размещаются на опорах лэп, но не на всех, да и работают несколько раз в год и то не все.
А еще есть опоры, к которым под углом приставлена вторая опора...

sehellion ★★★★★
()
Ответ на: комментарий от neocrust

Перестать писать портянки

Что не является приоритетными целями

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

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

Далее будут лично мои идеи, но вы можете дополнять их:

  • Создание радиостанций с отечественной попсой и не только. В качестве отправной точки подошли бы группы Кино или может даже Комбинация, но это сильно зависит от вкусов и возраста того, кто будет делать истории, да и вообще весь город. Лично мой выбор начинается с треков «музыка нас связала» и «американ бой». Штука это крайне субьективная, потому ради сохранения добра и счастья, предлагается не заниматься этим. Ну, или заниматься, складывая треки где-то в уголочек.
  • Радиостанции с рекламой, приветами и прочейболтологией можно сформировать в ChatGPT, ей же и озвучить.
  • Бренды, товары, персоналии и их реклама. Можно использовать как существующие бренды торговых сетей, которые все заполонили, известные гаджеты, лица знаменитостей, так и придуманные бренды. Если отнестись к этому серьезно, то надо для каждого бренда создать свою уличную рекламу (билл-борды на улицах), рекламу на радио, вывески на самих магазинах (реюзабельные модельки), принты для автомобилей и для одежды персонажей. Возможно флаги-растяжки на улицах. Все это должно быть в какой-то базе, ассеты из которой будут автоматически инъектиться в игру (перекрашивать текстурки скриптом), чтобы не расставлять руками.
  • Заменить блюда, которые можно купить на отечественные аналоги, к примеру, добавить «квас» и «селедку под шубой» в качестве заказов. Опять же, составляем базу, составляем список ресурсов (тексты и текстуры), которые надо патчить, потом при сборке города автоматически патчим весь город. Заменили блюдо в 1 кафе - заменилось меню во всех.
  • Сделать локализацию одежды. Подойдут как штаны с тремя полосками, шапки-ушанки, так и старушки в пуховых платках (хотя какие пуховые платки летом?). Желательно не только сделать одежду, но и сделать тесты одежды, чтобы персонажи могли надевать что-то (к примеру, головные уборы) и сверху шапки не торчала лысина и уши.
  • Набор «уличной мебели» в виде клумб-покрышек, лебедей из покрышек, максимально всратых детских горок и тому подобных аттрибутов отечественной урбанистики. Сюда же идут и памятники Ленина, и вечные огни, и прочие обелиски.
  • Настоящие или выдуманные предметы на улицах. К примеру, «бояроматы» - автоматы по продаже настойки боярышника, или автоматы по продаже документов, как в фильме Звездный Ворс (сцена в метро)? А может быть автоматы по продаже трусиков старушек? Или секс-кукол? Или общественные секс-куклы, на манер таксофонов?
  • Надо еще продумать интерьеры зданий, это будет моделить сложнее всего. Хотя модельки подъездов можно взять из той же криминальной россии. Можно попробовать сделать интерьеры с коврами на стенах и с кружевными скатертями.
  • Найти готовые игры и сделать коллекцию ассетов, которые можно использовать в дальнейшем в проекте. К примеру, можно взять как сами игры, так и всевозможные моды, такие как GTA:Мухосранск, GTA:Купянск, EuroTrackSimulator2:Sibir, Сталкер.
  • Можно попробовать смоделить сценки из жизни: старушки кормят голубей (старушка и голуби - одна моделька), родители бьют детей,
  • Интеграция с внешними сервисами: что-то вроде SAMP, когда в игру инъектятся данные из сети, но раз у нас город реальный, то можно инъектить и GPS-координаты. Можно попробовать сделать игру «найди курьера на карте» в реалтайме или даже возможность заказать блины в хуяндексе через этого курьера.

Такие дела

ruzisufaka
() автор топика

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

dmitry237 ★★★★
()

Попробуй вступить в ЗОГовор с разрабами мода Stars & Stripes

«The main focus of a project is to bring the entire USA map into the game, while keeping the artistic style of the original San Andreas map as accurate and authentic as possible.»

Grapow ★★
()
Последнее исправление: Grapow (всего исправлений: 2)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)