Как создать графику для игры, советы программиста. Adobe Photoshop: Рисуем и анимируем персонажа в технике Pixel Art

Как создать графику для игры, советы программиста. Adobe Photoshop: Рисуем и анимируем персонажа в технике Pixel Art

Данный урок по фотошопу посвящен процессу созданию анимированного пиксельного спрайта, используя для этого лишь несколько простейших инструментов фотошопа. В ходе урока вы познакомитесь со всеми основными приемами создания подобных работ, которые вы впоследствии сможете применять в собственных проектах. Итак, давайте приступим!

1. Подготовка холста и инструментов

Шаг 1
Выберите инструмент Карандаш (Pencil Tool). Он станет основным вашим инструментом на этом уроке. Задайте жесткий круглый наконечник кисти и примените к кисти приведенные ниже установки. Линия, создаваемая карандашом должна получаться очень резкой.

Шаг 2
Задайте Режим (Mode): Карандаш (Pencil) и примените показанные ниже установки:

Шаг 3
Включите отображение пиксельной сетки: Просмотр > Показать > Пиксельная сетка (View > Show > Pixel Grid). Если данный пункт меню не отображается, пройдите в меню Редактирование > Установки > Производительность (Preferences > Performance), и поставьте галочку на пункте Использовать графический процессор (graphic acceleration).

Замечание: сетка будет видимой только на вновь созданном холсте, при приближении 600% и более.

Шаг 4
Теперь пройдите в меню Редактирование > Установки > Основные (Preferences > General), или просто нажмите Control-K. В выпадающем списке “Интерполяция изображения” (Image Interpolation) выберите пункт По соседним пикселям (Nearest Neighbor). Так вы сможете быть уверены, что края вашего объекта будут оставаться достаточно резкими.

Далее пройдите в меню Редактирование > Установки > Единицы измерения и линейки (Preferences > Units & Rulers), где в выпадающем списке Линейки (Rulers) выберите пункт Пиксели (Pixels), чтобы видеть все размеры в пикселях.

2. Создания Спрайта

Шаг 1
Теперь, когда все подготовительные работы завершены, можно приступать к созданию самого Спрайта. Нарисуйте набросок персонажа с легко узнаваемым силуэтом. Постарайтесь не увлекаться его детализацией. Так же не обязательно использовать различные цвета. Набросок должен просто помочь вам наглядно представить, как будет выглядеть ваш персонаж. Для данного урока я выбрал космического солдатика.

Шаг 2
Активируйте Свободную трансформацию (Ctrl+T), и уменьшите высоту вашего персонажа до 60 пикселей.
Размер объекта отображается на панели Инфо (Info). Учтите, что настройки интерполяции должны быть точно такими же, какие мы использовали в шаге 4 предыдущего раздела. В данном случае это не столь критично, так как мы всего лишь преобразуем эскиз в пиксельный рисунок, но в будущем, работая над пикселизованными объектами, данные параметры следует контролировать.

Шаг 3
Приблизьте изображение примерно на 300-400%. Так будет нагляднее. Уменьшите Непрозрачность (Opacity) слоя с эскизом. Кликните по иконке создания нового слоя в нижней части палитры слоев. Создайте эскиз при помощи инструмента Карандаш (Pencil Tool).
Если ваш персонаж симметричен, как у меня, то достаточно нарисовать только его половинку, продублировать ее и отразить горизонтально: Редактирование > Трансформирование > Отразить горизонтально (Edit > Transform > Flip Horizontal).

Правило периодичности: старайтесь разбивать сложные фигуры на несколько простых элементов. Дело в том, что когда пиксели, образующие линию, наносятся по определенной “периодичной” системе, например: 1-2-3, или 1-1-2-2-3-3, такая линия, в отличие от беспорядочной, лучше воспринимается человеческим глазом. Однако данное правило выполнимо не всегда, и может быть нарушено, если этого требует форма создаваемой линии.


(две периодичные и одна беспорядочная линия)

Шаг 4
Когда эскиз будет готов, выберите основной цвет и окрасьте крупные элементы. Сделайте это на отдельном слое, созданном под слоем с эскизом.

Шаг 5
Смягчите внутреннюю часть эскиза, варьируя оттенки.

Продолжайте разнообразить оттенки. Как вы можете заметить, в процессе работы я подкорректировал форму некоторых деталей.

Шаг 6
Создайте новый слой и наложите на нем свет.
Установите этот слой в Режим наложения – Перекрытие (Overlay). Каким-нибудь светлым цветом прокрасьте поверхности, на которые хотите наложить свет. Размойте участки с наложенным светом пройдя в меню Фильтр > Размытие > Размытие (Filter > Blur > Blur).

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

Шаг 7
Нашему персонажу не хватает контрастности. Пройдите в меню Изображение > Коррекция > Уровни (Image > Adjustments > Levels), задайте настройки показанные ниже, чтобы подкорректировать полутона, после чего воспользуйтесь коррекцией цветового баланса: Изображение > Коррекция > Цветовой баланс (Image > Adjustments > Color Balance) создавая более холодные и более теплые варианты.


(законченный персонаж при приближении 400%)

3. Анимация Спрайта

Шаг 1
Создайте копию слоя: Слои > Новый > Скопировать на новый слой (Layer > New > Layer Via Copy), и сместит его на 1 пиксель вверх и на 2 вправо, используя для этого инструмент Перемещение (Move Tool (V)) и соответствующие клавиши со стрелками. Это ключевая фаза при анимации шагающего персонажа.
Уменьшите Непрозрачность (Opacity) оригинального слоя до 50%, чтобы получить возможность видеть предыдущий кадр анимации.

Шаг 2
Теперь изогнем ноги и руки Спрайта, так, как будто он шагает.
- выделите левую руку при помощи инструмента Лассо (Lasso Tool)
- при помощи Свободной трансформации (Ctrl+A), и удерживая клавишу Ctrl, сместите опорные точки контейнера трансформации так, чтобы рука оказалось немного ниже шеи
- выделите голень правой ноги и сместите ее вниз, как на первом кадре
- выделите левую ногу и подтяните ее вверх – она должна быть немного согнутой
- при помощи Карандаша (Pencil) и Ластика (Eraser Tool) перерисуйте локоть правой руки

Шаг 3
Далее нам предстоит нарисовать новое положение рук и ног, точно так же, как я показал в шаге 2. Дело в том, что трансформирование рук и нок изменяет положение пикселей, и линии утрачивают свою прежнюю четкость.

