Карты реального мира

OpenTTD - современная игра, клон Transport Tycoon Deluxe с открытым исходным кодом, написанный на C и С++. Содержит ряд ключевых улучшений и возможность игры по сети. На данный момент это главное направление развития игры.

Модераторы: eraserkry, Mihamster, Smoky555, Группа модераторов

Карты реального мира

Сообщение Zhelezaka » Вс ноя 16, 2008 05:17

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

How To: Generate Superb Heightmaps - вот она. Искренний респект автору (MGSteve) за подробные объяснения, позволившие мне разобраться и добавившие интереса к игре (теперь буду маньячить с картой Земли, отыскивая игровые участки :) ) В принципе, на этом можно было бы и закончить, но зная, что в нашем коммюнити у многих нелады с английским, я решил попробовать объяснить то что понял, здесь. Зуб даю, многие подумывали " - а хорошо бы сыграть на этой местности, или на этой". Выйдет наверное длинно (а сочинять мне еще дольше), но сам с нуля я не спеша построил карту часа за полтора, еще и сёрфя по инету в это время. Ну, сначала я замахнулся на Австралию, но быстро понял, что для первого раза это будет уж очень долго и взял что попроще из двух кусков - Тасманию. Готовую карту 2048х2048 запощу ниже (а классно получилось кстати), а пока...

Сразу скажу, вам надо будет иметь довольно много места на диске, если вы захотите создать карту из множества кусков ну и инет более-менее приличный. Для того, что я сделал (2 куска), мне траффика почти не понадобилось (метров 15 и 50 на прогу одну), но распаковываются они обалдеть как, так что выбирайте для программы диск, где у вас места побольше.

Вам надо:
1. Google Earth - ну, это у меня было.
2. MicroDem - собственно, программа для конвертации, редактирования, склейки Гугловских участков.
3. SRTM Overlay for GoogleEarth - вот на эту кнопку вы должны нажать уже после установки Google Earth и лучше не сохранять, а запустить сразу.
4. Какой либо графический редактор, для конвертации TIF в PNG файл (до лампочки какой, их хренова тьма (я использовал CompuPic Pro, автор не мудрствуя лукаво предлагает Photoshop :) ) - это сами. Ну не настолько ж вы тормоза, чтоб у вас в этом месте затык был.
5. Наверное, машинка более менее приличная. "Наверное" - потому что автор об этом упоминает, а на моём 9450 с 4 гигами памяти всё занимало секунды буквально.

Итак. Когда вы установите GoogleEarth, нажмите на ссылку 3 и вам откроет программу с небольшими прибамбасами - слева на панели будет отмечено галкой SRTM3, чего нам и надо. Вы заметите, что карта разбита на квадраты с зелеными точками посередине. Это собственно участки местности, которые надо будет загрузить и переделать. Но для начала установите MicroDem на диск, где места поболее (просто букву диска поменяйте), потом на всякий случай проапдейтите её, запустите - скорее всего поругается на отсутствие необходимых библиотек - загрузите библиотеки и запустите программу еще раз. Можно приступать непосредственно к картостроению.

В GoogleEarth выберите местность, которая вам нужна и загрузите информацию о стольких квадратах, сколько охватывают интересующий вас участок (я на пробу взял Тасманию - 2 участка, но фотки буду приводить из оригинального поста, ибо в лом скриншотить и заливать свое, думаю не принципиально).
Изображение
Для этого, нажмите на зеленую пимпочку посередине квадрата. Вам откроет дополнительное окно со списком серверов, откудо можно загружать инфу (ниже надписи Download the data for tile : srtm_66_21 к примеру). Я прямо в первый UK ftp тыкал и оттуда с приличной скоростью всё скачивалось. Заливать архивы нужно сюда: D:\mapdata\DEMs\tasmania - в моем случае, т.е. вместо папки "\tasmania" сделайте там свою, какую хотите. Архивы типа srtm_66_21.zip содержат необходимые участки местности в формате .asc, которые надо извлечь в ту-же папку. Тут был сюрприз - при размере архива в 10 мегабайт из него вылезло файло размером аж 200 мег :) и из второго примерно так же (для этого место и нужно).

