воскресенье, 30 ноября 2014 г.

Новые утесы

Пока фотографировал - сам понял, что невыносимо желаю палатку, и на ЮБК :-)





Противоположный берег.




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

пятница, 28 ноября 2014 г.

А вообще, левелдизайнеры скоро будут не нужны

Der Sieg ist unser!

Наконец нашел решение вопросу, который мучал меня несколько месяцев - как гармонично и без лишних движений создать на спутниковой карте и карте слоев текстуру свежей травы. Перепробовал разные способы - от рисования вручную на планшете до разных манипуляций с картой эррозии, вытащенной из World Machine.

Все время получалась какая-то ерунда. Сегодня, наконец, нашел нормальное, с моей точки зрения, решение - и простое как топор! Просто выделил на своем основном слое саткарты темные места (образованные ручной прорисовкой впадин и той же картой эррозии, положенной через почти прозрачный оверлей) и решил, что эти темные места в низинах как раз и будут зеленой травой :-) Благо, в Крыму летом трава выгорает на счет раз, только в теньке и спасается.

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


среда, 26 ноября 2014 г.

Доработка спутниковой карты.

Продолжаю по мелочи дорабатывать спутниковую карту - перерисовал море, наложил через overlay несколько кусков спутниковой карты с Яндекса, обработанных фильтром high pass для некоторой детализации, добавил новый слой растительности.

четверг, 13 ноября 2014 г.

Озеленение ч.2

Чтобы не забрасывать крымскую карту за всеми этими экспериментами, прошелся еще одним слоем озеленения. И если в предыдущий раз маска для размещения зеленки была нарисована просто на глаз, то сейчас использовал алгоритм, основанный на маске эррозии, посредством World Machine. Карта стала более живой, кусты и деревья - более "рандомными", и в то же время - вполне логично расположены. В отличие от по настоящему рандомной расстановки объектов, здесь алгоритм приближен к природному и бессознательно вполне комфортно воспринимается. Ведь в природе деревья растут не как попало, а по определенной закономерности, наш мозг эти картинки видел и некоторые закономерности запомнил, его не обманешь. Поэтому картинка с полностью рандомными кустами (да, я видел такие острова, да и уровни в играх вообще) всегда бессознательно вызывает ощущение искусственности.

Заодно добавил камней на утесы, тоже путем проецрования маски склонов.







Как бонус - на некоторых дорогах теперь выросли деревья :-) Но это поправимо.

Результаты первых экспериментов

Первый эксперимент с генерацией леса, кустов и камней проводил один в один по алгоритму, изложенному в статье. Леса получилось много, и, хотя густоту его отрегулировал до вполне играбельных масштабов, общий взгляд на долину серьезно сажает FPS.








Теперь попробую генерить лес по своему алгоритму, не затрагивающему такое количество низины. Тем более, совершенно очевидно, что здесь не мангровые джунгли, и на реальном игровом острове все эти заросли совершенно ни к чему.

вторник, 4 ноября 2014 г.

Эксперименты с World Machine

Вот такую красоту способна генерить ворлдмашина буквально за пару десятков минут. Зеленый цвет ярковат, но это поправимо, а самое главное - впереди. Программа умеет создавать маски объектов, то есть готовые карты расположения лесов, кустов, камней, ягод, грибов и чего угодно. Их можно сгенерить процедурно и перегнать в наш движок при помощи WorldTools, о котором вчера писал.

Невероятно.

С объектами буду пробовать завтра, а пока - вот, что получилось в плане ландшафта и текстур. Повторяю, это все процедурное, вручную здесь только поставлены купола, просто как ориентир.









Алгоритм такой:

1. Генерация карты высот в World Machine, экспорт в формате *.ter
2. Вставка файла *.ter в l3dt, пересохранение в *.asc
3. Импорт *.asc в наш родной террейн билдер.
4. Тексутра земли генерится также в Машине, алгоритм позднее распишу. Он простой, надо только чуть-чуть доработать один из стандартных примеров.

Есть одно неудобство - поскольку наш движок "ест" только большую спутниковую карту целиком, Машина также будет вынуждена генерить целиком в высоком разрешении и весь ландшафт. Это долго. Лучше сделать все основные манипуляции с высотами в низком разрешении, к примеру 512, а высокое - 5120 - ставить уже только непосредственно для выгрузки текстуры. Ах, да, для этого потребуется полная версия программы...

Карта слоев (layer mask) для Terrain Builder сделана в фотошопе на основе спутниковой карты, ничего сложного, простое выделение диапазона цветов, зеленое - на зеленое, каменистое - на коричневое и так далее.

понедельник, 3 ноября 2014 г.

Озеленение

Как и ожидалось, дополнительная зелень освежила остров. Пусть это еще пока не так сильно похоже на Крым и уже совсем не похоже на мыс Херсонес, но какой-то Малден уже узнается.








Процедурная генерация деревьев и кустов в два слоя по маске при помощи World Tools. Для корректной работы с Terrain Builder необходимо выдаваемые ворлдтулзом файлы переводить в новый формат, для этого служит простая утилита objectlist_converter.exe А тут ему, говорят, еще интерфейс прикрутили, но и без него понятно.

Порядок прост.

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


2. Открываем World Tools и щелкаем по иконке Forest Generator.
3. Скармливаем наш png генератору, указываем, какой цвет отвечает за какие объекты, и вероятность их присутствия.

4. На полученный файл натравливаем objectlist_converter.exe, отвечаем утвердительно на два вопроса этой программы.
5. Полученный TBexport.txt импортируется в Terrain Builder.

воскресенье, 2 ноября 2014 г.

Как заблокировать дорогу

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

Проход будет заблокирован битой техникой,  чтобы игрок не лазил за пределы отведенного пространства.