Шаг 4
Создайте копию второго слоя и отразите ее горизонтально. Так у вас получится в, общей сложности, три положения: два – в шагающей фазе, одно – в исходной. Снова увеличьте Непрозрачность (Opacity) всех слоев до 100%.

Шаг 5
Пройдите в меню Окно > Шкала времени (Window > Timeline), и нажмите по кнопке Создать анимацию кадра (Create Frame Animation).

Проделайте следующие шаги:
1. Задайте задержку кадра: 0.15 секунды
2. Кликните по кнопке создания копии выделенных кадров 3 раза (будут созданы 3 копии)
3. В выпадающем списке с параметрами цикла выберите вариант Постоянно (Forever)

Шаг 6
Чтобы правильно выбрать нужный слой для каждого кадра, кликните по пиктограмме в виде глаза рядом с названием слоя на палитре слоев.
Итак:
1 кадр: исходная позиция
2 кадр: второй слой
3 кадр: снова исходная позиция
4 кадр: третий слой

Нажмите на клавишу Пробел, чтобы воспроизвести анимацию.

(законченная анимация при 100% приближении)

Шаг 7
Сохраните результат своей работы. Пройдите в меню Файл > Сохранить для WEB (File > Save For Web), и выберите формат GIF. Увеличьте масштаб изображения до 300%, и нажмите Сохранить (Save).

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

Часть 9: Создание спрайтов для игр-сражений

Итак, мы поработали над созданием маленьких 16х16 спрайтов: Они просты, милы и традициональны для консольных RPG-игр. "Но я хочу сделать экшн-игру: что-нибудь с большими спрайтами! Ну вы знаете, что-то вроде файтинга от Capcom (компания Capcom прославилась своими играми для игровых автоматов - прим. пер.)". Быть может, из-за настоятельного желания рисовать классные, большие спрайты, вы пропустили предыдущие секции туториала и не занимались созданием маленьких изящных спрайтиков. Если я прав, то вернитесь и прочтите пропущенное. Хоть размер спрайтов изменился, все же базовые принципы, описанные ранее, остаются в силе. Окей, предполагаем что вы читали предыдущие главы и теперь по-настоящему готовы к созданию спрайта, который будет "драться".

Для начала, разрешите мне отметить что техника, которую я сейчас опишу, подходит не только для файтинга (файтинг - игровой жанр, обычно на экране симулируется схватка двух бойцов - прим.пер). Я использую данный термин повсеместно, потому что позы и положения для учебных спрайтов представляют собой различные боевые стойки. Но сама по себе техника и концепции могут быть применены в различных типах игр: Игра Earthworm Jim, вероятно была сделана с помощью такого же подхода. Учитесь на всём, на чём только можно и адаптируйте изученное под свои нужды. Но мы отвлеклись, теперь давайте взглянем на пару примеров из игры Street Fighter Alpha 3.

Вот это действительно нарисовано со знанием дела. Каждый персонаж обладает своим собственным неповторимым видом. Например, Зангриф - это большая гора мускулов, а Сакура в сравнении с ним маленькая тонкая худышка. Также отметьте существенную разницу в ширине спрайтов этих двоих. Значит, художники не были ограничены некоторыми максимальными размерами спрайтов. Сакура - это спрайт 76х87, Зангриф - 116х111. Но помните, что обычно стандартным размером считается 100 пикселей в высоту. Ширина обычно будет меньше.

Метод, который использует компания Capcom, неизвестен. У них нет туториалов, либо других разъяснений, касающихся процесса создания спрайтов, что не удивительно, ведь у них и так полно других забот. Всё же я добыл кое-какую информацию, путём анализа их спрайтов и собирая отрывки полезных сведений то тут то там. Давайте рассмотрим картинки Чун-Ли из Street Fighter 3:

(нажми, чтобы увеличить)

Все кадры нарисованы от руки, затем отсканированы и переведены в цифровую форму пиксель за пикселем. Может быть у Capcom есть специальная программа, которая осуществляет рэйтрейсинг (здесь рэйтрейсинг- это процесс перевода нечётких отсканированных изображений, в более аккуратные пиксельные рисунки- прим. пер.). Так как у нас нет такой программы, мы будем всё делать пиксель за пикселем. Это отнимает много времени. Трудно представить что разработчики такой игры как SF3 обрабатывали таким способом каждый кадр. Но опять же, я не имею понятия, как они это делали, так что догадки строятся только на том, что мы видим. Так или иначе, они делали рэйтресинг - каждый спрайт совершенен. Линия, вырисовывающая мускулы, имеет ширину в один пиксель. Отсутствуют "пятна" пикселей (они появляются, когда вы рисуете линии мышью, и передерживаете кнопку мыши), и нет анти-аллиасинга на линиях (обычно это происходит при уменьшении картинки до требуемого размера спрайта). Это всё означает, что им приходилось поправлять всё ручками, чтобы получить такие великолепные спрайты. Может быть надписи на японском на этой большой картине говорят "Это инструкции как именно мы рисовали наши спрайты", но я не знаю японский. :)

Самая важная часть картины, это большая Чун-Ли в верхнем правом углу. Отметьте малое наличии деталей в ней. Когда делаешь спрайт, требуется показать какое-то определенное количество характерных черт. При рисовании маленького 8х8 лица, не будет возможности отобразить, например, ноздри, так зачем тратить на них время при рисовании на бумаге? Эти изогнутые линии на ёё одежде, в спрайте будут представлены однопиксельными жёлтыми линиями. Появится небольшая жёлтая свисающая отделка на одежде: но добавиться она только на стадии пиксельной работы. Поэтому, стоит еще в начале, выбрать упрощённый стиль для использования при рисовании кадров анимации на бумаге.

Мне стоит отвлечься, и объяснить, что на самом деле существуют различные способы создания спрайтов. Выбор метода, зависит только от уровня ваших навыков, мастерства и размера создаваемых спрайтов. Если вы делаете спрайты для RPG размером 16х16, нет резона сперва рисовать их на бумаге, сканировать и т.д. Работайте сразу в пикселях. При отсутствии навыка рисования на бумаге, разумнее сразу перейти к рисованию пикселями. Два других метода, применимых при отсутствии сканера или навыка рисования от руки:

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

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

