Генерируем лабиринт в фотошопе, Labyrinth, лабиринт !!!

В этом уроке я расскажу, как без лишних усилий сгенерировать лабиринт средствами фш.

Шаг 1

Создаем пустой документ (Ctrl + N либо File - New). Размеры документа в пикселях соответствуют числу стеночек и проходов вдоль одной стороны вашего будущего лабиринта. Число пикселей на каждой из сторон может быть разным, но оно должно быть нечетным (чтобы по краям лабиринта оказались стены). Для своего маленького лабиринта я выбрал значение 59. В пункте Background Contents выбираем transparent. Жмем Ok.

http://s41.radikal.ru/i093/1208/fc/aebbf3cbac97.jpg

Шаг 2

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

Любые периодические структуры, как в нашем случае, проще всего создавать при помощи функции заливки узором (pattern). Для этого нужно сначала нарисовать повторяющийся в этой структуре элемент, сделать из него образец для заливки, а потом заполнить им всё нужное пространство.

Увеличим картинку так, чтобы были видны отдельные пиксели. С помощью инструмента карандаш  http://s006.radikal.ru/i215/1208/47/6f7716fe9260.gif (он находится на том же месте, что и кисть) нарисуем одну черную точку и одну белую, прямо под ней. После выделим эти два пикселя, кликнув по иконке слоя на вкладке Layers, с зажатым Ctrl'ом.

http://s12.radikal.ru/i185/1208/59/ff30d7e667c6.jpg
(серый фон подставлен для лучшей видимости)

Шаг 3

Теперь идем в Edit - Define Pattern и жмем OK. Образец готов.
Снимаем выделение (Ctrl + D). И заливаем весь слой новоиспеченным узором: Shift + F5 (либо Edit - Fill), в Use выбираем "Pattern" и в "Custom Pattern" выбираем последний вариант (узор из двух наших пикселей). Все настройки приведены на рисунке:

http://s004.radikal.ru/i208/1208/14/d3306c789342.jpg

