Текущее время: 28 мар 2024, 20:39



Ответить на тему  [ Сообщений: 8 ] 
Автоматическое создание основы карты из любого изображения 
Автор Сообщение
Красноармеец

Зарегистрирован: 24 июн 2017, 21:30
Сообщений: 3
Сообщение Автоматическое создание основы карты из любого изображения
[Сначала несколько слов благодарности команде RWG-team.
Даже спустя надцать лет Протива остаётся лучшей, а ваша команда создала лучший мод для неё.
В игре - главное играбельность и атмосфера. 3D и прочая нужны тому, кто без фантазии.
Всё зависит от играющего. Кто видит только передвижение нелепых спрайтов,
а кто воссоздаёт в голове обстановку и переживает в себе людские чувства.
Вижу, что для многих здесь игра - тяжёлая и увлекательная работа)
А что посетителей мало - так истинных ценителей много не бывает.
Уж поверьте старому игроману. П3 - единственная игра, которую я купил за деньги, как жест признания.
Для человека, внедрявшего первые ПК и осваивавшего ассемблер без доков, покупать проги - жёсткое нарушение принципов.
Так что, можете представить, каких мук мне стоил тот жест)
В инете стараюсь общаться мало, это мой первый пост за надцать лет в форумы Противы.
Все эти годы боялся касаться темы разработки, т.к. "в мои годы должно быть стыдно"
+ может сожрать кучу времени. Но не уберёгся и накрыло. Загорелось сделать карту, а там, глядишь, и миссию.
Тем более, что картография, в т.ч. электронная - тоже мои увлечения и работа некоторой части жизни.]

Ближе к теме. Есть хорошие карты, но мало больших. Почему хочется большой?
Там может незамеченным проскочить противник. Иначе примитивный AI не даёт контуперу шанса.
А какой интерес играть со слабым противником?

Понятно, почему так мало больших карт. Карты - это искусство.
Даже для игровой карты нужно быть знатоком как минимум географии и математики.
Плюс колоссальный труд. Поэтому ставим задачу так: облегчить создание большой, но в то же время
не "пустой" карты, второстепенные области которой заполнены правдоподобно.

Первые варианты - нарезать кусков у коллег. Да, хорошо учиться на примерах
лучших участков, но проблемы не решает.
Тогда приходит на ум воспользоваться существующими картами.
Скажем, взять лист топографической карты и засунуть в игру, а потом гордо заявить о достоверности)
Здесь - другая проблема. Даже при понятной несоразмерности деталей игры
и масштаба карты - в игре так и должно быть - возможности Противы ограничены.
Самая крупная 512x512 подходит максимум для карты-полукилометровки.
Т.е., можно попробовать впихнуть в игровое поле лист карты масштаба
1:25 000, 1:50 000. А порой хочется разыграть армейскую операцию
в пространстве 100x100 км. Но игровое поле не вместит.
Что остаётся? Как всегда, делать ручками, или?

Потратив вечер, проверил практически.
Применил научный метод тыка (доков по форматам не нашёл - буду признателен, если кто предоставит).
Карта, скажем так, подстилающей поверхности, хранится в файле RHOMBS (ромбики - понятно, почему).
Каждый робик игрового поля кодируется 8-ю байтами.
Нужный байт находится быстро, что в остальных - пока неинтересно.
Нужный - в смысле тот, который в редакторе определяет класс "земля": трава, песок, вода...
После этого наскоро набросал прогу, чтобы картинку в простейшем графическом формате BMP перекодировать в RHOMBS. (Давно отошёл от серьёзного

программирования, но частенько для себя клепаю подсобные примочки. При этом пользуюсь убогим бейсиком, из-за "шаговой доступности". Если

пользуетесь мс-офисом - excel или word - значит, это УГ всегда под рукой).

Результатов три: 1 плохой и 2 хороших.

1. Плохо - подтвердились соображения насчёт масштаба.
Пытаться впихнуть листы 1:100 000 (2-х километровки) - напрасный труд, детализация не соответствует, а многочисленные надписи "размывают" контуры.
В то же время, масштабы крупнее - более-менее рабочие (можно пользоваться современными от ГИС - там по минимуму надписей). Старые карты

военного времени идут тяжко - обилие ручной работы, узкая палитра цветов. В любом случае, получаем только контуры, которые всё равно придётся

дорабатывать.

2. Хорошо - можно легко и очень быстро перенести любой рисунок в игровое поле. Например, самому нарисовать линии рельефа, либо взять за основу ту

же топографическую карту, разумно её упростив.

3. Хорошо - открылось как побочный эффект.
Заглянув в файл OBJECTS (объекты), видим, что он крайне прост.
Текстовые строки с указанием класса объекта, координат на игровом поле, номера объекта в классе, степени "целости" и некого стандартного для класса

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

деревьями (а для карты 512x512 это многие тысячи деревьев) можно в доли секунды. Можно даже заготовить рисунки карт с зелеными зонами разных

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

результат намного лучше и реальней, чем при их массовом "намазывании" мышкой вручную.
Сказанное верно и для прочих объектов - камней и т.д. Главное - чувство меры.

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