В этом туториале, я буду использовать Photoshop 4.0, но постараюсь использовать его простейшие возможности. Разговаривая об анти-алиасинге и ему подобных вещах, я подразумеваю что они реализованы и в других программах для рисования. И думаю, вы умеете пользоваться одной из них. Всё же, надо отметить, что Photoshop в целом не годится для создания спрайтов. Причина в том, что Photoshop особым образом изменяет и организует палитру, что не годится для создания игр, с заданной палитрой. Это потому, что подобного типа приложения созданы для обработки фотографий и иллюстраций. Манипуляции с палитрой в этих случаях не играют какой-либо важной роли, в отличии от случая со спрайтами. Если вы делаете игру, не использующую палитру (а это большинство PC игр, в отличии от консольных собратьев), и вам незачем заботиться о количестве используемых цветов, тогда Photoshop может вам подойти. Я же люблю его использовать для практики рисования спрайтов, т.к. не приходится заморачиваться по поводу подбора и выбора цветов, что имело бы место в редакторе, использующем палитру. Ну что, давайте сделаем спрайт. Для начала, я использую картинку нарисованную от руки, т.е. пойду путём компании Capcom:

Я нарисовал персонаж от руки (на четвертинке обычной бумаги А4), раскрасил её, затем отсканировал (настройки - 300dpi, черно-белый режим):перед тем как уменьшить размер, следует изменить режим изображения на RGB или Grayscale, чтобы работал анти-аллиасинг). У меня получилось довольно большая картинка, и здесь я показываю уменьшенную версию. Есть маленькие недочёты, вроде странно изогнутой передней ноги и т.д:их надо будет поправить при работе с пикселями, это будет не трудно. Заметьте, что я сделал удвоенный контур для обводов куртки и майки. Это вышло случайно, стоп: подождите, я собирался показать к каким проблемам это привёдёт. Окей, мы не можем работать с такой большой картинкой, поэтому давайте уменьшим размер до100 пикселей. Она нарисована на белом фоне, в целом размер будет чуть меньше ста пикселей, так как я оставил вокруг фигуры немного пустого места, на тот случай, если я захочу удлинить её волосы. Ах да, при уменьшении я использовал билинеарный фильтр. Помимо него в Photoshop-е есть еще два фильтра, каждый из них действует по-разному:

(нажми, чтобы увеличить)

Фильтр "Ближайший сосед" ("Nearest Neighbor") полностью отключает anti-aliasing. Это особенно полезно, если нужно увеличить уже завершённый спрайт раза так в четыре, и показать его разбирающимся людям.

Фильтры "Билинейный" и "Бикубический" делают почти одно и тоже: бикубический похоже даёт больше анти-аллисинга. Наша картинка относительно мала, так что в этом случае большой разницы заметно не будет, но если уменьшать картинку высотой 800 пикселей, эффект будет значительный. Проблема бикубического фильтра - слишком много анти-аллиасинга. Сравните её правую голень на бикубической картинке и на билинейной. На первой она более размыта. То же самое произошло с рукой, и лицом. Это может мешать при рейтресинге, поэтому я обычно использую билинейный фильтр, чтобы получить меньше анти-аллисианга. Итак, мы получили наш спрайт (95 пикселей в высоту):

Приятная сторона Photoshop (и главная причина его использование в данной технике) это его возможность работать со слоями. Они необходимы при рэйтресинге, можно проводить линии, не трогая оригинальную отсканенную картинку. Если ваша программа, не поддерживает слои, можно сказать, что вы немного встряли. Можно сделать рэйтресинг в Photoshop, а потом перенести результат в ваше родное приложение.

Взгляните, на низ её майку, на уменьшенной версии картинки. На рисованной от руки версии на этом месте были двойные контуры, ими я обозначил место для белого цвета, который я собирался добавить. На уменьшенной версии, там просто смазанное пятно. То же самое с рукой. Именно поэтому детали на одежде Чун-Ли были обозначенными тонкими линиями, остальное разработчики добавляли на стадии пиксельной работы.

Вот быстрый способ настроить Photoshop, что осуществить простой рэйтрейсинг. Исходная картинка будет фоном (убедитесь что вы в режиме RGB), поэтому создайте новый слой. Заполните его определенным цветом (например, синим). Установите для этого слоя режим "screen", и вы увидите спрайт, только черные линии станут синими. Затем совместите слои. Это нужно затем, чтобы вновь нарисованные линии были поверх слоя исходной картинки. Теперь создайте еще один слой и залейте его белым. Для него установите режим "multiply". Собственно, спрайт будет рисовать как раз в этом слое. Можно было бы просто сделать слой прозрачным, но тогда пришлось бы постоянно переключаться на инстумент "резинка" чтобы что-нибудь стереть, что конечно же неудобно. В нашем случае, фон будет белым, хоть вы то и его не видите. Можно будет легко переключаться с белого на чёрный цвет (пр учётё, что изначальная установка не менялась), нажимая кнопку X Если вы захотите очистить картинку, сделанную из синих линий, поменяйте режим последнего слоя на "normal" и белый фон, закроет исходную картинку.

Использование заднего фона при прорисовке, заметно уменьшает время работы. Все же помните, что фон нужен только для того, чтобы направлять вашу руку. Обычно лицо, получается смазанным, состоящим из разбросанных повсюду пикселей, так что придётся воссоздать его пикселями. Можно исправить и больший кусок оригинала (я например исправлю ногу), если что-то плохо смотрится в пикселях. Старайтесь избегать больших пиксельных "пятен": как у неё на руке например. Эти пятна заметны в углах, ну и еще кое-где. Постарайтесь от них избавиться. Группа из четырёх черных пикселей может сильно портить визуальное восприятие спрайта. Чтобы от них избавиться, можно чуть подправить позу персонажа:например если на картинке рука и нога накладываются на друг друга, и в результате наложения появляются пятна черных пикселей, следует сдвинуть либо ногу либо руку. От этих пятен, "блобов", можно избавиться в большинстве случаев. Продолжаем:

Я закончил рэйтрейсинг линий чёрным цветом. Осталось добавить некоторые детали, и проработать лицо, особенно глаза, но это лучше делать уже при работе цветом. Давайте начнём раскрашивать спрайт, заполняя цветом его основные области, и не добавляя на данном этапе тени:

Итак, я добавил цвета: я предпочитаю работать не на белом фоне, лучше для него взять какой-нибудь мягкий цвет. Белый фон, делает цвета темнее (особенно её майку). Это фокус, который играют с нами наши глаза. Ладно, давайте добавим теней.

