10 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать спрайты для 2d игры

2D спрайты, FPS в играх, как рисовать компьютерную графику?

Всем привет.
В данный момент я решил плотно заняться проектированием различных интерфейсов. Заодно можно затронуть такую тему как спрайты. Они необходимы для 2D игры.
Слишком много писать не буду, как всегда опишу лишь основную суть, в дальнейшем по данному направлению будет более углубленная статья. А пока просто для новичков, и тех кто хочет узнать, что-то новое.

На данной картинке видна 2D сцена состоящая из нескольких спрайтов. Ель, лестница, земля с травкой, сердечки, монетки и т.д. Как правило это все отдельные элементы, в игровом движке ими можно манипулировать и расставлять как угодно. Так же монетки можно сделать крутящимися, для этого рисуются еще несколько спрайтов, различных направлений монетки. Нужно учесть fps в вашей игре, как правило это 30, либо 60 и более. И так зная fps мы рисуем нужное количество кадров этой монетки, как бы рисуя ее крутящуюся, смещая рисунок на определенное расстояния в градусах по кругу (ведь она крутится по кругу). Но если не поняли, то это нормально. Ведь мы затронули тему анимации.
Касаемо fps в играх. Как уже многие знают – это количество кадров в секунду. То есть чем больше кадров, тем больше нагрузка на видеокарту, а соответственно повышается плавность и качество картинки. К примеру представьте вы нарисовали всего 2 спрайта, под два кадра. На первом кадре ваш персонаж смотрит в одну сторону, а на втором в противоположную. Как вы думаете на сколько резкой будет смена картинок, когда вы будете поворачивать вашего персонажа? Правильно она будет мгновенной, и никакой плавности. Когда вы нарисуете еще 28 кадров, и положите их между этими двумя, то этим самым увеличите нагрузку на видеокарту, но зато повысите плавность и качество картинки.
По fps я сделаю более подробную статью в ближайшее время, что бы ее увидеть подпишитесь на мой канал https://clck.ru/GBrnb

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

Мы затронули тему анимации и fps. Теперь взгляните на данную картинку, тут вы видите те же самые спрайты. Фон как правило можно исключить, он лежит на отдельном слое. Далее изображения выбираются по одному, выставляются определенные расширения и экспортируются в png или jpg форматах, в игровой движок для дальнейшей работы с ними. В движке можно так же менять размеры, но только целого изображения, пропорции лучше не нарушать.
Рисовать их достаточно просто, посмотрите еще раз внимательно на эти спрайты. Везде вы видите светлые и темные цвета. То есть для вас самое главное научится понять как манипулировать тенями, создавая при этом некий объем. Хороший пример для новичка.

Читать еще:  Как сделать трафарет из картинки

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

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

Делаем 2D анимации для игры на Unity

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

Игра была разработана на удивление быстро, и сейчас уже доступна в Google Play. Но пост не совсем об этом.

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

Кроме, собственно, Unity, нам понадобится Adobe Photoshop. Для нашей задачи версия программы не так важна, но у меня, например, CS6. В более поздних версиях интерфейс немного другой, но суть не меняется.

Для начала создаём новый документ (File/New…).

Здесь сразу стоит задать размер спрайта. Главное условие – высота и ширина должны равняться степеням двойки (например, 32 или 64). Чем крупнее спрайт, тем больше возможностей для детализации, но при этом сложнее рисовать и анимировать.

Прежде чем анимировать персонажа, нужно изобразить его в пассивном состоянии. Я вот, например, взял и нарисовал инопланетянина с лазерной винтовкой:

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

Когда персонаж нарисован, пора приступать к самому главному: к созданию анимации. Начать стоит с открытия окна временной шкалы (Window/Timeline).

Прямо под кадром можно поменять его длительность. При переносе анимации в Unity данное значение роли играть не будет, но задать его бывает очень полезно для предварительного просмотра анимации в Photoshop. Я обычно ставлю длительность 0.2 секунды для медленных движений (бездействие, ходьба) или 0.1 для быстрых (атаки). Там, где сейчас написано «Once», можно выбрать способ зацикливания анимации. Это также нужно только для предпросмотра.

