SS14:Файлы: различия между версиями
CL w (обсуждение | вклад) |
CL w (обсуждение | вклад) |
||
Строка 168: | Строка 168: | ||
== Шаблон файл == | == Шаблон файл == | ||
Шаблон файл является обязательным к заполнению для всех файлов загружающихся на Вики. | Шаблон файл является обязательным к заполнению для всех файлов загружающихся на Вики. | ||
<pre>{{Файл | |||
|Описание = <!--Название изображения здесь--> | |||
|Id = <!--Id из кода игры--> | |||
|Проект = <!--Смотрим Шаблон:abb--> | |||
|Источник = <!--Ссылка на источник, если указан путь, заполняется автоматически--> | |||
|Путь = <!--Путь к файлу, начиная с Resources, обязательно для спрайтов из общего доступа--> | |||
|Теги = <!--Только для файлов не из репозитория (скриншот, иконка, рендер, лор)--> | |||
}}</pre> | |||
=== Лицензии === | === Лицензии === |
Версия от 11:42, 12 июня 2024
Спрайты
Эта часть сугубо для файлов из репозитория. Все файлы из репозитория следует загружать в формате png или apng. (Данные форматы взаимозаменяемы)
Инструменты
Вы не станете мастером, если не будете иметь под рукой небольшой набор инструментов :Cat_nerd:, поэтому вот вам список всего, что мы сегодня будем использовать:
- Файлы игры - Источник всех спрайтов для ваших злодеяний. Все спрайты находятся в space-station-14/Resources/Textures
- ezgif.com - Крутой сайт, имеющий весь инструментарий для создания гифок и обрезки спрайтов (да-да, не удивляйтесь, скоро всё поймёте).
Обработка материала
Создание статичных спрайтов
Создание сложного статичного спрайта
Некоторые спрайты, хоть и являются статичными, но собираются из нескольких отдельных спрайтов. Примерами таких спрайтов являются: Ключи шифрования (на самом деле они состоят из спрайта "основы" разных цветов и значка отдела, который накладывается поверх спрайта "основы") или светящиеся палочки (у которых одна и та же "основа" сверху и снизу, но разный цвет у самой палочки).
- Найдите все нужные части сложного спрайта по папкам в Resources/Textures.
- Откройте самый нижний слой спрайта вашим любимым редактор изображений с поддержкой нескольких слоёв.
- Накиньте следующими слоями всё остальное. Если что-то выглядит не так, как должно - попробуйте поперемещать слои, возможно вы просто разместили их не в том порядке.
- Когда вы уверены что изображение выглядит так, как должно - сохраните его как новое изображение в удобном вам месте.
НИКОГДА НЕ СОХРАНЯЙТЕ ИЗОБРАЖЕНИЕ ЧЕРЕЗ ОПЦИЮ "Сохранить", ТАК КАК ВЫ РИСКУЕТЕ ПОТЕРЯТЬ ВАШ ИЗНАЧАЛЬНЫЙ СПРАЙТ. ВСЕГДА ИСПОЛЬЗУЙТЕ ОПЦИЮ "Сохранить как..."'
Создание анимированных спрайтов
Все анимированные спрайты в игре хранятся в виде spritesheets - изображения, на котором все спрайты объекта (его повороты, анимации и прочее) склеены в одно большое изображение.
Разделение spritesheet на отдельные изображения
- Откройте файл meta.json в .rsi папке с вашим спрайтом и найдите строчку "size". В этом параметре вы найдёте размеры спрайта по x и по y (чаще всего они равны и спрайт представлют из себя квадраты, но никогда нельзя быть уверенным в чём-то на 100%).
- Зайдите на сайт https://ezgif.com, после чего в разделе "split" выберите "Sprite sheet cutter".
- Загрузите ваш spritesheet на сайт
- Поставьте галочку напротив "By tile size" и в появившихся полях впишите размеры спрайта (помните, что width = ширина = x, а height = высота = y). Формат изображений менять не рекомендуется во избежании шакалов
- Нажмите кнопку "Cut!"
Вот и всё! Снизу у вас появились нужные вам кадры, которые вы можете скачать в виде zip-архива, или создать gif анимацию!
Преобразование кадров в apng
Если вы никуда не уходили с сайта с прошлого этапа и до сих пор находитесь на странице с вашими нарезанными кадрами:
- Нажмите кнопку "Create APNG animation". Вас должно перевести на страницу создания анимации. Перед вами будут представлены все кадры, полученные в прошлом параграфе.
- Скорее всего в вашем спрайте есть много вариантов одного и того же существа (или предмета) под разные игровые ситуации, поэтому вам необходимо отключить ненужные кадры. Делается это во вкладке "Toggle a range of frames" чуть ниже полученных кадров. Вписываете номер начального и конечного кадров (включительно), с которыми вам нужно провести манипуляции и нажимаете "Skip" или "Enable", в зависимости от того, что вы хотите сделать. Эти кадры останутся здесь, но будут пропущены при создании анимации и вы их не увидите на апнг.
- В пункте "APNG options" вы можете настроить Delay для каждого кадра в анимации.
- Нажимаем галочку "don't stack frames" (каждый новый кадр будет рисоваться чистым, без остатков предыдущих кадров) и затем нажимаем на кнопку "Make a APNG".
НЕ ЗАБУДЬТЕ СКАЧАТЬ ВАШУ ПНГ С ПОМОЩЬЮ КНОПКИ save СНИЗУ.
Если вы скачали кадры архивом и ушли с сайта ИЛИ у вас уже есть готовый набор вырезанных кадров:
- Распаковывам архив с нашими кадрами, если вы этого ещё не сделали
- На сайте выбираем раздел "APNG maker" и загружаем туда все нужные нам кадры
- В пункте "APNG options" вы можете настроить Delay для каждого кадра в анимации.
- Нажимаем галочку "don't stack frames" (каждый новый кадр будет рисоваться чистым, без остатков предыдущих кадров) и затем нажимаем на кнопку "Make a APNG".
НЕ ЗАБУДЬТЕ СКАЧАТЬ ВАШУ ПНГ С ПОМОЩЬЮ КНОПКИ save СНИЗУ.
Наложение анимированной части спрайта на статичную
Если вам нужно наложить что-то движущееся (например анимацию монитора консоли) на что-то статичное (например на пнг изображение консоли):
- Вырезаем анимированную и статичную часть спрайта (или склеиваем составную статичную часть спрайта) по инструкции и скачиваем полученные кадры в формате архива.
- Добавляем нашу статичную часть спрайта в папку с кадрами анимации, которая будет наложена поверх спрайта. Если в анимации есть лишние кадры (например спрайт для повёрнутой версии предмета, или для особого стейта) - удаляем их.
- Зайдите на сайт https://ezgif.com, и выбираем раздел "APNG maker". Загружаем туда все наши кадры и статичную часть спрайта, которую мы добавили в ту же папку ранее.
- В списке кадров наводимся на наш кадр со статичной частью анимации и перетаскиваем его перед всеми кадрами
- В пункте "APNG options" вы можете настроить Delay для каждого кадра в анимации.
- Нажимаем галочку "don't stack frames", галочку "use first frame as background" и галочку "0 delay for the first frame". Галочка "don't stack frames" означает что старые кадры будут очищаться с гифки при проигрывании и у нас не будет их "следов" (выглядит это конечно красиво, но нам это не нужно). Галочка "use first frame as background" заставит первый кадр во всей анимации стать фоном этой анимации (то есть все следующие кадры будут накладываться на него). Галочка "0 delay for the first frame" означает что наш "фон" никогда не появится отдельным от всех кадром, то есть он всегда будет показан фоном и не будет показан отдельным от остального кадром.
- Нажимаем на кнопку "Make a APNG" и проверяем работоспособность гифки.
НЕ ЗАБУДЬТЕ СКАЧАТЬ ВАШУ ПНГ С ПОМОЩЬЮ КНОПКИ save СНИЗУ.
Использование меты
Файлы meta.json, находятся в каждой папке со спрайтами и используется игрой для правильного проигрывания анимаций, соответственно может быть использован и нами для выставления времени кадров в анимированных картинках.
Пример файла meta.json:
"version": 1, "license": "CC-BY-SA-3.0", "size": { "x": 32, "y": 32 }, "states": [ { "name": "icon", "delays": [ [ 0.2, 0.2, 0.2 ] ] }, { "name": "icon_blue", "delays": [ [ 0.2, 0.2, 0.2 ]
В мете нас интересует 2 значения. Size — указывается 2 координатами по x и y и указывает размер спрайта (как нужно его нарезать).
Delays указывает длительность кадров анимации, 1.0 (в мете) = 1 секунда = 100 Delay (в ezgif).
Использование прототипов
Прототипы (файлы с расширением .yml) содержат в себе информацию о свойствах предметов. В частности нас интересует информация о спрайте, последовательности слоёв, и их цветокоррекции.
- type: entity
parent: BaseComputer
id: ComputerCloningConsole
name: cloning console computer
description: The centerpiece of the cloning system, medicine's greatest accomplishment. It has lots of ports and wires.
components:
- type: CloningConsole
- type: DeviceList
- type: DeviceNetwork
deviceNetId: Wired
- type: Sprite
layers:
- map: ["computerLayerBody"]
state: computer
- map: ["computerLayerKeyboard"]
state: generic_keyboard
- map: ["computerLayerScreen"]
state: dna
- map: ["computerLayerKeys"]
state: generic_keys
- type: ApcPowerReceiver
powerLoad: 3100 #We want this to fail first so I transferred most of the scanner and pod's power here. (3500 in total)
- type: Computer
board: CloningConsoleComputerCircuitboard
- type: PointLight
radius: 1.5
energy: 1.6
color: "#1f8c28"
- type: DeviceLinkSource
range: 4
ports:
- MedicalScannerSender
- CloningPodSender
- type: ActivatableUI
key: enum.CloningConsoleUiKey.Key
- type: UserInterface
interfaces:
enum.CloningConsoleUiKey.Key:
type: CloningConsoleBoundUserInterface
- type: Speech
speechVerb: Robotic
speechSounds: Pai
- type: Damageable
damageContainer: Inorganic
damageModifierSet: StrongMetallic
- type: GuideHelp
guides:
- Cloning
Красным цветом выделена часть описывающая последовательность слоёв. Для правильной сборки надо просто соединить указанные спрайты последовательно.
Наименование файлов
Все файлы следует называть в соответствии с данным шаблоном:
Пример:
Файлы репозитория
Файлам из репозитория игры следует давать названия согласно их ID в игре. Не следует как либо изменять название во избежание поломок ботов работающих ID. ID можно найти в самом репозитории. Пример:
В случае нескольких предметов с одинаковыми ID, следует добавлять к названию указание состояния или цифру
Примеры:
В том случае если ID предмета не существует в игре, следует давать название по папке и файлу спрайта в репозитории следующим образом.
Пример:
Файлы не из репозитория
В случае файлов не из репозитория, следует давать названия на русском языке. Для разделения слов следует использовать тире.
Пример:
Шаблон файл
Шаблон файл является обязательным к заполнению для всех файлов загружающихся на Вики.
{{Файл |Описание = <!--Название изображения здесь--> |Id = <!--Id из кода игры--> |Проект = <!--Смотрим Шаблон:abb--> |Источник = <!--Ссылка на источник, если указан путь, заполняется автоматически--> |Путь = <!--Путь к файлу, начиная с Resources, обязательно для спрайтов из общего доступа--> |Теги = <!--Только для файлов не из репозитория (скриншот, иконка, рендер, лор)--> }}
Лицензии
Лицензии также является обязательным пунктом в статье файла. Обычно используются следующие лицензии
{{CC-BY-SA-3.0}} - Для файлов из репозитория игры
{{CC BY-NC-SA 4.0}} - Для скриншотов
{{NoLicense}} - Для файлов с неизвестным источником