Я работал, делая инструментарий и движки для художников, создающих игры и визуальные эффекты более десяти лет, и я всегда недоумевал, что люди делают различия между «программным артом» и «настоящим игровым артом». Я также заметил, что люди, которые дают вам свободно пропустить плохую графику, это в основном другие программисты. Не зависимо от того, как забавна ваша игра или как удивительна технически демоверсия, ‘непрограммисты’, которым вы показываете такой нарисованный персонаж, начинают думать: «Это у него реактивный ранец или может что-то другое?». Зачастую, вы можете найти способ создать хорошую графику без необходимости рисовать ее с чистого листа. Но иногда вам нужно создать графику «на лету». Ограничения в бюджете или правила в игровом соревновании, или просто сжатые сроки для прототипа, могут потребовать от вас взять линейку и кисть в руки.

Я не умею рисовать, правда… Хочу сказать, посмотрите на это:

Если это — то, на что похожа ваша графика, тогда эта статья для вас. Я думаю, что поделился бы рядом подсказок, как сделать графику лучше. Эти подсказки будут полезны всем, вне зависимости от способностей и опыта в рисовании.

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

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

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

Некоторое из описанного также адресовано участникам соревнования LudumDare и участникам других подобных соревнований, где цель — создать игру «на лету» за 48 часов. Мои игры имеют склонность достигать хорошего результата в графической категории (увы, убийца геймплея продолжает ускользать от меня), учитывая даже то, что я не считаю себя особенно хорошим игровым художником. Множество этих примеров исходят из моих LD записей, а большая часть этого опыта — это вещи, которые я изучил, участвуя в этих соревнованиях и будучи вынужденным создавать арт в предельные сжатые сроки. Более того, они должны быть бесценны для любого, кто пытается создать качественную графику (или что-то приближенное к ней) при коротком расписании времени или ограниченном бюджете.

Наиболее частая ошибка, которую я вижу и которую легче всего избежать. Палитра, использующаяся по умолчанию для большинства программ компьютерного рисования, возвращает во времена DOS’а (можете ли вы обнаружить связь между цветами в этой палитре и четырехбайтовыми двоичными значениями от 00 до 15? Конечно — да. Если бы вы не смогли это увидеть, вы бы были настоящим художником.).

Я не подразумеваю под палитрой палитру из 16-ти или 256-ти цветов времен VGA. Просто имею в виду скоординированную систему для вашей игры. Если вы начнете с хорошо выбранной палитры, то ваши «каракули» будут казаться эстетически приятными и даже предварительно имеющими «графический дизайн».

Но где мне найти палитру? Я даже не могу подобрать цвета, когда одеваюсь утром!

Хорошо, немного теории цвета проходит длинным путем и если вы потратите пятнадцать минут, чтобы отыскать в интернете, что такое «теория цвета», то вы окажетесь перед определением, что такое игра. Но если у вас нет на это времени, вот несколько советов, которые работают удивительным образом:

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

В этом примере используется «монохроматическая» палитра, где все цвета различного оттенка очень схожего тона, другие цветовые схемы более разнообразны, но важно то, что цвета смотрятся вместе хорошо.

Ресурсы:

  1. MultiColr от idee labs
    Этот потрясающий сайт хорош тем, что благодаря ему можно сделать палитру и получить связку фотографий на ее основе, просто выбрав несколько желаемых цветов и изображение, из которого затем можно использовать цвета.

Я не умею рисовать!..

Возможно, Вы просто слишком крутой человек, чтобы уметь рисовать. Возможно это все преднамеренно. Так и есть. Вместо того, чтобы делать хороший арт, выберите тему, которая требует плохой арт. Это сработало для «SketchFighter» и «Crayon Physics» , нарисованных на бумаге.

Используйте то, что вам доступно. Получили какую-нибудь ерунду у себя на столе? Вы, возможно, сделали одну из самых популярных игр всех времен «Desktop Tower Defense» .

Люди начинают понимать смысл этого трюка, но у него есть немного лет для существования. Будьте криативными… возможно ваши персонажи — печенья, и вы буквально можете испечь их. Или какой-нибудь зомби-бекон атакует вашу кухню. Или даже волосатая грудь, которой нужно, чтобы ее побрили .

Подсказка Третья: простые формы и силуэты

Круг, Квадрат, Треугольник, Ромб, Трапеция, Параллелограм, и т.д. Вы знаете как точно высчитать их площадь, но вы знаете, что нарисовать их получается плохо? Сделайте наброски нескольких форм от руки, затем добавьте глаза (для персонажа) или колеса (для техники) или что-нибудь еще. Они, возможно, получатся смешными и нелепыми, и совсем неточные.

В зависимости от того, как много кофе вы уже выпили, они могут быть совершенно разной формы. Все в порядке! Это хорошо, фактически, поскольку изъяны и разнообразия создают «индивидуальность» и делают их живыми. Не используйте инструменты для создания форм в своей программе для рисования, это уничтожитель «спрайтовых душ». Делая их очертания отчётливыми, вы облегчаете игроку способность визуально различать их.

Одно замечание: не пытайтесь разбираться с этим во время соревнования по написанию игры. Протестируйте сначала все перед его проведением, чтобы точно знать как что делать. Вы потратите много времени, но во время соревнования это может занять всего 15-20 минут и будет иметь большое значение.

И еще, не спешите делать «запекание» пока не закончите с текстурами для моделей. Вы не сможете убрать «запекание» или сделать его дважды.

Подсказка одиннадцатая: приобретите планшет

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

Многие люди, которых я знаю, впервые купившие планшет, не спешили его использовать. Вот некоторые советы, которые помогут максимально эффективно использовать планшет.

  • В панели управления планшета увеличьте показатель чувствительности пера на более твёрдый. Это обеспечит наилучший контроль при рисовании.
  • Рисование с использованием чистого листа бумаги полностью изменить ощущение. Различные типы бумаги: офисная, страницы журналов, плотная бумага и тд. — помогут полностью ощутить рисование на планшете. Попробуйте.
  • Практикуйтесь. Знаю, что до этого я говорил, что ни один из моих советов не требует практики — я лгал. Попробуйте эти упражнения:
    • Сделайте в фотошопе десять квадратов в ряд и заполните их черным цветом в радиусе прозрачности от нуля до ста. Под ними сделайте десять пустых квадратов. Попробуйте оттенить нижние квадраты, чтобы выровнять основные квадраты. Попробуйте с другими кистями и попрактикуйтесь с чувствительностью нажатия пера.
    • Попробуйте написать что-нибудь, алфавит или просто текст. Начните с больших размеров букв, а потом продолжайте их уменьшать. Это позволит вашей руке привыкнуть к плашнету, также как и глазам к экрану во время рисования.