Читать еще:  Как сделать пресет в лайтруме на айфон

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

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

Итак, копируем кадр нажатием описанной выше кнопки (на которой изображён листок бумаги с загнутым уголком). Затем копируем наш единственный слой, выделив его и нажав Ctrl+J.

Над списком слоёв мы можем заметить галочку с надписью «Propagate Frame 1». Когда она включена, то все изменения, применяемые к первому кадру, автоматически применятся и ко всем последующим.

Сделаем так, чтобы в первом кадре был активен только первый слой, а во втором – только второй. Мы получили последовательность из двух кадров, сменяющих друг друга.

Только никакого движения не происходит, потому что содержимое слоёв одинаковое. Исправим это! Попробуем нарисовать пассивную анимацию (когда персонаж ничего важного не делает, просто стоит и ждёт).

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

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

Создаём третий кадр, скопировав второй, и создаём третий слой, также скопировав второй слой.

К этому моменту вы могли заметить, что вся эта система со слоями и кадрами не особо удобна. Что поделать, искусство требует жертв. Если будете рисовать много анимаций, со временем вы выработаете наиболее удобный для вас порядок действий, позволяющих добавлять к анимации новые кадры куда быстрее. Например, чтобы в выбранном кадре был активен только нужный нам слой, удобно нажать на иконку включения/выключения этого слоя (с изображением глаза), удерживая Alt, вместо того, чтобы вручную выключать все ненужные слои.

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

Читать еще:  Как сделать пышное тесто для пирогов

В каком разрешении рисовать спрайты для мобильной 2D игры?

> GameDev > В каком разрешении рисовать спрайты для мобильной 2D игры?

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

Мы сразу отметём метод, согласно которому, игра рисуется под какой-то один формат, а для всех прочих масштабируется. Этот способ искажает картинку на экране и всё выглядит не так как задумывал художник.

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

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

Разрешения экранов

Соотношения сторон

А вот как выглядит список наиболее популярных разрешений по отношению друг к другу:

Мы будем отрезать лишнее по бокам, оставляя изображение по высоте нетронутым. Поэтому следует определиться с максимальным размером изображения по высоте.

Если нарисовать что-то в размере 2048 x 2048 px, а затем программно уменьшить до размера 512 x 512 px, то изображение останется чётким, в обратную сторону с растровой графикой такое не проделаешь — картинка выйдет смазанной.

Как видно выше, из списка самых популярных разрешений, максимальная высота составляет 1536 px.

Для самых популярных форматов соотношения сторон (98,5%) можно подобрать ширину изображения такой, что бы по высоте оставались всё те же 1536px. Вот что из этого получилось:

С учётом того, что боковые грани будут отрезаться на экранах с соотношением сторон отличным от 16:9, можно разместить важные для геймплея объекты так, что бы они остались видны, т.е. разместив их внутри зоны размером 2048 X 1536 px. Исходя из этого шаблона можно рисовать фон и прочие элементы игрового мира.

Можно пойти ещё дальше и оставить только 3 наиболее популярных соотношения сторон (87,7%), тогда получится следующий шаблон:

В таком варианте, места под размещение важных для игры объектов будет гораздо больше.

Аналогичным образом можно создать шаблон под игру с вертикальным расположением экрана:

Шаблоны в виде .psd файлов можно загрузить здесь.

Поделиться “В каком разрешении рисовать спрайты для мобильной 2D игры?”

Источники:

https://zen.yandex.ru/media/id/5ccf0e8f6f616900b2128d9c/5cf0f07b3be90a27d0ce703b
https://pikabu.ru/story/delaem_2d_animatsii_dlya_igryi_na_unity_4915957
https://progressor-blog.ru/gamedev/v-kakom-razreshenii-risovat-sprajty-dlya-mobilnoj-2d-igry/

голоса
Рейтинг статьи
Ссылка на основную публикацию
Статьи c упоминанием слов:

Для любых предложений по сайту: [email protected]