Если мой пост описывает известные вещи, либо, наоборот, кому-то интересен, сообщите прямо здесь.

Пояснения, картинки и пример проги могу выложить.
__________
Что такое координаты на игровом поле?
Поле имеет форму ромба со стороной до 512, кратной 128.
Каждый ромб имеет внутренние координаты 32 x 32.
Т.е., теоресиськи можно в каждый ромб высадить 1024 дерева, или всадить 1024 воронки.
Кроме того, ромб разбит на 4 части (по 8x8) - целый ромб вмещает крупную единицу/юнит, например, танк, а четвертинка - малую единицу/юнит типа

пехотинца (это видно в редакторе при нажатии F3).


24 июн 2017, 23:50
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Автоматическое создание основы карты из любого изображен
Идея, безусловно, интересная.
Припоминаю, было что-то подобное (правда, я не пользовался), скорее всего есть в архивах, попробую найти.

РС Возможно, еще тут найдется что-то полезное.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


25 июн 2017, 02:31
Профиль ICQ
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Автоматическое создание основы карты из любого изображен
В своё время товарищ занимался вопросом правки уже откомпиленных карт, есть такой документик по структуре, думаю, будет полезен.


У вас нет доступа для просмотра вложений в этом сообщении.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


28 июн 2017, 13:40
Профиль ICQ
Красноармеец

Зарегистрирован: 24 июн 2017, 21:30
Сообщений: 3
Сообщение Re: Автоматическое создание основы карты из любого изображен
zarathustra писал(а):
В своё время товарищ занимался вопросом правки уже откомпиленных карт...

Благодарю. Именно то, exactly.
Попутно подтверждается сходство полит.убеждений/интересов при сходстве других "узких вкусов" :)

Нового мало, но хорошо упорядочивает и подтверждает найденное. Т.е. полезно и показывает, что ничего сложного в формате карты нет (в формате миссии также). Поковыряю ещё "новый" формат файлов ssm/smm ...

Будет ли боец, который рисует единичные карты, заполнять их частично "автоматом" - не уверен.
А вот для массовой "корректуры карт" вижу большую пользу. Скажем, после очередного существенного изменения набора объектов - составить таблицу соответствия новых старым и быстренько всё заменить. Тем самым можно поддерживать (update-ить) старые карты/миссии.


28 июн 2017, 23:23
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Автоматическое создание основы карты из любого изображен
Программа для создания исходника из гугл-карты
MapImageToolForSSII
Работает так:
На maps.google выбираем местность.
Делаем скрин (Printscreen).
В любом графическом редакторе меняем на черно-белый, правим контраст/яркость и сохраняем в формате *.bmp
В редакторе Sudden Strike создаем новую карту и сохраняем.
В программе MapImageTool выбираем свой имедж-файл и портируем его в редакторе Sudden Strike:
MAP FOLDER => "карта" => TRANSFER
Запустаем редактор Sudden Strike, загружаем карту редактируем.

Есть еще такая программка:
Mapshtab
Лично никогда ей не пользовался, поэтому ничего конкретного сказать не могу.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


13 июл 2017, 13:51
Профиль ICQ
Ефрейтор
Аватар пользователя

Зарегистрирован: 25 апр 2017, 16:27
Сообщений: 32
Откуда: Петербург
Сообщение Re: Автоматическое создание основы карты из любого изображен
Мысля хорошая! И спасибо большое за пояснение к файлику objects, раньше его никогда не замечал, но он открывает широкие перспективы! "thank"
Только вот хоть убей, не понимаю, где здесь положение, где id, а где повреждения: tree 5800 12056 56 0 179.
Всё, разобрался. Первые два числа - положение, но как мы помним, в каждом квадратике есть 32 точечки, так что оба числа делим на 32, если будет дробная часть - то она будет либо .25, либо .75. Это потому, что по сути, в каждом квадратике 4 части. Если .75, то дальний, а если .25, то ближний маленький квадратик в большом квадрате.

_________________
Помогите слонику (т.е. мне) разобраться в сложных тонкостях мира (т.е. в РВГ).


20 июл 2017, 13:08
Профиль
Лейтенант

Зарегистрирован: 12 янв 2012, 05:22
Сообщений: 2268
Откуда: МВО
Сообщение Re: Автоматическое создание основы карты из любого изображен
Третье значение - ID объекта
Четвёртое - здоровье.

_________________
Изображение

Приумножая познания, приумножаешь и скорбь.....(с)


21 июл 2017, 20:04
Профиль ICQ
Сержант
Аватар пользователя

Зарегистрирован: 21 фев 2012, 19:15
Сообщений: 109
Сообщение Re: Автоматическое создание основы карты из любого изображен
дорогой товарищ я с тобой потом свяжусь мне надо будет пообщаться насчет карт! Ты тоже вижу мого чего достиг в этом деле надо будет поделиться опытом между собой особено интересна раскодировка файла rhombs


22 июл 2018, 22:45
Профиль ICQ
Показать сообщения за:  Сортировать по:  
Ответить на тему   [ Сообщений: 8 ] 

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by STSoftware for PTF.
Русская поддержка phpBB