В сегодняшнее время интерфейсов на основе сенсорных дисплеев, иметь планшет становится выгодно, чтобы понять как работают игры, основанные на этой технологии. Хотя такой подход ничем не отличается в сравнении технологии использования мыши.

Вступительное слово:

Здравствуйте уважаемые пользователи портала сайт! В этой статье я расскажу Вам, как нарисовать свой спрайт и сделать для него анимацию в XNA GameStudio , а так же познакомлю Вас с перемещениями спрайтов в двухмерном пространстве. Весь приведенный ниже код проверен, и отлично функционирует в версии 3.1 . Но, так же он должен работать и в других версиях (3.0 и 4.0 ; на счет 2.0 не уверен). Перед знакомством с этим уроком рекомендую прочитать , так как этот урок является ее продолжением, а это значит, что Вам понадобятся те знания, которые Вы получили из первой статьи.

Так же перед прочтением данного урока Вы должны обладать базовыми знаниями языка программирования C# , и иметь программу Microsoft Visual C# Express необходимой Вам версии (для XNA 3.1 - Microsoft Visual C# Express 2008 , а для XNA 4. 0 - Microsoft Visual C# Express 2010 ) с установленной библиотекой XNA GameStudio .

Итак, если Вы имеете все вышеприведенное, тогда приступим!

Часть 1. Рисование спрайта.

Немного теории:

Для начала давайте разберемся, что же такое спрайт. Спрайт – это некий объект (изображение) в 2D игре. Ваш персонаж, противник, обычное дерево или платформа – все это является спрайтами. Даже фон, который мы рисовали в предыдущей статье, будет являться своеобразным спрайтом.

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

Но, есть еще один важный момент, который я хотел бы рассмотреть именно в этом разделе статьи. Для каждого спрайта мы будем задавать позицию на экране монитора. Чтобы это сделать, есть два способа (хотя, может, есть и больше, но чаще всего применяются только два). Можно просто указать позицию левого верхнего угла спрайта, а можно нарисовать прямоугольник, который охватит полностью весь спрайт, и задать его координаты. Т.е. получится так, что куда бы прямоугольник ни переместился, спрайт последует за ним.
У каждого из способов есть свои плюсы и минусы. Указывать позицию угла спрайта проще, а указывать прямоугольник более практично. В статье мы поговорим о двух этих способах задания координат. Для начала разберемся с более простым (задание координат угла спрайта) способом, а затем перейдем к способу посложнее (создание прямоугольника).

Итак, приступим!

Создание класса для рисования спрайта:

Для начала давайте создадим новый проект (как это сделать, подробно описывалось в моей предыдущей статье) и назовем его DrawSprite .

Теперь нажмите правой кнопкой на название проекта (в обозревателе решений) и выберите команду: Добавить -> Создать элемент -> Класс :

Давайте назовем его Sprites :

После создания наш класс имеет такой вид:

200?"200px":""+(this.scrollHeight+5)+"px");">using System;
using System.Linq;
using System.Text;

Namespace DrawSprite
{
class Sprites
{
}
}

Как Вы понимаете, это самый стандартный класс для проекта на языке программирования C# , т.е. пространств имен XNA здесь нет. Так как я их наизусть не помню (да и, наверное, ни один программист их все не запоминает), мы будем добавлять их «по ходу дела». Например, создали мы переменную для текстуры (Texture2D , если кто не помнит), а компилятор сообщает, что не хватает одного пространства имен (так же он пишет его название). Вот тогда-то мы его и добавим.

Итак, теперь давайте вспомним, как же мы добавляли наш фон в игру.

Мы создали переменные для текстур, загрузили сами текстуры в методе LoadContent() и нарисовали их в методе Draw() . Т.е., чтобы создать отдельный класс и в нем нарисовать спрайт (точнее, в нем обработать спрайт, а нарисуем мы его в Game1 ), нам нужно создать в нем (в нашем новом классе) переменную, создать метод для загрузки текстур (по типу метода LoadContent() ) и создать метод для рисования текстур (по типу метода Draw() ).

Теперь можно приступать к редактированию нашего нового класса. Как Вы знаете, весь код класса пишется в блоке (между фигурных скобок) класса. Поэтому сразу после:

200?"200px":""+(this.scrollHeight+5)+"px");">class Sprites
{

Запишем:

200?"200px":""+(this.scrollHeight+5)+"px");">Texture2D

Как Вы видите, если поставить курсор на «Texture2D », то последний симфол подчеркивается:

В нашем случае это означает, что не хватает простанства имен. Нажмем сочетание клавишь «Alt+Shift+F10 » и выберем самое первое. Оно добавиться:

Если все сделали правильно, то вверху экрана появится надпись:

200?"200px":""+(this.scrollHeight+5)+"px");">

А «Texture2D » изменит свой цвет.

Итак, продолжим. Замените «Texture2D » на:

200?"200px":""+(this.scrollHeight+5)+"px");">

Теперь давайте создадим конструктор. Сейчас он нам не понадобится, оставим его пустым:

200?"200px":""+(this.scrollHeight+5)+"px");">public Sprites()
{

Переменная создана, конструктор готов. Теперь перейдем к загрузке изображения. Давайте создадим метод LoadContent() сразу после конструктора. В его параметрах нужно записать два объекта. Один объект будет класса ContentManager (кстати, здесь тоже не хватает пространства имен, добавим его), а второй класса String . Первый позволит нам вызвать метод Load , для загрузки изображения, а второй позволит прописать путь к этому изображению. И так, вот как выглядит метод LoadContent() :

200?"200px":""+(this.scrollHeight+5)+"px");">
{
spriteTexture = Content.Load(texture);
}

Как Вы видите, спрайт загружается так же, как и фон. Только, теперь в классе Game1 Вам нужно будет вписать лишь слово Content и путь к текстуре. Остальное уже написано.

