Guide to Spriting: различия между версиями

Материал из Tau Ceti Station Wiki
Перейти к навигации Перейти к поиску
(WIP. Обновляем гайд на спрайтинг.)
 
(не показано 6 промежуточных версий этого же участника)
Строка 1: Строка 1:
Итак, вы хотите научиться спрайтингу — искусству создания пиксельной графики, которая оживляет персонажей, предметы и целые миры. Отлично! В этом гайде мы разберёмся с основами спрайтинга: от инструментов и работы с Byond, до советов по стилю. Главное - помните: '''Спрайтинг требует времени. Не сдавайтесь.''' Часто практикуясь, вы каждый раз становитесь чуть лучше.{{guidecard
Итак, вы хотите научиться спрайтингу — искусству создания пиксельной графики, которая оживляет персонажей, предметы и целые миры. Отлично!  
|icon = Bobross.png
 
В данной статье мы разберем, какую программу лучше выбрать, расскажем про то, как рисовать и добавлять спрайты в игру, и дадим ссылки на полезные статьи. '''Мы''' '''не научим вас рисовать''', для этого подойдут многочисленные гайды в интернете и посещение художественной школы. Однако, мы рекомендуем прочитать книгу Майкла Аззи "Pixel Logic". [https://drive.google.com/file/d/1iq2EZotpxexYvKMJa9tKxGdHaQLiXziz/view?usp=sharing Вот ссылка.] (Внимание: гайд на английском)
 
Главное, помните: '''Спрайтинг требует времени. Не сдавайтесь.''' Практикуясь, вы каждый раз становитесь чуть лучше.{{guidecard
|icon = Bucket.png
|name = Guide to Spriting
|name = Guide to Spriting
|runame = Спрайтинг для Начинающих
|runame = Спрайтинг для Начинающих
Строка 6: Строка 10:
|cat2=Contributing}}
|cat2=Contributing}}


== Что такое Спрайты? ==  
== Кто такой Спрайтер? ==
[[File:MobSpritesFull.png|right|frame|Игровые спрайты людей. Сохраните, они пригодятся вам.]] Каждый спрайт в SS13 - это изображение в пределах 32 на 32 пикселя. К примеру:[[File:Orebox.png]]
В контексте Space Station 13 спрайтер - это тот, кто создает и улучшает визуал игры. Создание спрайтов - это всего лишь одна из задач спрайтеров. Вот примерный список того, чем вам может предстоять заниматься:
 
* Учиться эффективно использовать программы для рисования.
* Улучшать, исправлять или обновлять существующие в билде спрайты.
* Сотрудничать с кодерами, которым всегда нужны спрайты для новых фич.
* Участвовать в разработке и оставлять ревью.
* Общаться с игроками для получения фидбека.
* Помогать другим спрайтерам советами.
* Самостоятельно добавлять свои спрайты в билд SS13 с помощью GitHub.
* Пробовать создавать пиксель арт.
 
== Что такое Спрайты? ==
'''Спрайт''' — это '''двумерное изображение или анимация''', которое используется движком игры для отображения, анимации и взаимодействия.
 
Важно отметить, что главная цель спрайта - изобразить определенную вещь. Он не обязательно должен быть реалистичным, детальным или красивым (хотя и это тоже неплохо!). Прежде всего, '''должно быть сразу понятно, что представляет собой ваш спрайт в контексте игры.'''
 
В [[Space Station 13]], '''спрайтами''' являются изображения всех объектов: персонажей, предметов, интерьеров, интерфейса. Обычно эти изображения находятся в пределах 32 на 32 пикселя. К примеру:[[File:Orebox.png]]
 
Спрайты обычно хранят в формате .png, без сжатия. Анимации могут быть сохранены, как .gif, или как в качестве раскадровки размером 32x32 пикселя. Но спрайты, используемые в SS13, хранятся в уникальном для BYOND формате '''DMI (Dream Maker Icon)'''. По сути это измененный формат .png, спрайт-лист, но с парой особенностей:


Спрайты обычно хранят в формате .png, без сжатия. Анимации могут быть сохранены, как .gif, или как .png в качестве полосы из 32x32 кадров. Но спрайты, используемые в SS13, хранятся в '''формате .DMI'''. О них речь пойдет чуть позже.
# Создаётся и изменяется через Dream Maker — встроенный редактор BYOND.
# Сохраняется в виде PNG-файла, но с дополнительной метаинформацией, которая описывает:
#* Названия состояний (стейтов).
#* Количество кадров.
#* Направления (например, север, юг, запад, восток).
#* Скорость анимации и пр.
 
Пример использования DMI файла в коде билда:<syntaxhighlight lang="javascript">
icon = 'items.dmi'
icon_state = "laser_gun"
</syntaxhighlight>Это значит, что объект будет использовать иконку из файла items.dmi и брать спрайт с именем "laser_gun".


== Где мне рисовать? Выбор программы ==  
== Где мне рисовать? Выбор программы ==  
В BYOND-овском редакторе Dream Maker есть собственный редактор спрайтов, но он не подойдёт нам по функционалу (например, в нем отсутствует функция слоев), и понадобится, лишь чтобы поправить недочёты и собрать кадры в анимации. Где же вам заниматься спрайтингом? Существует ряд программ:
В BYOND-овском редакторе Dream Maker есть собственный редактор спрайтов, но он не подойдёт нам по функционалу (например, в нем отсутствует функция слоев), и понадобится, лишь чтобы поправить недочёты и собрать кадры в анимации. Что же использовать? Существует ряд программ:


'''Хорошие:'''
'''Хорошие:'''
* [https://www.aseprite.org/ Aseprite] - ОЧЕНЬ хороший редактор, специально изготовленный для пиксель-арта. Платный, хотя является open-source программой, поэтому вы свободно можете скачать и скомпилировать у себя их код с [https://github.com/aseprite/aseprite репозитория на гитхабе].
* [https://www.aseprite.org/ Aseprite] - очень хороший редактор, специально созданный для пиксель-арта. Платный, хотя является open-source программой, поэтому вы свободно можете скачать и скомпилировать у себя их код с [https://github.com/aseprite/aseprite репозитория на гитхабе]. Более дружелюбный новичку интерфейс.
*[https://store.steampowered.com/app/671190/Pro_Motion_NG/ Pro Motion NG] - более дорогой и более профессиональный вариант, чем Aseprite. Менее интуитивный интерфейс, но больше настроек и функций.
* [https://www.gimp.org GIMP] - бесплатный редактор изображений, напоминающий фотошоп. Интерфейс может вызвать у вас трудности.
* [https://www.gimp.org GIMP] - бесплатный редактор изображений, напоминающий фотошоп. Интерфейс может вызвать у вас трудности.
* [https://www.getpaint.net Paint.net] - Другой бесплатный редактор изображений. Довольно прост, поддерживается только на Windows.
'''Прочее:'''
'''Прочее:'''
* [https://www.piskelapp.com/ Piksel] - Бесплатный онлайн редактор.
* [https://www.piskelapp.com/ Piksel] - Бесплатный онлайн редактор.
Строка 23: Строка 55:


== Основной стиль ==
== Основной стиль ==
Если вы рисуете спрайты, которые в последствии будут использоваться в нашем билде на постоянной основе, им нужно соответствовать определенному стилю и уровню качества. Это связано не с тем, что мейнтейнеры билда ворчуны - в противном случае визуальная составляющая игры быстро превратилась бы в венегрет из спрайтов разного стиля и качества. Снизу будут перечислены основные моменты, на которые вам стоит обратить внимание.
Если вы рисуете спрайты, которые в последствии будут использоваться в нашем билде на постоянной основе, им нужно соответствовать определенному стилю. Это означает, что ваши новые спрайты должны гармонично сочетаться с уже существующими в игре. Это связано совсем не с тем, что мейнтейнеры билда ворчуны. В противном случае визуальная составляющая игры быстро превратилась бы в винегрет из спрайтов разного стиля и качества. В этом разделе будет кратко указаны основные моменты, на которые стоит обратить внимание, чтобы следовать нашему стилю.
 
'''Берите в пример''' уже существующие спрайты из нашего билда (смотрите [[Guide to Spriting#Приложения|приложения]]), и то, как выглядит игра в данный момент. Сам спрайт может быть хорошим, но когда вы вставите его в игру, он уже может выглядеть иначе. Поэтому, прежде чем делиться, хорошей идеей будет протестировать его в игровом окружении.
[[Файл:Guide to spriting station style example.jpg|без|мини|400x400пкс|Этот скрин можно скачать, чтобы подставить свой спрайт.]]


=== Перспектива ===
=== Перспектива ===
Спрайты должны в определенной степени следовать стилю. Ниже перечислены основные моменты, на которые вам стоит обращать внимание во время работы.
Спрайты, как правило, должны быть в перспективе на '''три четверти (для краткости - 3/4)''', за некоторыми исключениями. Перспектива на 3/4, по сути, означает, что у объектов одна грань и видна верхняя часть, обращенная вверх. В большинстве случаев это относится и к спрайтам предметов. [https://habr.com/ru/articles/242023/ Тут] можно почитать про перспективу чуть подробнее.
Спрайты, как правило, должны быть в перспективе на '''три четверти (для краткости - 3/4)''', за некоторыми исключениями. Перспектива на 3/4, по сути, означает, что у объектов одна грань и видна верхняя часть, обращенная вверх. В большинстве случаев это относится и к спрайтам предметов. [https://habr.com/ru/articles/242023/ Тут] можно почитать про перспективу чуть подробнее.
[[Файл:3by4 spriting perspective example.png|безрамки|410x410пкс]]
[[Файл:3by4 spriting perspective example.png|безрамки|410x410пкс]]
Строка 40: Строка 77:


=== Предметы ===
=== Предметы ===
Каждый предмет как минимум имеет хотя бы один спрайт - тот, что отображается в вашем инвентаре. Рекомендуется также добавить спрайты в руке '''"инхенд" (in hand)''', которые отображаются на мобе, когда он держит ваш предмет. В сумме спрайтов в руке 8 (по 4 на каждую руку). Также, можно добавить '''"инворлд" (in world)''' версию предмета - это уменьшенная версия спрайта, который он будет принимать, когда находится вне инвентаря игрока. В итоге программа-максимум - по 10 спрайтов на предмет.
Предмет должен иметь:
 
# '''Спрайт в инвентаре''' - главный спрайт, то, как предмет будет выглядеть у игрока в рюкзаке. Старайтесь не рисовать близко к краю вашего 32х32 холста, а еще всегда размещайте спрайт по центру. Этот спрайт - детальное изображение предмета. Размещается в папке [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/obj icons/obj] , там они рассортированы по тематическим файлам. Например, спрайты бургеров вы найдете в [https://github.com/TauCetiStation/TauCetiClassic/blob/master/icons/obj/food.dmi food.dmi].
# '''Спрайт в мире (англ. Inworld)''' - то, как предмет будет выглядеть в игровом окружении, например, на столе повара. Более маленькая версия, чем спрайт в инвентаре, потому что он должен соответствовать пропорциям персонажа, тоесть он должен быть меньше его (бургер же меньше человека). Предмет будет принимать этот спрайт, когда находится вне инвентаря персонажа. Спрайт в мире для предмета лежит в том же файле, что и спрайт в инвентаре. Не забудьте отцентрировать спрайт.
# '''Спрайт в руках (англ. Inhand)''' - {{Anchor|inhands}}нужен, чтобы отображать, что человек держит что-то в руке. У персонажа две руки (правая и левая), и четыре направления - сервер, юг, запад и восток. Соответственно, вам потребуется сделать 8 спрайтов предмета в руках. Не переживайте, их не нужно сильно детализировать (Нужно просто чтобы было видно, что человек держит что-то), а еще, нарисовав одно направление, его легко переиспользовать, чтобы нарисовать остальные. Спрайты в руках хранятся в папке  [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/mob/inhands icons/mob/inhands], во время рисования вам также пригодятся спрайты кукол, их можно найти в [[Guide to Spriting#Приложения|приложениях статьи]].


[[Файл:Welder-Object-Spriting.png|безрамки]] - [WIP] - Картинку заменить, добавив плюс к этому то как оно лежит в другой руке и инворлд спрайт. В сумме должно получиться 10 клеток.
[[Файл:Item spriting example.jpg|безрамки|439x439пкс]]


=== Одежда ===
=== Одежда ===
[[File:Spriting_GreyJumpsuit.png|frame|Пример: серая униформа.]]
Для создания предмета одежды понадобится нарисовать ему:  
Для создания предмета одежды понадобится нарисовать ему:  


* Вид спереди, сзади и с обоих сторон. - [https://github.com/TauCetiStation/TauCetiClassic/blob/master/icons/mob/uniform.dmi Примеры в билде]
# '''Спрайт в инвентаре''' - то, как вещь будет отображаться в слоте инвентаря, или на земле. - [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/obj/clothing Примеры в билде]
* Специальный "спрайт-предмет" - то, как вещь будет отображаться в слоте инвентаря, или на земле. - [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/obj/clothing Примеры в билде]
#'''Направление одежды на персонаже''' - сервер, юг, запад, восток. Вся одежда, которая надевается на персонажа должна иметь спрайты всех направлений, вы можете посмотреть [https://github.com/TauCetiStation/TauCetiClassic/blob/master/icons/mob/uniform.dmi примеры в билде] и использовать их за основу. Во время рисования вам также пригодятся спрайты кукол, их можно найти в [[Guide to Spriting#Приложения|приложениях статьи]]. Используйте их, чтобы не нарисовать слишком широкую или узкую одежду. Это связано с тем, что BYOND показывает спрайты один слой поверх другого; каждый спрайт не должен быть шире, чем слой выше. Пример: если вы рисуете униформу, помните, что она должна быть уже, чем спрайт скафандра. В противном случае несколько пикселей из униформы будут отображаться по всему краю скафандра.
* (Необязательно) "In-hand" спрайты - маленькие изображения предмета для того, чтобы они отображались при ношении в руках. Необходимо нарисовать для обоих рук. - [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/mob/inhands Примеры в билде]
# '''Спрайт в руках (англ. Inhand)''' -  Аналогично спрайтам в руках предметов {{Anchorlink|inhands|t=из раздела выше}}Спрайты головных уборов, масок, очков, формы, костюмов и обуви рекомендуется рисовать для всех рас и комплекций тела. Особенно это касается расы Воксов.
 
BYOND показывает спрайты один слой поверх другого; каждый спрайт не должен быть шире, чем слой выше. Пример: если вы рисуете униформу, помните, что она должна быть уже, чем спрайт скафандра. В противном случае несколько пикселей из униформы будут отображаться по всему краю скафандра.
 
Спрайты головных уборов, масок, очков, формы, костюмов и обуви рекомендуется рисовать для всех рас и комплекций тела. Особенно это касается расы Воксов.


=== Объекты и Машинерия ===
=== Объекты и Машинерия ===
[[File:Floor.png|Плитка|мини]]Большие неперемещаемые объекты обычно занимают весь тайл, подчеркивая их размер. При рисовании объектов старайтесь оставлять у краёв тайла небольшой промежуток (к примеру, 1-2 пикселя), чтобы рядом стоящие объекты не сливались между собой. Машинерия чаще всего анимирована.
Большие неперемещаемые объекты обычно занимают весь тайл, подчеркивая их размер. При рисовании объектов старайтесь оставлять у краёв тайла небольшой промежуток (к примеру, 1-2 пикселя), чтобы рядом стоящие объекты не сливались между собой. Машинерия чаще всего анимирована. Примеры вы можете посмотреть в разделе [[Machine|машинерии]] на нашей вики, либо в билде по [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/obj/machines этой ссылке].
== Внедрение ==
== Внедрение ==
Чтобы добавить свои спрайты в игру, вам понадобится перенести их в формат '''DMI (Dream Maker Icon)''' - BYOND использует его для хранения изображений (По сути это измененный формат .png). В нашем билде все эти файлы хранятся в [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons папке "icons"]. В целом, если вы не вносите в билд свои спрайты самостоятельно, потому что не хотите разбираться с [https://wiki.taucetistation.org/Git/GitHub Гитхабом], и нашли раба-кодера, который добавит ваши изменения за вас, эту главу можно проигнорировать. Найти таких людей можно в нашем [https://discord.com/invite/YCWRjkb дискорде], в канале #rnd или #sprites.
Чтобы добавить свои спрайты в игру, вам понадобится перенести их в формат '''DMI (Dream Maker Icon)'''. В нашем билде все эти файлы хранятся в [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons папке "icons"].  


Если существующий в билде .dmi файл подходит для вашего спрайта, используйте его вместо создания нового. Если же необходимо создать новый файл - процесс довольно прост:
Если существующий в билде .dmi файл подходит для вашего спрайта, используйте его вместо создания нового. Если же необходимо создать новый файл - процесс довольно прост:
Строка 72: Строка 108:


# Находясь внутри DMI-файла, откройте меню "Graphic" в самом вверху (или ПКМ по пустому месту) и выберите "Import". Выберите в открывшимся окне ваш спрайт и нажмите "ОК". Выбирайте файлы в заданном DMI-файлом разрешении (обычно это 32х32, как говорилось ранее), иначе программа порежет ваш спрайт на куски.
# Находясь внутри DMI-файла, откройте меню "Graphic" в самом вверху (или ПКМ по пустому месту) и выберите "Import". Выберите в открывшимся окне ваш спрайт и нажмите "ОК". Выбирайте файлы в заданном DMI-файлом разрешении (обычно это 32х32, как говорилось ранее), иначе программа порежет ваш спрайт на куски.
# ПКМ где угодно в центре экрана, внутри открытого DMI-файла, либо откройте меню "Graphic" в самом вверху и выберите "New State". Открылся редактор, в котором вы увидите пустое ничего. Теперь вы можете делать с ним всё, что угодно, к примеру, скопировать (Ctrl + C, Ctrl + V) туда свой спрайт из любого редактора изображений.
# ПКМ где угодно в центре экрана, внутри открытого DMI-файла, либо откройте меню "Graphic" в самом вверху и выберите "New State". Открылся редактор, в котором вы увидите пустое ничего. Теперь вы можете делать с ним всё, что угодно, к примеру, скопировать '''({{Key|Ctrl}}+ {{Key|C}}, {{Key|Ctrl}}+ {{Key|V}})''' туда свой спрайт из любого редактора изображений.
#Не забывайте постоянно сохраняться ({{Key|Ctrl}}+ {{Key|S}})! DM может внезапно вылетить, и в нем отсутствует авто-сохранение и бэкапы.
Дальше придется разбираться с Гитхабом, можно следовать [[Git/GitHub|нашему гайду]]. В целом, вы можете попробовать найти кого-то, кто сделает всю грязную работу с Гитхабом за вас, желающие обычно есть. Найти таких людей можно в нашем [https://discord.com/invite/YCWRjkb дискорде], в канале #rnd или #sprites.


=== Анимации ===
=== Анимации ===
Чтобы сделать стейт-анимацию, вам понадобится сделать несколько кадров (Нажмите на "+" снизу, либо выберите кол-во кадров слева. Теперь вы можете редактировать кадры. Также не забудьте настроить длительность каждого кадра (Delay) - достаточно просто кликнуть на цифры над кадрами, и вуаля! Можете выбрать любое число, даже дробное. Ну и наконец, чтобы посмотреть, что получается, поставьте галочку около надписи "Animate" слева, и вы увидите вашу анимацию в небольшом окошке. Можете там же настроить дальность просмотра.
Чтобы сделать стейт-анимацию, вам понадобится сделать несколько кадров (Нажмите на {{Key|+}} снизу, либо выберите кол-во кадров слева. Теперь вы можете редактировать кадры. Также не забудьте настроить длительность каждого кадра (Delay) - достаточно просто кликнуть на цифры над кадрами, и вуаля! Можете выбрать любое число, даже дробное. Ну и наконец, чтобы посмотреть, что получается, поставьте галочку около надписи "Animate" слева, и вы увидите вашу анимацию в небольшом окошке. Можете там же настроить дальность просмотра.


== Советы ==
== Советы ==


* Спрайты, как правило, должны располагаться по центру холста, особенно если их можно подобрать.
* При рисовании предмета важно не сделать его слишком большим или слишком маленьким, иначе игрокам будет неудобно его использовать.
* Отсылки разрешены, но старайтесь делать это ненавязчиво.  
* Отсылки разрешены, но старайтесь делать это ненавязчиво.  
* [https://deeunderscore.github.io/dmi/#/ DMI Viewer] - онлайн инструмент, показывающий спрайты внутри DMI файла. Помимо обычной загрузки, умеет открывать файл по ссылке.
* [https://deeunderscore.github.io/dmi/#/ DMI Viewer] - онлайн инструмент, показывающий спрайты внутри DMI файла. Помимо обычной загрузки, умеет открывать файл по ссылке.
* Когда хотите показать кому-то свое творение - не кидайте одежду просто скрином из редактора - так ни вы, ни советчики ничего не увидят. Цепляйте одежду на куклу там же в редакторе, или тестите в игре.
* Когда хотите показать кому-то свое творение - не кидайте одежду просто скрином из редактора - так ни вы, ни советчики ничего не увидят. Цепляйте одежду на куклу там же в редакторе, или тестите в игре.
*DMI можно перевести в .png простой сменой названия файла. Это бывает полезно, потому что на выходе вы получаете спрайт-лист, с которым бывает удобнее работать. Чтобы вернуть .png обратно в dmi используется программа [https://entropymine.com/jason/tweakpng/ tweak png].


== Что прочесть и где найти помощь? ==
== Что прочесть и где найти помощь? ==
*Вы всегда можете задать вопросы или обсудить свои творения в канале #sprites [https://discordapp.com/invite/YCWRjkb нашего дискорда].
*Вы всегда можете задать вопросы или обсудить свои творения в канале #sprites [https://discordapp.com/invite/YCWRjkb нашего дискорда].
*[https://forum.taucetistation.org/t/gajdy-i-referensy-dlya-uspeshnogo-sprajtinga/40387 Референсы и гайды от Вальтера]
*[https://forum.taucetistation.org/t/gajdy-i-referensy-dlya-uspeshnogo-sprajtinga/40387 Референсы и гайды на нашем форуме]
*Для знатоков английского существует [https://discord.gg/A35MP69qG8 "SS13 Spriter Server"] - небольшой канал в дискорде, созданный спрайтером зарубежной /goon/ станции Gannets для помощи новичкам. В нём состоит огромное кол-во спрайтеров всея SS13.
*Читайте гайды! На просторах интернета их море, достаточно просто загуглить. Примеры:  
*Читайте гайды! На просторах интернета их море, достаточно просто загуглить. Примеры:  


Строка 101: Строка 137:
* http://androidarts.com/pixtut/pixelart.htm
* http://androidarts.com/pixtut/pixelart.htm
* https://onimille.tumblr.com
* https://onimille.tumblr.com
== Приложения ==
* [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/mob/human Папка icons/mob/human] - игровые спрайты кукол людей и разных рас. Сохраните, они точно вам пригодятся.
* [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/obj Папка icons/obj] - основные объекты игры.
* [https://github.com/TauCetiStation/TauCetiClassic/tree/master/icons/turf Папка icons/turf] - полы и стены.

Текущая версия на 21:03, 16 июня 2025

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

В данной статье мы разберем, какую программу лучше выбрать, расскажем про то, как рисовать и добавлять спрайты в игру, и дадим ссылки на полезные статьи. Мы не научим вас рисовать, для этого подойдут многочисленные гайды в интернете и посещение художественной школы. Однако, мы рекомендуем прочитать книгу Майкла Аззи "Pixel Logic". Вот ссылка. (Внимание: гайд на английском)

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

Bucket.png
Спрайтинг для Начинающих

Категории: Community; Contributing;

Кто такой Спрайтер?

В контексте Space Station 13 спрайтер - это тот, кто создает и улучшает визуал игры. Создание спрайтов - это всего лишь одна из задач спрайтеров. Вот примерный список того, чем вам может предстоять заниматься:

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

Что такое Спрайты?

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

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

В Space Station 13, спрайтами являются изображения всех объектов: персонажей, предметов, интерьеров, интерфейса. Обычно эти изображения находятся в пределах 32 на 32 пикселя. К примеру:Orebox.png

Спрайты обычно хранят в формате .png, без сжатия. Анимации могут быть сохранены, как .gif, или как в качестве раскадровки размером 32x32 пикселя. Но спрайты, используемые в SS13, хранятся в уникальном для BYOND формате DMI (Dream Maker Icon). По сути это измененный формат .png, спрайт-лист, но с парой особенностей:

  1. Создаётся и изменяется через Dream Maker — встроенный редактор BYOND.
  2. Сохраняется в виде PNG-файла, но с дополнительной метаинформацией, которая описывает:
    • Названия состояний (стейтов).
    • Количество кадров.
    • Направления (например, север, юг, запад, восток).
    • Скорость анимации и пр.

Пример использования DMI файла в коде билда:

icon = 'items.dmi'
icon_state = "laser_gun"

Это значит, что объект будет использовать иконку из файла items.dmi и брать спрайт с именем "laser_gun".

Где мне рисовать? Выбор программы

В BYOND-овском редакторе Dream Maker есть собственный редактор спрайтов, но он не подойдёт нам по функционалу (например, в нем отсутствует функция слоев), и понадобится, лишь чтобы поправить недочёты и собрать кадры в анимации. Что же использовать? Существует ряд программ:

Хорошие:

  • Aseprite - очень хороший редактор, специально созданный для пиксель-арта. Платный, хотя является open-source программой, поэтому вы свободно можете скачать и скомпилировать у себя их код с репозитория на гитхабе. Более дружелюбный новичку интерфейс.
  • Pro Motion NG - более дорогой и более профессиональный вариант, чем Aseprite. Менее интуитивный интерфейс, но больше настроек и функций.
  • GIMP - бесплатный редактор изображений, напоминающий фотошоп. Интерфейс может вызвать у вас трудности.

Прочее:

  • Piksel - Бесплатный онлайн редактор.
  • Adobe Photoshop - Программа, используемая чаще всего не для пиксель-арта, но может подойти, если вы уже привыкли к ней.

Основной стиль

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

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

Этот скрин можно скачать, чтобы подставить свой спрайт.

Перспектива

Спрайты должны в определенной степени следовать стилю. Ниже перечислены основные моменты, на которые вам стоит обращать внимание во время работы.

Спрайты, как правило, должны быть в перспективе на три четверти (для краткости - 3/4), за некоторыми исключениями. Перспектива на 3/4, по сути, означает, что у объектов одна грань и видна верхняя часть, обращенная вверх. В большинстве случаев это относится и к спрайтам предметов. Тут можно почитать про перспективу чуть подробнее. 3by4 spriting perspective example.png

Палитра

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

Choosing colors spriting example.png

Контуры

Все спрайты должны иметь цветные контуры. Это означает, что спрайты должны иметь контуры, состоящие из более темных оттенков цветов, с которыми они соединяются, вместо одноцветного контура. Контуры также не должны игнорировать свето-тень: становиться темнее в более темных частях объекта и светлее, при выделении более светлых частей.

Outline spriting example.png

Предметы

Предмет должен иметь:

  1. Спрайт в инвентаре - главный спрайт, то, как предмет будет выглядеть у игрока в рюкзаке. Старайтесь не рисовать близко к краю вашего 32х32 холста, а еще всегда размещайте спрайт по центру. Этот спрайт - детальное изображение предмета. Размещается в папке icons/obj , там они рассортированы по тематическим файлам. Например, спрайты бургеров вы найдете в food.dmi.
  2. Спрайт в мире (англ. Inworld) - то, как предмет будет выглядеть в игровом окружении, например, на столе повара. Более маленькая версия, чем спрайт в инвентаре, потому что он должен соответствовать пропорциям персонажа, тоесть он должен быть меньше его (бургер же меньше человека). Предмет будет принимать этот спрайт, когда находится вне инвентаря персонажа. Спрайт в мире для предмета лежит в том же файле, что и спрайт в инвентаре. Не забудьте отцентрировать спрайт.
  3. Спрайт в руках (англ. Inhand) -

нужен, чтобы отображать, что человек держит что-то в руке. У персонажа две руки (правая и левая), и четыре направления - сервер, юг, запад и восток. Соответственно, вам потребуется сделать 8 спрайтов предмета в руках. Не переживайте, их не нужно сильно детализировать (Нужно просто чтобы было видно, что человек держит что-то), а еще, нарисовав одно направление, его легко переиспользовать, чтобы нарисовать остальные. Спрайты в руках хранятся в папке icons/mob/inhands, во время рисования вам также пригодятся спрайты кукол, их можно найти в приложениях статьи.

Item spriting example.jpg

Одежда

Для создания предмета одежды понадобится нарисовать ему:

  1. Спрайт в инвентаре - то, как вещь будет отображаться в слоте инвентаря, или на земле. - Примеры в билде
  2. Направление одежды на персонаже - сервер, юг, запад, восток. Вся одежда, которая надевается на персонажа должна иметь спрайты всех направлений, вы можете посмотреть примеры в билде и использовать их за основу. Во время рисования вам также пригодятся спрайты кукол, их можно найти в приложениях статьи. Используйте их, чтобы не нарисовать слишком широкую или узкую одежду. Это связано с тем, что BYOND показывает спрайты один слой поверх другого; каждый спрайт не должен быть шире, чем слой выше. Пример: если вы рисуете униформу, помните, что она должна быть уже, чем спрайт скафандра. В противном случае несколько пикселей из униформы будут отображаться по всему краю скафандра.
  3. Спрайт в руках (англ. Inhand) - Аналогично спрайтам в руках предметов из раздела выше

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

Объекты и Машинерия

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

Внедрение

Чтобы добавить свои спрайты в игру, вам понадобится перенести их в формат DMI (Dream Maker Icon). В нашем билде все эти файлы хранятся в папке "icons".

Если существующий в билде .dmi файл подходит для вашего спрайта, используйте его вместо создания нового. Если же необходимо создать новый файл - процесс довольно прост:

  1. Открываете BYOND-овский Dream Maker.
  2. В меню создаём "New Environment"
    • Если у вас уже есть "Environment" в котором работаете, или из-за предыдущего открытия dmi-файлов, вы можете перейти сразу к шагу 5.
  3. Укажите каталог файлов, в котором находится файл "среды" (.dme) и связанные с ним файлы будут находиться. Назовите .dme файл.
  4. Создайте новый файл через File->New. (Если вы создали новую среду, программа все сделает за вас.) Выберите "Icon File (.dmi)". Укажите, где .dmi будет находиться относительно папки, в которой хранится файл среды (если вы оставите поле пустым, файл будет находиться в той же папке). Назовите его как-нибудь.
  5. Важно: В одном dmi файле - могут быть спрайты только одного размера. Установите размер 32х32.

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

  1. Находясь внутри DMI-файла, откройте меню "Graphic" в самом вверху (или ПКМ по пустому месту) и выберите "Import". Выберите в открывшимся окне ваш спрайт и нажмите "ОК". Выбирайте файлы в заданном DMI-файлом разрешении (обычно это 32х32, как говорилось ранее), иначе программа порежет ваш спрайт на куски.
  2. ПКМ где угодно в центре экрана, внутри открытого DMI-файла, либо откройте меню "Graphic" в самом вверху и выберите "New State". Открылся редактор, в котором вы увидите пустое ничего. Теперь вы можете делать с ним всё, что угодно, к примеру, скопировать (Ctrl+ C, Ctrl+ V) туда свой спрайт из любого редактора изображений.
  3. Не забывайте постоянно сохраняться (Ctrl+ S)! DM может внезапно вылетить, и в нем отсутствует авто-сохранение и бэкапы.

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

Анимации

Чтобы сделать стейт-анимацию, вам понадобится сделать несколько кадров (Нажмите на + снизу, либо выберите кол-во кадров слева. Теперь вы можете редактировать кадры. Также не забудьте настроить длительность каждого кадра (Delay) - достаточно просто кликнуть на цифры над кадрами, и вуаля! Можете выбрать любое число, даже дробное. Ну и наконец, чтобы посмотреть, что получается, поставьте галочку около надписи "Animate" слева, и вы увидите вашу анимацию в небольшом окошке. Можете там же настроить дальность просмотра.

Советы

  • Отсылки разрешены, но старайтесь делать это ненавязчиво.
  • DMI Viewer - онлайн инструмент, показывающий спрайты внутри DMI файла. Помимо обычной загрузки, умеет открывать файл по ссылке.
  • Когда хотите показать кому-то свое творение - не кидайте одежду просто скрином из редактора - так ни вы, ни советчики ничего не увидят. Цепляйте одежду на куклу там же в редакторе, или тестите в игре.
  • DMI можно перевести в .png простой сменой названия файла. Это бывает полезно, потому что на выходе вы получаете спрайт-лист, с которым бывает удобнее работать. Чтобы вернуть .png обратно в dmi используется программа tweak png.

Что прочесть и где найти помощь?

Русские:

Англоязычные:

Приложения