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

Версия от 12:19, 6 декабря 2022; imported>Kysovich (Завершил перевод, накидал форматирования)

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

Объекты

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

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

Формат 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.

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

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

Мобы

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

Покрытия

  • Полы находятся в файле 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/
  • Машины: Обычно используют один спрайт или несколько для состояний "ВКЛ/ВЫКЛ". Варьируется от машины к машине.


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

Для большинства объектов двойной ЛКМ в дереве объектов (левая часть экрана 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.

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

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

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

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