Так, теперь перейдем к следующему (и последнему) методу – Draw() . Единственный параметр, который ему нужно передать, это spriteBatch . Теперь остается только нарисовать спрайт известным нам способом (точно так же, как мы рисовали фон). Единственное, здесь не нужно вызывать методы spriteBatch.Begin() и spriteBatch.End() , потому, что чтобы не вызывать эти методы для каждого спрайта отдельно, мы их вызовем один раз (в классе Game1 ). И так, вот как выглядит наш метод Draw() :

200?"200px":""+(this.scrollHeight+5)+"px");">
{
spriteBatch.Draw(spriteTexture, Color.White);
}

Как Вы заметили, второй аргумент (после spriteTexture ) мы не записали. Это сделано потому что, координаты мы еще не задали.
И так, теперь переходим к той проблеме, которую я описывал вначале. Сейчас мы будем использовать простой способ, и зададим координаты левого верхнего угла спрайта. Для этого сразу после строки

200?"200px":""+(this.scrollHeight+5)+"px");">public Texture2D spriteTexture;

(в самом начале класса)

Запишем «Vector2 » и добавим необходимое пространство имен. Так же напишем название позиции:

200?"200px":""+(this.scrollHeight+5)+"px");">

И теперь в методе Draw() запишем второй аргумент.

Вот так теперь выглядит метод Draw() :

200?"200px":""+(this.scrollHeight+5)+"px");">public void Draw(SpriteBatch spriteBatch)
{
}

А вот так выглядит весь наш класс:

200?"200px":""+(this.scrollHeight+5)+"px");">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework;

Namespace DrawSprite
{
class Sprites
{
public Texture2D spriteTexture;
public Vector2 spritePosition;

Public Sprites()
{

Public void LoadContent(ContentManager Content, String texture)
{
spriteTexture = Content.Load(texture);
}

Public void Draw(SpriteBatch spriteBatch)
{
spriteBatch.Draw(spriteTexture, spritePosition, Color.White);
}
}
}

Редактирование класса Game1:

Итак, теперь давайте отредактируем класс Game1 в соответствии с классом Sprites .

Для начала давайте создадим объект класса Sprites . Назовем его hero .

200?"200px":""+(this.scrollHeight+5)+"px");">Sprites hero;

Теперь в конструкторе Game1 инициализируем объект:

200?"200px":""+(this.scrollHeight+5)+"px");">hero = new Sprites();

После этого в методе LoadContent() загрузим изображение. Предварительно в папке Content создайте папку Textures и добавьте в нее изображение Вашего героя (все это описывается в моей первой статье) (я назвал его idle ). И так, в методе LoadContent() напишем:

200?"200px":""+(this.scrollHeight+5)+"px");">hero.LoadContent(Content, "Textures//idle");

Тем самым мы вызвали метод «LoadContent » из класса Sprites и приписывам в него аргументы.

Ну что, мы на «финишной прямой». Осталось перейти в метод Draw() и вызвать там spriteBatch.Begin() , hero.Draw и spriteBatch.End() . Как Вы поняли, hero.Draw мы будем вызывать из класса Sprites , т.е. в него нужно прописать только один аргумент – spriteBatch (остальное прописано в классе Sprites ). Вот так выглядит метод Draw() класса Game1 :

Теперь давайте запустим игру (F5 ), и посмотрим, что у нас вышло. У меня получилось такое изображение:

Все работает отлично, но нужно данный код доработать. Так как мы не указали координаты явно, компилятор поставил стандартные координаты для левого верхнего угла спрайта. И эти стандартные координаты равны нулю. Вы спросите, почему же спрайт нарисован сверху? Все очень просто. Ведь, в компьютерной графике координаты перевернуты. И если в математике координатная плоскость выглядит так:

То на экране монитора, как я уже говорил, координаты перевернуты, т.е. система координат берет свое начало в левом верхнем углу:

Это значит, что координаты (0, 0 ) (по X и Y ) будут находиться в левом верхнем углу.

Теперь давайте изменим наш код, и запишем свои координаты. Каждое деление координатной шкалы равно одному пикселю. Т.е., если у Вас размер экрана 600x600 пикселей, то точка 300x300 будет серединой Вашего экрана.

Итак, давайте нарисуем наш спрайт в центре экрана. Для начала давайте изменим размеры игрового окна (это подробно описанно в моей первой статье). Для этого в конструктор класса Game1 впишем:

200?"200px":""+(this.scrollHeight+5)+"px");">graphics.PreferredBackBufferHeight = 600; //Ширина экрана
graphics.PreferredBackBufferWidth = 600; //Высота экрана

Все, теперь мы можем задавать координаты. В методе Initialize() введите:

200?"200px":""+(this.scrollHeight+5)+"px");">hero.spritePosition = new Vector2(300, 300);

Тем самым мы инициализировали объект spritePosition и присвоили его координатам значения 300 по осям X и Y .

Теперь давайте запустим игру. У меня получилось так:

Как Вы видите, спрайт нарисован не совсем в центре экрана, но можете быть уверены, что его левый верхний угол (здесь он прозрачен) нарисован ровно в центре. Таким образом можно поэксперементировать и создать героя ровно в центре игрового окна. И так, на этом я завершу эту часть статьи. В следующей части мы с Вами разберемся, как создать анимацию своему спрайту.

Pixel Art (Пиксельная графика) даже в наши дни очень популярна для игр и тому есть несколько причин!

Итак, чем же подкупает Pixel Art:

  1. Восприятие. Pixel Art выглядит потрясающе! Можно многое рассказывать о каждом отдельном пикселе в спрайте.
  2. Ностальгия. Pixel Art возвращает большое ностальгическое чувство для геймеров, которые выросли, играя Nintendo, Super Nintendo, или Genesis (как я!)
  3. Простота обучения. Pixel Art - одно из самых простых для изучения видов цифрового искусства, особенно если вы скорее программист, чем художник;]

Итак, вы хотите попробовать свои силы в Pixel Art? Тогда следуйте вместе со мной и я покажу вам, как сделать простого, но эффектного игрового персонажа, которого вы сможете использовать в вашей собственной игре! Кроме того, в качестве бонуса, мы рассмотрим как интегрировать его в iPhone игры!

Для успешного обучения вам понадобится Adobe Photoshop. Если же у вас нет его, вы можете скачать бесплатную пробную на сайте Adobe или на торренте.

Что такое Pixel Art?