После загрузки и распаковки открывайте MicroDem. File -> Open - > Open DEM и открываете первый (если у вас несколько) ASC файл в той папке, куда загружали. Прога откроет окно с файлом и вам надо сделать на первый раз пару манипуляций, она их запомнит, повторять с каждым участком не нужно. На карте правый клик мыши > 'Legends / Marginalia' и снимите галки со 'Scale Bar' и 'Elevations'. Нажмите ОК (вот не надо на redraw map соглашаться). Далее на верхней панели Raster GIS->Thin DEM (Decimate) и меняете значение с 2 на 3 (вот это вроде надо на каждой карте делать). Когда переделает малость, File->Save DEM->ASCII Arc Grid. Сохраняйте в том-же месте, где исходные asc., так удобнее (кликните на файл, который вы открыли, добавьте что нибудь и уберите расширение в строке имени файла. Например, Z_65_21.ASC исходный я сохранил, как Z_65_21_test.ASC - размер сохраненного файла уменьшается раз в 10, не пугайтесь).
Сохранили? Атлична, теперь закройте оба окна с фрагментами и повторите этот-же процесс со следующим нужным вам участком карты, ну, сколько вам надо там. А потом, само собой, сохраненные файлы надо объединить.

File->Data Manipulation - откроется новое окно - > Merge->DEMs->DEMs -- pick multiple - > и выбираете ВСЕ сохраненные вами файлы (_test.ASC в моем случае), Ctrl зажимаете и тыкаете по порядку - > Открыть - > ждете, пока прога прочитает все отмеченные вами файлы - > выскочит окно, где будет предложено ввести имя сохраняемого объединенного файла, сочиняете и сохраняете в формате .DEM,
Изображение
после чего закрываете окно Data Manipulation.

File -> Open - > Open DEM и открываете не знаю как обозванный вами объединенный файл в формате .DEM, будет что-то навроде этого:
Изображение
Желаем наверняка обкорнать, не так ли? 8-я кнопка слева (subset & zoom), рамкой обводите интересующий вас участок (впрочем, если не хотите, можете и не обрезать ничего, я лично вырезал по форме как можно ближе к квадрату).
Изображение
Обращаю ваше внимание, что вырезать участок можно ТОЛЬКО начиная с верхнего левого угла изображения, т.е. прикидывайте, как плясать сразу. С других углов будет ошибку выдавать. Но, если ошибетесь, не беда - справа от нашей кнопки кнопка отмены, а слева возврат изображения в полный формат после этой самой отмены.
Вырезав, как хочется, надо перевести изображение в черно-белый формат, грубо говоря. Правый клик - > 'Display Parameter' - > 'Elevation' -> 'Gray scale' -> жмете кнопку "z Range". Я оставил цифры по дефолту, наверное, так и надо на первый раз. Это параметры отображения высот, как я понимаю. Т.е. если результатом будет чрезмерное "утопление" готовой карты или наоборот, то следует потыркать эти цифры.

<Update: по поводу перевода в двухцветную шкалу.
Совершенно точно уже, что по дефолтным настройкам "z Range" изображение выходит таким, что с трудом отличаются уровень 1 земли и море, в результате большие участки могут оказаться затопленными в игре. Тут два пути: во первых, можно просто минимальное значение "z Range" выставить -200 и также поднять максимум - уже изображение будет восприниматься игрой почти нормально. Но я нашел в оригинальной ветке пост, где все инструкции и важные дополнения выложены в Creating heightmaps.doc Поясню, что там особенно важно.

