Руководство по спрайтингу: различия между версиями

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


== Объекты ==
== Объекты ==
Строка 12: Строка 12:
== Формат DMI ==
== Формат DMI ==


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


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


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


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


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


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


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


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


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


=== Покрытия ===
=== Покрытия ===
Строка 48: Строка 45:
**<code>icons/mob/items_righthand.dmi</code> - для правой руки.
**<code>icons/mob/items_righthand.dmi</code> - для правой руки.
*Одежда: Одеваемое барахло: Требует спрайт предмета в соответствующем DMI-файле в папке <code>icons/obj/clothing/</code>, спрайты "в руках" в <code>icons/mob/items_lefthand.dmi</code> и <code>items_righthand.dmi</code>, а также спрайт предмета, одетого на моба в соответствующей папке в <code>icons/mob/</code>
*Одежда: Одеваемое барахло: Требует спрайт предмета в соответствующем DMI-файле в папке <code>icons/obj/clothing/</code>, спрайты "в руках" в <code>icons/mob/items_lefthand.dmi</code> и <code>items_righthand.dmi</code>, а также спрайт предмета, одетого на моба в соответствующей папке в <code>icons/mob/</code>
*Машины: Обычно используют один спрайт или несколько для состояний "ВКЛ/ВЫКЛ". Варьируется от машины к машине.
*Машинерия: Обычно используют один спрайт или несколько для состояний "ВКЛ/ВЫКЛ". Варьируется от машины к машине.
 
=== Мобы ===
 
* Мобам нужны спрайты на каждое из 4 направлений. Если вы хотите, чтобы моб мог носить одежду, держать предметы, надевать перчатки, очки и прочие аксессуары, то те части спрайта, которые вам нужны, потребуется оставить на тех же местах, как у спрайта человека во всех 4 направлениях. Согласны, это сильно вас ограничивает.
* Спрайты мобов требуют спрайты мертвых состояний.
* При желании можно сделать разнослойные спрайты, поработав с layers.
* Если вы создаете моба, который может носить одежду, вы можете использовать pixel_y, Pixel_x для изменения положения одежды при кодировании.
* Если это новая раса карбона с не гуманоидной или искривленной формой тела (как у ВОКСов, Драсков, Резоми), на неё необходимо перерисовать уже существующие одежды или запретить их к ношению.
 
==== Мобы с конечностями ====
* Люди и гуманоидные виды состоят из конечностей — головы, груди, двух рук и двух ног.
* У некоторых рас существует дополнительные конечности: Крылья, хвосты.
* Файлы конечностей с заданным цветом находятся в '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 (мужской/женский) вариантов, опционально)


=== Нахождение спрайтов одежды и некоторых объектов ===
[[File:ListWaysClothes.png|300px|frame|none|Внимательней к иконкам без направлений]]
<br><br>
<div class="toccolours mw-collapsible mw-collapsed" style="width:99%;">
<span style="font-size:1.2em;">'''Пути нахождения аксессуаров и доп. слоев:'''</span><br>
<div class="mw-collapsible-content">
* Для волос: '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'
</div></div></div>


== Расположение спрайтов ==
== Расположение спрайтов ==
Строка 61: Строка 94:
Переменная <code>icon</code> определяет файл, в котором содержится необходимый спрайт. Переменная <code>icon_state</code> указывает на имя спрайта в этом файле.  
Переменная <code>icon</code> определяет файл, в котором содержится необходимый спрайт. Переменная <code>icon_state</code> указывает на имя спрайта в этом файле.  


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


Заметьте, что могут возникнуть ситуации, когда двойной клик по объекту в дереве не отобразит определение этого объекта. Это можно понять по тому факту, что выделенная строка не совпадает с путем к объекту, который вы дважды щелкнули в обозревателе объектов. Поиск определения в таких случаях может быть немного сложным, поэтому не стесняйтесь обращаться за помощью в Discord.
Заметьте, что могут возникнуть ситуации, когда двойной клик по объекту в дереве не отобразит определение этого объекта. Это можно понять по тому факту, что выделенная строка не совпадает с путем к объекту, который вы дважды щелкнули в обозревателе объектов. Поиск определения в таких случаях может быть немного сложным, поэтому не стесняйтесь обращаться за помощью в Discord.
== Конвертирование в PNG и DMI ==
Возникают ситуации, когда вам нужно конвертировать ваши спрайты из DMI в PNG и обратно в DMI, но в таких случаях полностью теряется порядок спрайтов и их данные (названия) при конвертации. Если вы хотите решить эту проблему, данный гайд для вас.<br>
Первое что вам предстоит сделать, [http://entropymine.com/jason/tweakpng/ это скачать TweakPNG отсюда].<br>
Затем конвертируйте ваш файл из .dmi формата в .png, просто сменив ему тип (это можно сделать переименованием)<br>
[[File:Spriting1.png|frame|none|Файлы .dmi и .png]]
Откройте ваш .png файл в любом редакторе, например Paint.net, Photoshop или Asperite (программа подходит для рисования в пикселе).<br>
[[File:Spriting2.png|300px|frame|none|Открытый PNG файл.]]
Внесите необходимые изменения.<br>
[[File:Spriting3.png|frame|none|Приемлимо.]]
Сохраните и/или экспортируйте ваш измененный файл .png.<br>
Откройте TweakPNG.<br>
Переименуйте ваш измененный .png во что-то другое и конвертируйте его обратно в .dmi<br>
Перетащите оригинальный .dmi файл в TweakPNG.<br>
Скопируйте Chunk под названием "zTXt".<br>
Перетащите ваш новый измененный .dmi, вставьте скопированный "zTXt" Chunk и убедитесь, что он находится под "tRNS" Chunk.<br>
[[File:Spriting4.gif|frame|none|Да шо тут происходит...]]
Откройте ваш измененный .dmi файл и убедитесь что он работает. <br>
[[File:Spriting5.png|frame|none|ЗАРАБОТАЛО!]]


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


https://github.com/ss220-space/Paradise - Наш Github
https://github.com/ss220-space/Paradise - Наш Github<br>
 
https://discord.com/channels/617003227182792704/618952559607939072 - Предложка в Discord<br>


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


{{Contribution Guides}}
{{Contribution Guides}}


[[Category:Guides]] [[Category:Game Resources]]
[[Category:Guides]] [[Category:Game Resources]]

Версия от 06:50, 7 декабря 2022

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

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

  • Люди и гуманоидные виды состоят из конечностей — головы, груди, двух рук и двух ног.
  • У некоторых рас существует дополнительные конечности: Крылья, хвосты.
  • Файлы конечностей с заданным цветом находятся в '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 (мужской/женский) вариантов, опционально)

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

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



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

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

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

Открытый 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