Прежде чем начать, давайте внесем ясность что же такое Pixel Art, ведь не так очевидно, как вы могли бы подумать. Самый простой способ определить что является Pixel Art, - это указать что им не является, а именно: все, где пиксели создаются автоматически. Вот несколько примеров:

Градиент : выбор двух цветов и расчета цвета пикселей, находящихся между ними. Выглядит круто, это но не Pixel Art!

Инструмент Размытие : определение пикселей и тиражирование/редактирование их, чтобы сделать новую версию предыдущего изображения. Снова не пиксельная график.

Инструмент Сглаживание (в основном, генерирующих новые пиксели в различных цветах, чтобы что-то сделать "гладким"). Вы должны избегать их!

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

Другие инструменты, такие как (линия) или paint bucket tool (ведро с краской) также автоматически генерирует пиксели, но, поскольку вы можете настроить их на не сглаживание крев заполняемых пикселей, считается что эти инструменты дружественны к Pixel Art.

Таким образом, мы выяснили, что Pixel Art требует большого внимания при размещении каждого пикселя в спрайт, чаще всего вручную и с ограниченной палитрой цветов. Давайте теперь примемся за работу!

Начало работы

Прежде чем начать делать свой первый Pixel Art ассет, вы должны знать, что Pixel Art нельзя масштабировать. Если вы попытаетесь его уменьшить, все будет выглядеть смазанно. Если вы попытаетесь его увеличить, все будет выглядеть приемлимо до тех пор, пока вы используете масштабирование кратное двум (но, конечно, четкости не будет).

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

К примеру, если Вы хотите, чтобы игра выглядела увеличенной вдвое на экране iPhone 3GS (“Да, я действительно хочу придать пиксельного ретро-вида своей игре!”), разрешение экрана которого – 480х320 пикселей, то работать надо с разрешением, вдвое меньшим, в данном случае это будет 240х160 пикселей.

Откройте новый документ Photoshop (File → New… ) и установите такой размер, каким будет размер вашего игрового экрана, после чего выберите размер для вашего персонажа.

Каждая ячейка 32x32 пикселя!

