Skip to main content
Формат RSI (Robust Station Image) предназначен для гибкого, открытого и читаемого способа определения иконок внутри спрайт-листов, аналогично формату BYOND .dmi. RSI считается «иконкой» и может содержать «состояния» (states), которые являются подразделами этой главной иконки. Эти состояния могут определять пользовательские флаги, анимации и направленные иконки «из коробки». RSI — это папка с именем, оканчивающимся на .rsi, которая содержит meta.json и один или несколько PNG-файлов в соответствии с именами состояний. Метаданные изображения (что определяет состояния, анимации и т.д.) хранятся в файле meta.json в формате JSON. Фактические спрайты хранятся в спрайт-листах в виде PNG-файлов в папке. Каждому уникальному состоянию соответствует спрайт-лист с тем же именем.

JSON

Корень JSON-файла содержит следующие значения:

Состояния

Состояние — это контейнер для метаданных определённого спрайт-листа. Они хранят данные, связанные с их спрайт-листом, такие как задержки анимации и направления. Состояние имеет сопровождающий спрайт-лист. Состояния имеют одно поле, которое можно использовать для их различения: Состояния не могут иметь одинаковое идентифицирующее значение. Два состояния с одинаковым именем не могут существовать. Помимо идентификатора, состояние имеет три других поля, связанных с фактическими спрайтами, отображаемыми в игре: Состояния всегда упорядочены по алфавиту по соответствующему имени файла.

Направления

В настоящее время поддерживаются три типа направлений: 1 (без направлений), 4 (Север Юг Запад Восток) и 8 (Север Юг Запад Восток плюс диагонали). Эти направления упорядочены (для компоновки в поле delays и порядка в спрайт-листе) в следующем порядке:
  • Юг
  • Север
  • Восток
  • Запад
  • Юго-Восток
  • Юго-Запад
  • Северо-Восток
  • Северо-Запад

Спрайт-лист

PNG-файл, сопровождающий состояние, всегда называется именем состояния. Например, состояние с именем “hello” будет файлом hello.png на диске. Файл содержит отдельные состояния, разрешённые с помощью направлений и задержек состояния. Размер файла всегда кратен size RSI. Спрайты упорядочиваются сверху слева направо вниз, всегда сначала по горизонтали. Количество спрайтов в строке или столбце всегда делается максимально равным, при этом строки предпочтительно длиннее столбцов, если количество состояний не делится идеально. Спрайты записываются сгруппированными по направлениям, затем записывается каждая иконка в направлении по порядку. Таким образом, для 4 направлений сначала записываются ВСЕ южные состояния, затем северные и т.д.

Пример JSON

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

Параметры загрузки

Ключ load позволяет задавать различные параметры загрузки, которые изменяют то, как движок загружает спрайт. Ключи следующие:

Цели дизайна

  • Редактирование RSI должно быть возможно без специальных инструментов. Это означает отсутствие бинарных метаданных или метаданных внутри PNG-файлов.
  • Оно должно легко поддаваться сравнению (diff) на GitHub.
  • Оно не должно слишком сильно раздувать историю Git при внесении изменений (предотвращать большие перезаписи файлов).
  • Один PNG — одно изображение.
Последнее изменение 21 июня 2026 г.