Руководство по спрайтингу

Версия от 20:47, 16 апреля 2023; imported>Colus ostro (опечатка в названии программы aseprite)
Newscaster.pngЭта страница должна быть пересмотрена/обновленаNewscaster.png
Эта статья содержит устаревшие данные, необходимо сверить и обновить информацию.
Причина: Отсутствует гайд по использованию лееров. Не все пути к файлам (нужно обновить). Нужны опытные спрайтеры для расширения гайда.


ПРЕДУПРЕЖДЕНИЕ: Это не техническое руководство по созданию страйтов в графическом ПО, это руководство предназначено для участников, которые знают азы спрайтинга, но которым необходимо знать конкретные требования к новым спрайтам, когда в них возникает потребность.
Большинство спрайтов имеет разрешение 32х32 пикселей и используют 32-битные цвета (24-битная кодировка цвета + альфа-канал)

Объекты

В игре используется 4 типа объектов

  • Зона (Area) — нам это не интересно, поскольку объекты данного типа не отображаются в игре, а уже имеющейся работы более, чем достаточно.
  • Моб (Mob) — куклы игроков, животные, киборги, ксеноморфы и прочая живность, встречающаяся на станции.
  • Объект (Object) — машины, двери, шлюзы, предметы и прочее.
  • Покрытие (Turf) — полы, стены и открытый космос.

Формат DMI

Спрайты в SS13 упакованы в файлы формата .dmi. Чтобы создать новый DMI-файл, откройте DreamMaker, выберите File > New > Icon file (dmi).
Укажите путь для файла и сохраните его.

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

Нажмите ПКМ на пустом полотне. Существует два типа спрайтов: `карта` и `ролик`. Отличие лишь в том, что карта статична, когда ролик может быть анимирован и ориентирован на множество направлений. Давайте создадим спрайт-ролик (`New movie`).

Открывается окно с четырьмя стрелками направлений и тремя рамками для каждой из них, все они серые. BYOND понимает 8 направлений. Вы можете выбрать, сколько из них вы хотите использовать под самими спрайтами: 1, 4 или 8. Вы также можете выбрать, сколько кадров должно быть в анимации. Если вы создаете статичный спрайт с несколькими направлениями, создайте ролик с 1 кадром, без анимации, но с 4 или 8 направлениями, в зависимости от того, сколько вам нужно. Если вы хотите, чтобы спрайт был анимирован, вас также может заинтересовать то, что вы можете установить задержку в 1/10 секунды над конкретным кадром. Итак, надеюсь, вы поняли, что делать дальше. Встроенный инструмент редактирования спрайтов очень примитивен, и единственное, о чем в нем стоит упомянуть, - это применение альфа-фильтра. Если вы дважды щелкните по любому изображению, то попадете в редактор спрайтов, а справа от него находится вертикальный ползунок, который управляет альфа-каналом. Также стоит упомянуть, что копирование из редактора может вести себя немного странно, заливая полный фон, несмотря на установленный альфа-фильтр. Просто "залейте" фон цветом с альфа-значением 0 или используйте "импорт", который работает нормально.

Предположим, что мы сделали наши спрайты. Вернёмся в файл .dmi (на окно, которое появилось при создании файла). Предполагая, что вы закончили спрайт, вы можете увидеть его в списке. Двойной клик под спрайтом в списке отобразит окно переименования (также можно нажать F2). Дайте название спрайту. Обычно оно отражает состояние иконки, как если бы оно было определено в коде в качестве имени переменной.

Также заметьте что вы можете импортировать и экспортировать файлы изображений, выбирая файлы для экспорта в редакторе (Ctrl+ЛКМ для множественного выбора), и выбрав ПКМ > Export или ПКМ > Import в свободной части окна редактора для импорта. DMI схож с PNG, так что простое переименование файла под формат PNG сделает его доступным для редактирования в большинстве графических редакторов. Обычно это работает и в обратном направлении. Это делает процесс перекраски быстрее.

Надеюсь, теперь это вся информация, которая нужна для создания спрайтов в формате DMI.

Требуемые спрайты

Пара слов о том, какие спрайты каждого типа нам нужны:

Покрытия

  • Полы находятся в файле icons/turf/floors.dmi — Загляните в файл для примера
  • Стены находятся в файле icons/turf/walls.dmi — Загляните в файл для примера
  • Все остальное ищите в папке icons/turf/
  • Пояснять не нужно.

Объекты

  • Предметы, всякое барахло, которое игрок будет подбирать и использовать в целом имеет свой основной спрайт и спрайт, используемый, когда предмет находится в руке. Основные спрайты предметов лежат в icons/obj/items.dmi (или в других файлах), спрайты для предметов в руках должны лежать в файлах:
    • icons/mob/items_lefthand.dmi - для левой руки;
    • icons/mob/items_righthand.dmi - для правой руки.
  • Одежда: Одеваемое барахло: Требует спрайт предмета в соответствующем DMI-файле в папке icons/obj/clothing/, спрайты "в руках" в icons/mob/items_lefthand.dmi и items_righthand.dmi, а также спрайт предмета, одетого на моба в соответствующей папке в icons/mob/
  • Машинерия: Обычно используют один спрайт или несколько для состояний "ВКЛ/ВЫКЛ". Варьируется от машины к машине.

