FOnline Engine
Current master GitHub
Документация Docs/ru/reference/image-format/fofrm.md

Справочник descriptor FOFRM

Сгенерированный справочник. Не редактируйте его напрямую. Обновите BuildTools/ImageFormatInterface.json, затем выполните python BuildTools/docs_image_format.py --write.

Индекс Форматы FOFRM Параметры Запекание Runtime Проверка Канонический JSON Руководство

FOFRM является авторским слоем композиции статических изображений, анимаций, наборов направлений и импортированных legacy-источников. Ссылки задаются относительно каталога descriptor.

Стабильный ID Поле/правило Требование Причина Источник
image-format.field.fps fps / Fps FOFRM сначала читает lowercase fps, затем legacy Fps; ноль создаёт непроигрываемый sheet, а production-значения анимации также должны сохранять положительную полную длительность кадра. Авторские count и fps определяют AnimTicks всего sheet, а runtime playback делит эту длительность на расплющенное число кадров. Source/Tools/ImageBaker.cpp
image-format.field.count count / Count Count задаёт число ссылок descriptor в каждом направлении, по умолчанию равен единице и должен быть положительным; он не обязательно совпадает с итоговым числом кадров после flattening. Каждый источник по ссылке сам может содержать несколько кадров. Source/Tools/ImageBaker.cpp
image-format.field.sequence-offset offs_x / offs_y и OffsetX / OffsetY Sequence offsets являются знаковыми и могут задаваться в корне или каждом разделе направления; явно задавайте оба значения в каждом направлении, потому что пропущенные значения переносятся дальше. Parser повторно использует текущие переменные ox/oy, а не сбрасывает их для каждого направления. Source/Tools/ImageBaker.cpp
image-format.field.effect effect / Effect Parser принимает effect/Effect в FrameCollection.EffectName для совместимости, но ImageBaker не сериализует и не применяет его, а штатный runtime никогда не выбирает effect из этого поля. Авторы не должны считать разобранное, но неиспользуемое поле частью render-контракта. Source/Tools/ImageBaker.cpp, Source/Tools/ImageBaker.h
image-format.field.direction-section [dir_N] / [Dir_N] Descriptor либо однонаправленный, либо предоставляет каждое направление карты Engine; частичные наборы направлений и последующие разрывы отклоняются. SpriteSheet принимает ровно одно направление или GameSettings::MAP_DIR_COUNT направлений. Source/Tools/ImageBaker.cpp, Source/Client/DefaultSprites.cpp
image-format.field.frame-reference frm / Frm и frm_N / Frm_N Каждый авторский slot descriptor разрешает один относительный путь изображения; только slot ноль также принимает ненумерованный alias frm/Frm. Ссылки объединяются с каталогом descriptor и затем диспетчеризируются по расширению ресурса. Source/Tools/ImageBaker.cpp
image-format.field.frame-delta next_x_N / next_y_N и NextX_N / NextY_N Дельты кадров descriptor прибавляются к импортированным NextX/NextY каждого расплющенного дочернего кадра. Так сохраняется смещение исходного формата и одновременно допускается авторская корректировка композиции. Source/Tools/ImageBaker.cpp
image-format.field.flattening Flattening вложенной последовательности FOFRM добавляет последовательность Main каждого дочернего ресурса; наборы направлений и sequence offsets ребёнка не компонуются, а все авторские направления родителя должны давать одинаковое итоговое число кадров после flattening. Merge loop копирует только child frames Main и проверяет каждое последующее направление по collection.SequenceSize. Source/Tools/ImageBaker.cpp
image-format.field.timing Timing всей последовательности FOFRM FOFRM вычисляет длительность всей последовательности по авторскому count descriptor, а не по расплющенному числу дочерних кадров; нулевой fps даёт нулевые ticks. Поэтому вложенные анимированные ссылки могут изменить эффективный темп кадров, если автор не учёл flattening. Source/Tools/ImageBaker.cpp
Введите запрос.