Раздел:
Ландшафт
Я взял карту-пример из пака "Западная провинция", в которой импортированы модели из ВоВ локации Гилнеас. Для удобства сократил размер карты до 64х64, этого достаточно, чтобы наглядно показать способ во всей своей красе. Чтобы мне ничего не мешало, я убрал весь лишний импорт и объекты в РО, которые стали не нужны после уменьшения размеров карты, также убрал декорации травы, которая не блокирует проходимость.
Вот первоначальный результат, с которого начнем непосредственно заниматься картой путей или текстурой пути (поправьте, если считаете, что один из вариантов названия будет правильнее).
Карта путей (pathing texture) - это невидимая текстура, расстилающаяся на поверхности рельефа, в которой отмечены проходимые участки рельефа различными цветами. Каждый цвет соответствует определенному типу проходимости: можно/нельзя ходить/летать/строить. В редакторе рельефа включается клавишей [P] (Вид > Пути: суша). Стандартные текстуры путей находятся в папке PathTextures/ в *.mpq архивах игры. Формат текстур путей может быть только *.tga 8-бит, т.к. он не имеет сжатия и потерь качества. Это очень важно, ведь слегка другой оттенок цвета игра не распознает правильно. Каждый пиксель текстуры отвечает за одну игровую клетку на самой мелкой сетке рельефа.
Некоторые расставленные декорации уже имеют свою текстуру пути (стандартная розовая 2х2), ее используют деревья, бочки и прочее, но в этой карте ее используют лишь ёлки и фонари. Оставим это как есть, иначе будет слишком неудобно работать с картой в будущем, постоянно контролируя создаваемые и удаляемые с рельефа декорации. Этот способ рисования текстур позволяет не привязывать каждую отдельную декорацию к карте путей, позволяет расставлять декорации свободно от сетки и, более детализировано прорисовывать карту путей, чем это позволяют стандартные текстуры пути. Также можно отметить преимущество перед стандартными блокираторами пути в том, что их нужно много, чтобы, к примеру, покрыть непроходимый участок скалы. А каждый лишний объект на карте дополнительно нагружает ее. Здесь же можно расставить всего лишь несколько объектов и покрыть ими весь рельеф.
Создаем в фотошопе базовую текстуру пути размером 128х128 пикселей, для удобства ориентации раскрашиваем ее в шахматном порядке так, чтобы клетки соответствовали большой сетке рельефа. Подкрашиваем границу текстуры, чтобы можно было видеть это на карте. Импортируем и привязываем к декорации Doodad. Она будет занимать игровое поле размером 32х32.
Почему не к Destuctable, спросите Вы - есть несколько причин:
  • дудад занимает меньше памяти;
  • текстура пути дудадов лучше воспринимается триггерными функциями проверки пути;
native IsTerrainPathable takes real x, real y, pathingtype t returns boolean
  • можно оптимизировать дудады с помощью Widgetizer без опасения потери данных.
Далее остается лишь заполнить нашу карту новой декорацией в стык друг к другу и начать закрашивать пиксели в фотошопе по самой мелкой сетке рельефа. Там, где мы не планируем ходить - красим розовым, а там, где нужно оставить возможность пройти - красим черным либо синим.
Если Вы обладаете пространственным воображением, то очень быстро приловчитесь ориентироваться в сетке при рисовании путей, ведь часто приходится вращать камеру со всех сторон, когда, в свою очередь, изображение остается в одном положении.
Периодически импортируем измененную в процессе текстуру в карту. Нужно, чтобы изменения визуально вступили в силу, и здесь действует единое для всего импорта правило: карту с новым импортом нужно сохранить до того, как он будет использован и отображен в редакторе. Это значит, что после сохранения нужно вырезать объект с рельефа и снова вставить на место. Если декорация не ставится из-за помехи в картах путей от других декораций, то нужно ставить с зажатой клавишей SHIFT. Клетки, на которые попали нескольких декораций, при слиянии приобретают свойства обеих цветов и окрашиваются в новый, соответствующий этому свойству, цвет.
Старайтесь расставлять декорации таким образом, чтобы заранее учитывать их попадание в сетку и ячейки, иначе бывает так, что граница декорации проходит между клеток и возникает спорный момент, какую клетку зарисовать, а какую оставить.
Физический размер юнитов напрямую взаимодействует с картой путей, поэтому нужно прорисовывать проходы такой ширины, чтобы юниты могли пройти. Там, где пройдет пехотинец, может не пройти герой. Проходы по диагонали должны быть немного шире, чем вертикальные или горизонтальные, иначе там пролезет лишь курица. Также надо учитывать такие фрагменты карты, куда невозможно попасть, приказывая юниту, но можно оказаться от триггерного перемещения, например, от разного рода отталкиваний и телепортаций. Иногда такие места лучше сразу закрасить непроходимым цветом.
По завершению всех процедур не забываем заменить модель нашей декорации моделью блокиратора пути, т.к. он невидимый и его трудно выделить в редакторе.
Я не стал прорабатывать все 4 фрагмента в примере, т.к. по времени на проработку каждого такого фрагмента в среднем уходит 1 час.
Спасибо Clamp за подталкивание к написанию этой статьи.
Спасибо LongbowMan за этот замечательный пак моделей, который меня вдохновил. Я с удовольствием использую его в своем проекте, где и применяю этот способ с картами путей.
Прикрепляю архив с картой и текстурами в форматах *.tga и *.psd. Можно использовать любой редактор, сохраняющий изображения в *.tga, и, желательно, поддерживающий слои.

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
24
8 лет назад
Отредактирован darkowlom
1
Неплохо, очень даже. Самый главный вопрос, так ведь теоретически можно нарисовать карту путей детальней стандартных квадратов и их четвертей? Видимо да, как будет время попробую декорине HD текстуру путей нарисовать
1
15
8 лет назад
1
Будет крайне полезно для карт типа дуэльных, или как делал огр, (где куча-куча декора иморта без карты путей) что бы их в игровые превратить быстренько.
2
20
8 лет назад
2
Имхо стоит добавить по какой цене обходится такой импорт (в плане веса текстурки).
Лень качать архив, да.
0
7
8 лет назад
0
Diaboliko, а вот если бы скачал архив, то увидел бы, что текстурка весит ~50кб, но сжимается до 1кб
случайно на + тыкнул XD
0
21
8 лет назад
0
Создаем в фотошопе базовую текстуру пути размером 128х128 пикселей, для удобства ориентации раскрашиваем ее в шахматном порядке так, чтобы клетки соответствовали большой сетке рельефа. Подкрашиваем границу текстуры, чтобы можно было видеть это на карте. Импортируем и привязываем к декорации Doodad. Она будет занимать игровое поле размером 32х32.
0
20
8 лет назад
Отредактирован Diaboliko
0
но сжимается до 1кб
Формат текстур путей может быть только *.tga 8-бит, т.к. он не имеет сжатия и потерь качества. Это очень важно, ведь слегка другой оттенок цвета игра не распознает правильно. Каждый пиксель текстуры отвечает за одну игровую клетку на самой мелкой сетке рельефа.
Я, быть может, олень в вопросе изображений, ибо с ними дел толком не имел, но, смею предположить, "не имеет сжатия" значит то, что кажется.
GF RaiseD, если кто спросит сколько весит такая текстурка, так и отвечу. Да. =/
0
7
8 лет назад
0
Diaboliko, под сжатием я имел ввиду сжатие самого варкрафта, т.е. после добавления текстуры вес карты увеличится на ~1кб, а не на 50
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.