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

Материал из SS220 Paradise Wiki (SS13)
Версия от 10:32, 5 декабря 2022; Kysovich (обсуждение | вклад) (Первая половина переведена, нужен ревью)
Перейти к навигации Перейти к поиску
MakeshiftGarrote.PNGЭтой странице требуется переводMakeshiftGarrote.PNG
Эта статья содержит непереведенную информацию.


ПРЕДУПРЕЖДЕНИЕ: Это не техническое руководство по созданию страйтов в графическом ПО, это руководство предназначено для участников, которые знают азы спрайтинга, но которым необходимо знать конкретные требования к новым спрайтам, когда в них возникает потребность. Большинство спрайтов имеет разрешение 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.

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

Now to tell you what sprites different types of items need:

Mobs

  • Mobs require sprites in 4 directions. If you want them to be able to wear clothes, hold items, wear gloves, glasses, etc. then the part which you'd like to keep needs to be in the same place as on the human sprite in all 4 directions. Yeah, this limits you a lot.

Turfs

  • Floors are in icons/turf/floors.dmi - Check the file for examples
  • Walls are in icons/turf/walls.dmi - Check the file for examples
  • And some other stuff is in other files in icons/turf/
  • I think these are pretty self explanatory

Objects

  • Items, stuff that you can pick up and use generally require an item sprite and an in-hand sprite. The item sprite can be put in icons/obj/items.dmi or other dmi files, while the in-hand sprite needs to be in icons/mob/items_lefthand.dmi and icons/mob/items_righthand.dmi
  • Clothing: Stuff that you can wear: Generally requires an item sprite in the appropriate dmi file in icons/obj/clothing/ , and in-hand sprite in icons/mob/items_lefthand.dmi and items_righthand.dmi as well as the on-mob sprite in the appropriate file in icons/mob/
  • Machinery: Usually either just one sprite or separate on-off sprites. It tends to differ from machine to machine


Locating sprites

For most objects if you double-click them in the object tree (on the left side of the dream maker window) you will be taken to their definition in code. In the variables below what is highlighted you will often see:

 icon = 'abc.dmi'
 icon_state = "sprite_name"

The icon variable defines the file which contains the sprites and the icon_state defines the name of the sprite in the specified file. Sometimes the icon or even icon_state variable will not be set under the definition. This means they're set on a parent level. If you're looking for /obj/item/weapon/storage/belt/full and can't see it, try looking at /obj/item/weapon/storage/belt. If it isn't there try looking for /obj/item/weapon/storage and so on.

Note that sometimes double-clicking an object in the object tree will not bring you to the object definition. You will know this by the highlighted line not being the same as the path to the object you double-clicked in the object browser. Searching for the definition in such cases can be a bit hard, so I've prepared a list of the most commonly used dmi files for certain objects:

Contributing sprites and finding sprite requests

https://github.com/ss220-space/Paradise - Server Code Github

https://discord.com/channels/617003227182792704/618952559607939072 - General Suggestion Thread

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