Я выбрал размер 32×32 пикселя не только потому, что он отлично подходит для выбранного размера экрана, а еще и потому, что 32×32 пикселей также кратны 2, а это удобно для движков игрушек, (размеры тайлов часто кратны 2, текстуры выравниваются кратно 2 и т.д.

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

Рисуем Pixel Art персонажа

Pixel Art, как известно, - это четкая и легко читаемая графика: вы можете определить черты лица, глаза, волосы, части тела с помощью нескольких точек. Тем не менее, размер изображения усложняет задачу: чем меньше ваш персонаж, тем труднее их нарисовать. Чтобы подойти к задаче более практично, выберите то, что будет самой маленькой по размеру из черт характера. Я всегда выбираю глаза, потому что это один из лучших способов вдохнуть жизнь в персонажа.

В Photoshop выберите Pencil tool (Инструмент Карандаш). Если вы не можете найти его, просто нажмите и удерживайте инструмент Brush Tool (Инструмент Кисть) и вы сразу же его увидите (он должен быть вторым в списке). Вам просто нужно будет изменить его размер, сделав его равным 1px (вы можете нажать на панели параметров инструмента и изменить его размер или просто удерживайте клавишу [).

Также вам понадобится Erase tool (Инструмент Ластик), так что нажмите на него (или нажмите клавишу E) и измените его настройки, выбрав из выпадающего списка Mode: (Режим:) Pencil (Карандаш) (т.к. в этом режиме нет сглаживания).

А теперь начнем пикселить! Нарисуйте брови и глаза как показано на изображении ниже:


еу! Я пиксельный!!

Вы могли бы уже начать с Lineart (когда рисунок делается с помощью линий), но более практичный способ заключается в том, чтобы нарисовать силуэт персонажа. Хорошая новость состоит в том, что вам не нужно быть профи на данном этапе, просто попробуйте представить размеры частей тела (голова, тело, руки, ноги) и начальную позу персонажа. Попробуйте сделать нечто подобное серым цветом:


На данном этапе не нужно быть профи
Обратите внимание, что я также оставил некоторое пустое пространство. Вам действительно не нужно заполнять весь холст, оставьте место для будущих кадров. В этом случае будет очень полезно сохранить один тот же размер холста для всех них.

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


Если вы чувствуете, что инструментом Карандаш слишком медленно рисовать, вы всегда можете использовать (Инструмент Линия), просто помните, что расположить пиксели так же точно, как с помощью карандаша, не получится. Вы должны будете настроить так, как показано ниже:

Выберите , нажав и удерживая Rectangle tool (Инструмент Прямоугольник)

Перейдите к панели параметров инструмента, в выпадающем списке Pick Tool Mode (Режим Вычерчивания Контура) выберите Pixel , изменить Weight (Толщина) на 1px (если это уже не сделано) и снимите флажок Anti-alias (Сглаживание). Вот как у вас должно быть:

Обратите внимание, что я не сделал нижний контур для ступней. Это не является обязательным, так как ступни не такая важная частью ног, чтобы их выделять, а так вы съэкономите одну строку пикселей на холсте.

Применяем цвета и тени

Теперь вы готовы, чтобы начать раскрашивать нашего персонажа. Не беспокойтесь о выборе правильных цветов, их очень легко будет изменить позже, просто убедитесь, что у каждого "свой цвет". Воспользуйтесь цветами по умолчанию на вкладке Swatches (Window → Swatches).

Раскрастьте вашего героя как на рисунке ниже (но не стесняйтесь проявить творчество и использовать свои собственные цвета!)


Хороший, контрастный цвет улучшает считываемость вашего ассета!
Обратите внимание, что я до сих пор не сделал контуры для одежды или волос. Всегда помните: спасайте как можно больше пикселей от лишних контуров!

Не стоит тратить время на закрашивание каждого пикселя. Чтобы ускорить работу используйте линии для одинакового цвета, или Paint bucket tool (Инструмент Ведро с краской), чтобы заполнить пробелы. Его, кстати, тоже придется настроить. Выберите Paint bucket tool на панели инструментов (или просто нажмите клавишу G) и изменить Tolerance (Допуск) на 0, а также снимите галочку с Anti-alias (Сглаживание).

Если вам когда-нибудь потребуется использовать Magic Wand tool (Инструмент Волшебная палочка) - очень полезный инструмент, который выбирает все пиксели с одинакового цвета, то настройте его также как и инструмент "Ведро с краской" - нет допуска и сглаживания.

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


Используйте такой же источник света для всего ассета

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


Используйте тот же источник света при затенении

А теперь, как я и обещал небольшой гид по свету и теням:

Придаем пикантность вашей палитре

Много людей используют цвета палитры по умолчанию, но так как многие люди используют эти цвета, мы можем наблюдать их во многих играх.

Photoshop имеет большой выбор цветов в стандартной палитре, но не следует слишком полагаться на него. Лучше всего сделать свои собственные цвета, кликнув на главную палитру в нижней части панели инструментов.

Затем, в окне Color Picker, просматривайте правую боковую панель, чтобы выбрать цвет и главную область, чтобы выбрать нужную яркость (светлее, или темнее) и насыщенность (сочнее, или скучнее).


Как только вы найдете нужный, нажмите кнопку ОК и перенастройте инструмент Ведро с краской . Не волнуйтесь, Вы потом сможете просто снять отметку с квадратика ‘Contiguous’ (Смежные пиксели), и, когда Вы будете рисовать новым цветом, все новые пиксели с таким же фоновым цветом тоже будут закрашены.

Это еще одна причина, почему важно работать с небольшим количеством цветов и всегда использовать один и тот же цвет для одного и того же элемента (рубашки, волосы, шлем, доспехи и т.д.). Но не забывайте использовать различные цвета для других областей, в противном случае наш рисунок будет слишком перекрашенным!

Снимите флажок "Contiguous" (Смежные пиксели) чтобы закрасить выбранные пиксели тем же цветом

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


Наконец, сделайте цветовой тест фона: создайте новый слой под вашим персонажем и залейте его различными цветами. Это необходимо для того, чтобы убедиться, что ваш персонаж будет виден на светлом, темном, теплом и холодном фоне.


Как вы могли уже видеть, я выключил сглаживание во всех инструментах, которые я использовал до сих пор. Не забудьте это сделать и в других инструментах, например, Elliptical Marquee (Овальная область выделения) и Lasso (Лассо).

Этими инструментами можно легко изменять размер выделенных частей, или даже повернуть их. Чтобы сделать это, используйте любой инструмент выделения (или нажмите клавишу M), чтобы выбрать область, щелкните правой кнопкой мыши и выберите Free Transform (Свободное трансформирование), или просто нажмите Ctrl + T . Чтобы изменить размер выделенной области, перетаскивайте один из маркеров расположенных по периметру рамки трансформации. Чтобы изменить размер выделенной области сохраняя пропорции, удерживайте клавишу Shift и перетаскивайте один из угловых маркеров.

Тем не менее, Photoshop автоматически сглаживает все, что отредактировано с помощью функции Free Transform , поэтому перед редактированием перейдите к Edit → Preferences → General (Ctrl + K) и измените Image Interpolation (Интерполяция изображения) на Nearest Neighbour (Ближайший сосед). В двух словах, при Nearest Neighbour новая позиция и размер вычисляются очень грубо, при этом не применяются никакие новые цвета или прозрачности и сохраняются цвета, которые вы выбрали.


Интегрирование Pixel Art рисунка в игры на iPhone

В этом разделе вы узнаете как интегрировать наш пиксельный рисунок в игру на iPhone, используя игровой фреймворк Cocos2d. Почему я рассматриваю только iPhone? Потому что, благодаря циклу статей про Unity, (например: , или Игра в стиле Jetpack Joyride в Unity 2D) вы уже умеете работать с ними в Unity, а из статей про Crafty (Браузерные игры: Змейка) и Impact (Введение в создание браузерных игр на Impact) вы узнали как вставлять их в холст canvas и создавать браузерные игры.

Если вы новичок в Cocos2D, или в разработке приложений под iPhone в целом, советую вам начать с одного из учебников под Cocos2d и iPhone. Если у вас есть Xcode и установлен Cocos2d, читайте дальше!

Создайте новый проект iOS → cocos2d v2.x → cocos2d iOS template , назовите его PixelArt, и выберите в качестве устройства iPhone. Перетащите созданный пиксель арт, например: sprite_final.png в ваш проект, а затем откройте HelloWorldLayer.m и заменить метод инициализации на следующий:

-(id) init { if((self=)) { CCSprite * hero = ; hero.position = ccp(96, 96); hero.flipX = YES; ; } return self; }

Мы позиционируем спрайт в левой части экрана и повернули его так, что он смотрит вправо. Скомпилируйте, запустите, и тогда вы увидите на экране ваш спрайт:


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

Hero.scale = 2.0;

Ничего сложного, не так ли? Скомпилируйте, запустите и... постойте, наш спрайт размыт!

Это потому, что по умолчанию Cocos2d сглаживает рисунок, когда масштабирует его. Нам это не нужно, поэтому добавьте следующую строку:

Эта строка конфигурирует Cocos2d на масштабирование изображений без сглаживания, поэтому наш паренек по-прежнему выглядит "пиксельным" Скомпилируйте, запустите и... да, это работает!


Обратите внимание на преимущества использования Pixel Art графики - мы можем использовать меньшее по размеру изображение, чем то, что отображается на экране, экономя много текстурной памяти. Нам даже не нужно делать отдельные изображения для retina-дисплеев!

А что же дальше?

Я надеюсь, что вам понравился этот урок и вы узнали немного больше о пиксельной графике! Перед расставанием, хочу дать вам несколько советов:

  • Всегда старайтесь избежать использования сглаживания, градиентов, или большого количества цветов для ваших ассетов. Это для вашего же блага, особенно если вы еще новичок.
  • Если вы ДЕЙСТВИТЕЛЬНО хотите подражать ретро-стилю, обратите внимание на изображения в 8-битных, или 16-битных консольных играх.
  • Некоторые стили не используют темные контуры, другие не учитывают влияние света или тени. Все зависит от стиля! В нашем уроке мы не стали рисовать тени, но это не значит, что вы не должны их использовать.

Новичку Pixel Art видится самой легкой в освоении графикой, но на самом деле она не так проста, как кажется. Лучший способ для прокачки ваших навыков - это практика, практика, практика. Я настоятельно рекомендую разместить вашу работу в Pixel Art форумах, чтобы другие художники дать вам совет - это отличный способ улучшить свою технику! Начните с малого, много тренируйтесь, получайте обратную связь и вы можете создать удивительный игру, которая принесет вам много денег и радости!