В OpenTTD 15 высот и каждой высоте соответствует свое значение цвета (R, G, B). Для цветов по высотам оно одинаковое:
LVL R G B
1 30 ||30 ||30
2 40 ||40 ||40
3 50 ||50 ||50
4 70 ||70 ||70
5 90 ||90 ||90
6 110 ||110||110
7 120 ||120||120
8 140 ||140||140
9 150 ||150||150
10 170 ||170||170
11 190 ||190||190
12 200 ||200||200
13 220 ||220||220
14 230 ||230||230
15 250 ||250||250
Надо просто перевести карту в черно-белое изображение в соответствии с этой таблицей. Правый клик - > 'Display Parameter' - > 'Elevation' и выбираете “Automatic chloropleth palette” -> "Green to Magenta, 16 steps" -> Define. Справа откроется таблица, в которой и нужно ввести значения для каждого цвета сверху вниз, т.е. 30 самая верхняя строка. Обратите внимание, что все строки не отображаются, 2 скрыты - отматывайте колесом мыши просто. Введите в таблицу для каждого цвета 16 значений, т.е. повторите 15-ю дважды (250 две строки будет). Когда заполните всё, жмите ОК и карта будет отрисована для масштабирования и сохранения в наиболее правильном варианте для игры.
Теперь немного отсебятины, которой нет в доках. Дело в том, что введенные вами настройки таблицы MicroDem сохраняет во временной папке и они испаряются при выходе из программы, т.е. каждый раз после запуска надо колупаться заново. Ага, ща, делать больше нечего. Как перекрасит карту, тут-же откройте -> C:\Documents and Settings\ZLZ\Local Settings\Temp\petmar_trilobites (в моем случае), копируйте куда нибудь colors1.dbf и при желании переименовываете. Я обозвал colorsOttd.dbf, забросил в D:\mapdata\colorsmap и теперь при перекрашиании карты просто тыкаю "Colors from table -> Elevation table - > выбираю свой файл - > OK" и все как надо.
>
Но на первый раз, если хотите, попробуйте по дефолту (вы всегда сможете переделать, если не понравится), жмите ОК два раза и будет так:
Изображение
И теперь жмем кнопку 12 слева (No zoom (1:1 view)), а потом сохраняем почти готовую карту в TIF формате: File->Save Map as Image->GeoTIFF, screen scale (grayscale) в папку D:\mapdata\IMAGES
С новой прогой всё.

Собственно далее необходимо переконвертить TIF файл в PNG графическим редактором, но сначало обязательно подгоните размер к используемым OpenTTD (2048x2048, 1024x512 и т.д) Чтобы никаких там 2048х1999 или 1021х512 не было! Результатом должен стать файл, четко по размерам, которые можно выставить в игре! (да оно без проблем все делается вопщем-то). Как вырезали, сохраняете в .png формате ну и готовую уже карту запихиваете в игру (\scenario\heightmap):
Изображение
И всё, загружаете её в редакторе, контролируя правильные размеры наверное или сразу "играть карту высот".
Готово :wink:

Уф. Вы не пугайтесь, реально сделал всё в первый раз за час с небольшим, вручную хрен бы такую мапу сделал, очень долго. Я больше замонался этот талмуд строчить. Так что дерзайте и будет вам счасте, если кто сподобится все-таки, делиться не забывайте :)
Ну и для примера, вот вам Тасмания в размере 2048 х 2048, очень даже ничего получилось.

Изображение
Скрин (не забывайте, что карта здоровенная)

p.s. Пара замечаний.
Во первых, все-таки мне кажется, что по дефолту местность чуть утоплена. Оно может даже и интереснее (рек побольше), просто я заметил сейчас, когда лепил Испанию, что Майорку залило немного (острова меньше стали).
Во вторых надо учитывать, что можно как из нескольких кусков слепить карту, так и увеличить фрагмент квадрата (к примеру, группу мелких островов) до нужного игрового размера.

p.p.s. Нашел, как привести реальные высоты карты к высотам OTTD. Выше см. исправления.
Последний раз редактировалось Zhelezaka Пн фев 22, 2010 14:09, всего редактировалось 6 раз(а).
Zhelezaka
Начальник станции
Начальник станции
 
Сообщения: 80
Зарегистрирован: Пт мар 03, 2006 15:25

Re: Карты реального мира

Сообщение Neko » Вс ноя 16, 2008 08:13

Спасибо большое за подробное и доходчивое описалово.

У меня же остаётся невыясненным один вопрос - а каким образом на этой карте будут появляться города и различного рода промышленность?

Здесь возможны два решения:
1. Города и промышленность расставляем руками в редакторе.
Лично мне это решение кажется слегка одноразовым, а посему, достаточно скучноватым.

