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

Контракт запекания изображений

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

Индекс Форматы FOFRM Параметры Запекание Runtime Проверка Канонический JSON Руководство
Стабильный ID Правило Требование Причина Источник
image-format.baking.discovery Scan и targeted modes Пустая цель сканирует каждое зарегистрированное расширение; отсутствующий, неподдерживаемый или пропущенный BakeChecker targeted path завершается без выхода. Incremental build проекта и перезапекание одного файла используют один baker, не считая пропущенную цель ошибкой. Source/Tools/ImageBaker.cpp
image-format.baking.extension-case Диспетчеризация расширения без учёта регистра Lookup расширений source и runtime использует get_file_extension(), который возвращает расширение без точки и в нижнем регистре. Расширения в смешанном регистре разрешаются одним зарегистрированным loader, хотя проекты всё равно должны использовать канонические lowercase paths. Source/Tools/ImageBaker.cpp, Source/Essentials/StringUtils.h
image-format.baking.source-options Диспетчеризация параметров после $ LoadAny удаляет из физического имени текст после $, передаёт suffix выбранному loader и разрешает источник внутри того же FileCollection. Один исходный файл может давать выбранные или преобразованные варианты через ссылки FOFRM без дублирования binaries. Source/Tools/ImageBaker.cpp
image-format.baking.output-path Путь выхода и NewName Запечённый ресурс обычно сохраняет исходный путь; loader может задать NewName, который заменит путь выхода для legacy-нормализации. Нормализация critter FRM/FRx и агрегация разделённых направлений требуют детерминированно переименованных ресурсов. Source/Tools/ImageBaker.cpp
image-format.baking.container-header Заголовок частного контейнера Частный baked stream начинается с magic SpriteResource 43 и version 2, затем содержит uint16 числа кадров, uint16 полных animation ticks и uint8 числа направлений, а заканчивается magic 43. Общий decoder SpriteResource проверяет версионированное обрамление до потребления pixels или mesh-данных клиентом либо tool. Source/Common/SpriteResource.h, Source/Common/SpriteResource.cpp
image-format.baking.direction-record Записи направлений Каждое из одного или GameSettings::MAP_DIR_COUNT направлений хранит ровно общее число кадров; разрешённый logical root offset сериализуется в каждом конкретном кадре после mesh padding и crop. Per-frame offsets сохраняют экранное размещение, когда polygon geometry независимо меняет сериализованный canvas каждого направления и кадра анимации. Source/Tools/ImageBaker.cpp
image-format.baking.frame-record Concrete и shared frame records Каждый кадр начинается с shared flag; concrete record хранит знаковый int16 draw offset, uint16 обрезанных размеров, знаковые int16 NextX/NextY, точные RGBA8 pixels, mesh kind, а для Mesh — vertices/indices, logical source size и origin. Shared record хранит индекс одного более раннего кадра. Record сохраняет логическое размещение и координаты освещения, устраняя прозрачные texture rows и отправляя indexed silhouettes; повторные кадры переиспользуют исходный payload. Source/Tools/ImageBaker.cpp
image-format.baking.sprite-info-index Индекс SpriteInfo каждого pack Запекание изображений поддерживает SpriteInfo/<PackName>.foinfo версии 1 с duration, direction, frame bounds, offsets и metadata shared frame каждого актуального image source в resource pack. Общий EngineMetadata отвечает на запросы 2D-анимации server/client без декодирования RGBA payload; потеря или появление агрегированного индекса требует полной перезапечки. Source/Tools/ImageBaker.cpp, Source/Common/AnimationInfo.cpp
image-format.baking.sprite-mesh Необязательный polygonal sprite mesh Разрешайте и проверяйте всю группу settings SpriteMesh при каждом image bake, в том числе когда SpriteMesh.Enabled равен false: AlphaThreshold находится в 0..254, MaxTriangles положителен, а AreaSavingsWeight конечен и неотрицателен. При включении стройте детерминированные alpha-thresholded candidates в пределах triangle budget, оценивайте saved original-frame area относительно submitted triangles, оставляйте только проверенное покрытие, обрезайте выбранные mesh canvases точно по geometry bounds и сохраняйте logical root через сериализованный frame offset. Opt-in путь уменьшает transparent overdraw и texture area без обрезания видимых pixels или изменения gameplay placement; небезопасные/невыгодные кандидаты остаются quads, пустые masks — явной пустой geometry. Source/Common/Settings.inc, Source/Tools/SpriteMeshing.cpp, Source/Tools/ImageBaker.cpp
image-format.baking.error-aggregation Работа каждого файла и агрегированный отказ Выбранные файлы запекаются асинхронно; каждое исключение журналируется, а ненулевое число ошибок завершает Image baker исключением ImageBakerException. Полный scan сообщает обо всех независимо сломанных image resources за один запуск и не завершается молча. Source/Tools/ImageBaker.cpp
Введите запрос.