Жмем ОК и получаем нужный слой с горизонтальными полосками.
Для создания второго, просто дублируем этот (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. После этого схема с расположением слоёв должна выглядеть так:

http://s49.radikal.ru/i126/1208/c2/199c58dcbebc.jpg

Шаг 5

Выберем основным цветом черный и дополнительным белый (это делается кнопкой D) КАРТИНКА. И Применим к маске эффект Difference Clouds (Filter - Render - Difference Clouds):

http://s019.radikal.ru/i615/1208/61/f78803f52476.jpg

Шаг 6

Применяем ещё 10-15 раз этот фильтр (нажимая Ctrl + F), чтобы "узор" на маске стал более детальным.

Шаг 7

Применяем филтр Sharpen (Filter - Sharpen - Sharpen).
После этого применяем его ещё несколько раз, нажимая Ctrl + F, пока с рисунка не исчезнут все серые пиксели. В результате должно получиться что-то вроде этого:

http://s019.radikal.ru/i641/1208/c7/20b185525167.jpg

Шаг 8

Объединяем слои (Ctrl + Shift + E) и нарисуем стену по периметру: Edit - Stroke с настройками Width: 1, Color - черный и Location: Inside.

http://s017.radikal.ru/i437/1208/cd/85c890817fdb.jpg

Шаг 9

Теперь нужно подкорректировать мелкие, бросающиеся в глаза деффекты:

http://s005.radikal.ru/i210/1208/fd/8f5d3ac92882.jpg

Для этого выберите карандаш толщиной 1 px http://s006.radikal.ru/i215/1208/47/6f7716fe9260.gif   , белый цвет (нажав D, а потом X) и режим "разница" . http://s017.radikal.ru/i433/1208/88/d44665041e80.jpg

Так не придется переключаться между цветами при переходе от дорисовывания стен к прорисовыванию проёмов и наоборот.

http://s44.radikal.ru/i103/1208/f0/b0a6f2bcf815.jpg

Шаг 10

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

Сначала стоит лучше понять, с чем мы имеем дело. Выберите заливку  http://s018.radikal.ru/i520/1208/44/bbd1773ccfbe.gif и разными цветами залейте различные области белого пространства в лабиринте. Каждым цветом пользуйтесь только один раз. Таким образом областью каждого цвета будет закрашена часть лабиринта, в которой из любой точки можно попасть в любую.

http://s12.radikal.ru/i185/1208/3f/234ee18458b0.jpg

Шаг 11

Как видите, одноцветные области по началу оказываются довольно больших размеров, что говорит о простоте лабиринта, генерируемого по умолчанию. Его нужно немного усложнить. Итак, выбрав карандаш http://s006.radikal.ru/i215/1208/47/6f7716fe9260.gif   и черный цвет (кнопка D), дорисуем внутри больших одноцветных областей перегородки, разбивая таким образом каждую область на несколько более мелких:

http://s017.radikal.ru/i433/1208/49/14060be751ee.jpg

Шаг 12

Теперь наша цветовая заливка уже не отображает сущность лабиринта, поэтому её нужно удалить. Выбираем волшебную палочку  http://i037.radikal.ru/1208/29/b144f4084324.gif , с параметром Tolerance 0 и снятыми галочками в пунктах Anti-alias и Contiguous и тыкаем по любому черному пикселю. Далее жмем правой кнопкой по выделенной области и выбираем Select Inverse (либо Select - Inverse в верхнем меню). Заливаем все коридоры белым Shift + F5 (или Edit - Fill), где в Use выставляем White и жмем Ok. Снимаем выделение (Ctrl + D либо Select - Deselect).

http://s018.radikal.ru/i501/1208/c8/fc9138d42f20.jpg

Шаг 13

Повторим действия шага 10. Теперь, если Вы добавили достаточное число перегородок в шаге 11, рисунок должен получиться более пёстрым:

http://s018.radikal.ru/i513/1208/9c/5fd8baefe43f.jpg

Если же сложность получающегося лабиринта Вас не удовлетворяет, повторите шаги 11-13.

Шаг 14

Далее стоит мысленно продумать порядок, в котором Вы хотите гонять подопытного по цветным областям. Я выбрал такой:

http://i072.radikal.ru/1208/71/e03a694bf972.jpg

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

Шаг 15

Теперь с помощью карандаша http://s006.radikal.ru/i215/1208/47/6f7716fe9260.gif   белым цветом (проще всего его выбрать нажав последовательно X и D) делаем проходы между областями с последовательными номерами (из первой во вторую, из второй в третью и так далее). При этом не стоит забывать про тупиковые области (в том числе отдельные маленькие белые закуточки), а также про вход и выход из лабиринта. Ещё на этом шаге можно немного перекроить имеющиеся области (главное не перестараться и не сделать лабиринт непроходимым). Я, к примеру, превратил правый верхний кусок лабиринта в ещё одну тупиковую область. Тупики рядом с выходом всегда драматичны

http://s019.radikal.ru/i637/1208/b9/41aa95fc1ad8.jpg

Шаг 16

Повторив действия шага 12, чтобы вернуть лабиринт в его естественное черно-белое состояние.
http://s49.radikal.ru/i124/1208/f2/ad30727253e3.jpg

Шаг 17

Нужно увеличить лабиринт до адекватных размеров. Для этого жмем Alt + Ctrl + I (либо Image - Image Size), и вводим, во сколько раз мы хотим увеличить изображение. При этом в процентах стоит указывать число кратное 100, чтобы линии в лабиринте не оказались разной ширины (это число равно будущей толщине линии лабиринта, умноженной на 100). также нужно не забыть выставить в Resample Image метод Nearest Neighbor, чтобы лабиринт не смазался. Настройки, которые применял я (важные обведены рамочками, вместо 1500 Вы вписываете своё значение):

http://s017.radikal.ru/i443/1208/86/58a994955acb.jpg

Шаг 18

Этот шаг не обязателен, но лично я люблю немножко смягчать слижком резкие границы.
Уменьшим изображение, снова нажав Alt + Ctrl + I (либо Image - Image Size), и в поля размера введём 90%, а метод интерполяции на этот раз выберем бикубический:

http://s018.radikal.ru/i527/1208/b2/21328bfc5b40.jpg

Шаг 19

Облагородим рисунок полями вокруг и подпишем вход и выход:

http://s59.radikal.ru/i163/1208/79/1ea8af9baee7.jpg

Лабиринт готов!

Вот пара примеров применения описанной техники:
http://s44.radikal.ru/i105/1208/45/e7a711856f33.jpg
http://s019.radikal.ru/i614/1208/c9/a0de992ee2bb.jpg

Благодарю за внимание.

Автор урока: Lord Taurus (demiart.ru)