Более интересным мне кажется решение номер два:
2. На карту города и промышленность расставляются СЛУЧАЙНЫМ образом в момент старта игры, т.е. всё делаем как обычно, только карта генерится не случайная, а берётся нашими руками сделанная.

Так вот вопрос - а можно ли это сейчас, при существующем коде игры, делать, или придётся своими руками в игру дописывать. Лично у меня такое желание давно уже зреет.
Револьвер - лучший аргумент в любом споре
Аватара пользователя
Neko
Президент
Президент
 
Сообщения: 750
Зарегистрирован: Чт окт 13, 2005 12:23
Откуда: Москва

Re: Карты реального мира

Сообщение Zhelezaka » Вс ноя 16, 2008 16:11

Neko
Более интересным мне кажется решение номер два:
2. На карту города и промышленность расставляются СЛУЧАЙНЫМ образом в момент старта игры...


Так это давно есть :wink: "Play Heightmap" (Играть карту высот)
Zhelezaka
Начальник станции
Начальник станции
 
Сообщения: 80
Зарегистрирован: Пт мар 03, 2006 15:25

Re: Карты реального мира

Сообщение bohdan4ik » Пн ноя 17, 2008 12:31

Изобретатели%)
bohdan4ik
Начальник станции
Начальник станции
 
Сообщения: 100
Зарегистрирован: Вс ноя 04, 2007 04:37

Re: Карты реального мира

Сообщение Leo » Пн ноя 17, 2008 15:46

Большой респект за такой грамотный и интересный пост. В котором есть что то интересное, а не просто 100-летние вопросы.
Выложи пожалуйста отдельной темой в соответствующем топике свою сборку и свою карту, уверен народ будет счастлив.
Ветеран TTDRussia.
Отсутствовал на форуме почти год.
Leo
Машинист
Машинист
 
Сообщения: 56
Зарегистрирован: Чт авг 11, 2005 22:58

Re: Карты реального мира

Сообщение Zhelezaka » Пн ноя 17, 2008 19:55

http://rapidshare.com/files/164693180/3 ... x2048_.rar

Здесь 3 карты 2048х2048. Пиренейский полуостров, острова Фиджи (так, пробовал) и исправленная как надо Тасмания. По поводу своей сборки оно конечно можно, но собирал то под себя и тестировать долго пока времени не было. Т.е. там всё работает и думаю без проблем будет, но вдруг чё не так - пинать начнёте :)

з.ы. Тасмания мне понравилась, я сделаю седня наверное еще вариант 4096х4096 или подберу другой участок для такого размера.

Сборка на транке 14565 - пробуйте, если охота.
Zhelezaka
Начальник станции
Начальник станции
 
Сообщения: 80
Зарегистрирован: Пт мар 03, 2006 15:25

Re: Карты реального мира

Сообщение Shummaxer » Вт ноя 25, 2008 18:53

Так у меня вопрос пытаюсь сделать ну очень большу карту, при сложении прога говорит что типа не могу сохранить. мое мнение изза того что когда совмещаешь отдельные карты в одну там есть строчка
Merge 3 with 18000 cols, 10000 crows
объсните что это может быть, с английским не очень хорошо просто,
еще появляется надпись Grid too large to load
Shummaxer
Начальник станции
Начальник станции
 
Сообщения: 62
Зарегистрирован: Пн ноя 24, 2008 18:14

Re: Карты реального мира

Сообщение Zhelezaka » Вт ноя 25, 2008 20:39

Вообще, говорится, что если Thin Factor = 3, то карта м.б. максимум 12 на 12 клеток (24000 х 24000), но можно увеличить, если ставить 4 или даже 5. Может, ты с Thin Factor = 2 пробуешь?

Я на такие размеры не замахивался, но по прикидкам там понадобится дофига ресурсов при переделке изображения 1:1, т.к. уже при 3х3 нужно 90 мег.
Zhelezaka
Начальник станции
Начальник станции
 
Сообщения: 80
Зарегистрирован: Пт мар 03, 2006 15:25

Re: Карты реального мира

Сообщение Shummaxer » Вт ноя 25, 2008 20:57

