Генерируем лабиринт в фотошопе, Labyrinth, лабиринт !!!
В этом уроке я расскажу, как без лишних усилий сгенерировать лабиринт средствами фш.
Шаг 1
Создаем пустой документ (Ctrl + N либо File - New). Размеры документа в пикселях соответствуют числу стеночек и проходов вдоль одной стороны вашего будущего лабиринта. Число пикселей на каждой из сторон может быть разным, но оно должно быть нечетным (чтобы по краям лабиринта оказались стены). Для своего маленького лабиринта я выбрал значение 59. В пункте Background Contents выбираем transparent. Жмем Ok.
Шаг 2
Далее нам понадобятся два слоя один с горизонтальными, и один с вертикальными черно-белыми полосками толщиной в 1 пиксель (причем по краям на каждом слое должны быть именно черные полосы). Вы можете сделать их самостоятельно и сразу перейти к шагу 4.
Любые периодические структуры, как в нашем случае, проще всего создавать при помощи функции заливки узором (pattern). Для этого нужно сначала нарисовать повторяющийся в этой структуре элемент, сделать из него образец для заливки, а потом заполнить им всё нужное пространство.
Увеличим картинку так, чтобы были видны отдельные пиксели. С помощью инструмента карандаш (он находится на том же месте, что и кисть) нарисуем одну черную точку и одну белую, прямо под ней. После выделим эти два пикселя, кликнув по иконке слоя на вкладке Layers, с зажатым Ctrl'ом.
(серый фон подставлен для лучшей видимости)
Шаг 3
Теперь идем в Edit - Define Pattern и жмем OK. Образец готов.
Снимаем выделение (Ctrl + D). И заливаем весь слой новоиспеченным узором: Shift + F5 (либо Edit - Fill), в Use выбираем "Pattern" и в "Custom Pattern" выбираем последний вариант (узор из двух наших пикселей). Все настройки приведены на рисунке:
Жмем ОК и получаем нужный слой с горизонтальными полосками.
Для создания второго, просто дублируем этот (Ctrl + J или Layer - Duplicate Layer) и поворачиваем его на 90 градусов (Ctrl + T, щелчок правой кнопкой и Rotate 90° CW). Либо, если ваш лабиринт не квадратный, создайте новый слой (Ctrl + Shift + N или воспользовавшись иконкой Create a new layer в нижней части панели layers) и повторите шаги 2-3, разместив белый пиксель не под, а правее черного.
Если Вы случайно что-то перепутали и на краях одного из слоёв оказались не черные, а белые полосы, то это просто исправить, выбрав его и нажав Ctrl + I.
Шаг 4
Для верхнего слоя создайте маску, щелкнув по значку Add layer mask в нижней части панели layers. После этого схема с расположением слоёв должна выглядеть так:
Шаг 5
Выберем основным цветом черный и дополнительным белый (это делается кнопкой D) КАРТИНКА. И Применим к маске эффект Difference Clouds (Filter - Render - Difference Clouds):
Шаг 6
Применяем ещё 10-15 раз этот фильтр (нажимая Ctrl + F), чтобы "узор" на маске стал более детальным.
Шаг 7
Применяем филтр Sharpen (Filter - Sharpen - Sharpen).
После этого применяем его ещё несколько раз, нажимая Ctrl + F, пока с рисунка не исчезнут все серые пиксели. В результате должно получиться что-то вроде этого:
Шаг 8
Объединяем слои (Ctrl + Shift + E) и нарисуем стену по периметру: Edit - Stroke с настройками Width: 1, Color - черный и Location: Inside.
Шаг 9
Теперь нужно подкорректировать мелкие, бросающиеся в глаза деффекты:
Для этого выберите карандаш толщиной 1 px , белый цвет (нажав D, а потом X) и режим "разница" .
Так не придется переключаться между цветами при переходе от дорисовывания стен к прорисовыванию проёмов и наоборот.
Шаг 10
Если лабиринт Вам нужен лишь как картинка, то можете закончить на этом этапе и перейти к шагу 17. Если же Вы хотите получить рабочую головоломку, придется попотеть ещё немного.
Сначала стоит лучше понять, с чем мы имеем дело. Выберите заливку и разными цветами залейте различные области белого пространства в лабиринте. Каждым цветом пользуйтесь только один раз. Таким образом областью каждого цвета будет закрашена часть лабиринта, в которой из любой точки можно попасть в любую.
Шаг 11
Как видите, одноцветные области по началу оказываются довольно больших размеров, что говорит о простоте лабиринта, генерируемого по умолчанию. Его нужно немного усложнить. Итак, выбрав карандаш и черный цвет (кнопка D), дорисуем внутри больших одноцветных областей перегородки, разбивая таким образом каждую область на несколько более мелких:
Шаг 12
Теперь наша цветовая заливка уже не отображает сущность лабиринта, поэтому её нужно удалить. Выбираем волшебную палочку , с параметром Tolerance 0 и снятыми галочками в пунктах Anti-alias и Contiguous и тыкаем по любому черному пикселю. Далее жмем правой кнопкой по выделенной области и выбираем Select Inverse (либо Select - Inverse в верхнем меню). Заливаем все коридоры белым Shift + F5 (или Edit - Fill), где в Use выставляем White и жмем Ok. Снимаем выделение (Ctrl + D либо Select - Deselect).
Шаг 13
Повторим действия шага 10. Теперь, если Вы добавили достаточное число перегородок в шаге 11, рисунок должен получиться более пёстрым:
Если же сложность получающегося лабиринта Вас не удовлетворяет, повторите шаги 11-13.
Шаг 14
Далее стоит мысленно продумать порядок, в котором Вы хотите гонять подопытного по цветным областям. Я выбрал такой:
Крестиками обозначены тупиковые области, в которые будет вход, но не будет выхода.
Шаг 15
Теперь с помощью карандаша белым цветом (проще всего его выбрать нажав последовательно X и D) делаем проходы между областями с последовательными номерами (из первой во вторую, из второй в третью и так далее). При этом не стоит забывать про тупиковые области (в том числе отдельные маленькие белые закуточки), а также про вход и выход из лабиринта. Ещё на этом шаге можно немного перекроить имеющиеся области (главное не перестараться и не сделать лабиринт непроходимым). Я, к примеру, превратил правый верхний кусок лабиринта в ещё одну тупиковую область. Тупики рядом с выходом всегда драматичны
Шаг 16
Повторив действия шага 12, чтобы вернуть лабиринт в его естественное черно-белое состояние.
Шаг 17
Нужно увеличить лабиринт до адекватных размеров. Для этого жмем Alt + Ctrl + I (либо Image - Image Size), и вводим, во сколько раз мы хотим увеличить изображение. При этом в процентах стоит указывать число кратное 100, чтобы линии в лабиринте не оказались разной ширины (это число равно будущей толщине линии лабиринта, умноженной на 100). также нужно не забыть выставить в Resample Image метод Nearest Neighbor, чтобы лабиринт не смазался. Настройки, которые применял я (важные обведены рамочками, вместо 1500 Вы вписываете своё значение):
Шаг 18
Этот шаг не обязателен, но лично я люблю немножко смягчать слижком резкие границы.
Уменьшим изображение, снова нажав Alt + Ctrl + I (либо Image - Image Size), и в поля размера введём 90%, а метод интерполяции на этот раз выберем бикубический:
Шаг 19
Облагородим рисунок полями вокруг и подпишем вход и выход:
Лабиринт готов!
Вот пара примеров применения описанной техники:
Благодарю за внимание.
Автор урока: Lord Taurus (demiart.ru)