Мобы

  • Мобам нужны спрайты на каждое из 4 направлений. Если вы хотите, чтобы моб мог носить одежду, держать предметы, надевать перчатки, очки и прочие аксессуары, то те части спрайта, которые вам нужны, потребуется оставить на тех же местах, как у спрайта человека во всех 4 направлениях. Согласны, это сильно вас ограничивает.
  • Спрайты мобов требуют спрайты мертвых состояний.
  • При желании можно сделать разнослойные спрайты, поработав с layers.
  • Если вы создаете моба, который может носить одежду, вы можете использовать pixel_y, Pixel_x для изменения положения одежды при кодировании.
  • Если это новая раса карбона с не гуманоидной или искривленной формой тела (как у ВОКСов, Драсков, Резоми), на неё необходимо перерисовать уже существующие одежды или запретить их к ношению.
  • Не забывайте что у греев увеличенная голова и глаза, поэтому для них нужны отдельные спрайты очков, шлемов и шапок. У вульпканинов и таяр торчат уши, у КПБ - антенны, всё это нужно проверять. Для примера можете посмотреть шапку ratge_headи количество её спрайтов для разных рас.

Мобы с конечностями

  • Люди и гуманоидные виды состоят из конечностей — головы, груди, паха, двух рук и двух ног.
  • У некоторых рас существует дополнительные конечности: Крылья, хвосты.
  • Файлы конечностей с заданным цветом находятся в 'icons/mob/human_races/r_[race].dmi'
  • Конечности имеют 4 направления, как и полные иконки.
  • Конечности также используются в качестве иконок предметов в случае расчленения.
  • Наименования конечностей:
    • r_[race]/_l/r_arm/leg для рук и ног.
    • r_[race]/_chest(_m/f) для груди (m/f для male/female (мужской/женский) вариантов, опционально)
    • r_[race]/_head(_m/f) для головы (m/f для male/female (мужской/женский) вариантов, опционально)

Нахождение спрайтов одежды и некоторых объектов

Внимательней к иконкам без направлений



Пути нахождения аксессуаров и доп. слоев:

  • Для волос: 'icons/mob/sprite_accessories/[race]/[race]_hair.dmi'
  • Бороды: 'icons/mob/sprite_accessories/[race]/[race]_facial_hair.dmi'
  • Для тела, например хвосты: 'icons/mob/body_accessory.dmi'
  • Татуировки: 'icons/mob/sprite_accessories/[race]n/[race]_body_markings.dmi'
  • Белье: 'icons/mob/underwear.dmi'
  • Лицевые слои(глаза, макушка): 'icons/mob/[race]_face.dmi'
  • Нательные слои(загрязнения): 'icons/mob/[race]_races/masks/blood_[race].dmi'

Расположение спрайтов

Для большинства объектов двойной ЛКМ в дереве объектов (левая часть экрана DreamMaker) выведет их определение в коде. В подсвеченных переменных обычно написано что-то вроде:

icon = 'abc.dmi'

icon_state = "sprite_name"

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

Иногда эти переменные не будут выведены под определением. Это лишь означает, что они находятся на родительском уровне.
Если вы ищете, к примеру, /obj/item/weapon/storage/belt/full и не можете найти переменные, попробуйте подняться на уровень выше — /obj/item/weapon/storage/belt. Не нашли? Поднимайтесь дальше — /obj/item/weapon/storage, и так далее.

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

Конвертирование в PNG и DMI

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

Первое что вам предстоит сделать, это скачать TweakPNG отсюда.

Затем конвертируйте ваш файл из .dmi формата в .png, просто сменив ему тип (это можно сделать переименованием)

Файлы .dmi и .png

Откройте ваш .png файл в любом редакторе, например Paint.net, Photoshop или Aseprite (программа подходит для рисования в пикселе).

Открытый PNG файл.

Внесите необходимые изменения.

Приемлимо.

Сохраните и/или экспортируйте ваш измененный файл .png.

Откройте TweakPNG.

Переименуйте ваш измененный .png во что-то другое и конвертируйте его обратно в .dmi

Перетащите оригинальный .dmi файл в TweakPNG.

Скопируйте Chunk под названием "zTXt".

Перетащите ваш новый измененный .dmi, вставьте скопированный "zTXt" Chunk и убедитесь, что он находится под "tRNS" Chunk.

Да шо тут происходит...

Откройте ваш измененный .dmi файл и убедитесь что он работает.

ЗАРАБОТАЛО!

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

Добавление спрайтов и поиск запросов

https://github.com/ss220-space/Paradise - Наш Github

https://discord.com/channels/617003227182792704/618952559607939072 - Предложка в Discord


Как внести свой вклад?
Общее Руководство по разработке
Сервер Настройка базы данных, Запуск локального сервера
Код Структура кода SS13, SS13 для опытных программистов, Форматирование текста, Как делать перевод игры
Маппинг Руководство по маппингу
Спрайтинг Руководство по спрайтингу
Вики Руководство по редактированию вики