все спасибо объяснил что эт такое пробую с 3 занимает не больше 30мб, но карта огроменная попозже скину, найди те куда скинуть тфт файл
1:1 не делаю уже потому что еще нет и 1/4 задуманного а тикон уже не воспринимает стоко клеток :D :D
Shummaxer
Начальник станции
Начальник станции
 
Сообщения: 62
Зарегистрирован: Пн ноя 24, 2008 18:14

Re: Карты реального мира

Сообщение Shummaxer » Вт ноя 25, 2008 21:57

Люди кто хочет попробывать мега карту, то подумайте как можно сделать так - сделать 3, 4 большие катры и сомвестить их вместе чтоб была одна большая (хотя она огроменная просто)
Shummaxer
Начальник станции
Начальник станции
 
Сообщения: 62
Зарегистрирован: Пн ноя 24, 2008 18:14

Re: Карты реального мира

Сообщение Zhelezaka » Вт ноя 25, 2008 23:38

Shummaxer
1:1 не делаю уже потому что еще нет и 1/4 задуманного а тикон уже не воспринимает стоко клеток

Это просто перевод попиксельно 1:1 (что есть напряг для слабых машин при больших размерах), само изображение может получится здоровенным, но для Ottd уменьшается до нужного размера. А во вторых, в игре с помощью применения одного патча можно теоретически создавать просто огромные карты (до 1048576, при ограничении в по умолчанию 2048), но практически это ни один комп не вытянет и вдобавок я не вижу смысла играть уже 16384, да даже 8192 по моему многовато.

как можно сделать так - сделать 3, 4 большие катры и сомвестить их вместе чтоб была одна большая

Это без проблем в нормальном графическом редакторе.
Zhelezaka
Начальник станции
Начальник станции
 
Сообщения: 80
Зарегистрирован: Пт мар 03, 2006 15:25

Re: Карты реального мира

Сообщение Shummaxer » Ср ноя 26, 2008 15:39

насчет того что тикон воспринимает большие катры это е правда, по скольку у меня нельзя создать карту высот больше чем 8192 на 8192
Shummaxer
Начальник станции
Начальник станции
 
Сообщения: 62
Зарегистрирован: Пн ноя 24, 2008 18:14

Re: Карты реального мира

Сообщение Mihamster » Ср ноя 26, 2008 16:14

ну то что у тебя не получается... это не значит что это диагноз.... у меня все нормально генерится.... просто я генерацию ни разу до конца не дожидался.... уж очень долго это предвещало быть)))
зато вот генерил карту (без ЕЦС) 16к на 512... пол минуты и готово... но она такааааааая огроменная.... что я даже представить себе не могу на кой это надо... только если чисто из спортивного интереса... меряться размерами карты на которой играешь))))))) :lol: :lol:
Табито?Мэитадору
.....свобода каждого заканчивается там.. где начинается несвобода другого...
"Осваиваем Опен"
Аватара пользователя
Mihamster
Президент
Президент
 
Сообщения: 949
Зарегистрирован: Вт апр 29, 2008 23:06
Откуда: Москва

Re: Карты реального мира

Сообщение Zhelezaka » Ср ноя 26, 2008 16:22

Shummaxer
Это убрали в последних версиях патча, но запрет можно обойти, если отредактировать вручную один файл перед сборкой. Ограничили, т.к. просто не тянут компьютеры такие размеры. Да и не нужны они, прикинь, уже в карте квадратом 8192 содержится 16 (шестнадцать ё моё) квадратов 2048. Ты никогда её не застроишь! :lol:
Zhelezaka
Начальник станции
Начальник станции
 
Сообщения: 80
Зарегистрирован: Пт мар 03, 2006 15:25

Re: Карты реального мира

Сообщение Shummaxer » Ср ноя 26, 2008 21:09

первая часть моего творчества:
http://webfile.ru/2423074
не хочу щас выкладывать саму карту, т.к. буду еще доделывать
Shummaxer
Начальник станции
Начальник станции
 
Сообщения: 62
Зарегистрирован: Пн ноя 24, 2008 18:14

След.

Вернуться в Общие вопросы по OpenTTD

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 3