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

Синтаксис описания моделей

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

Индекс Синтаксис Токены Композиция Ресурсы Анимация Валидация Каноническая JSON-модель Руководство

Parser хранит состояние и разделяет вход по whitespace. Компактная строка допустима, но порядок directives определяет текущий layer link и selector mesh.

Минимальное конкретное описание

Model Body.fbx

Anim CritterStateAnim.Unarmed CritterActionAnim.Idle ModelFile Idle

Layer 1
Value 1
Attach Hat.fbx Link Head

Include-шаблон

# TEMPLATE_Humanoid.fo3d
Model %mesh%
Scale* %scale%
# Human.fo3d
Include TEMPLATE_Humanoid.fo3d mesh Human.fbx scale 0.9

Правила синтаксиса

Стабильный ID Правило Требование Причина
model-format.rule.lexical-syntax Разделение по whitespace Directives и arguments разделяются whitespace; # и ; начинают comments; quoting/escaping для paths с spaces отсутствуют. Parser удаляет comments и извлекает tokens строки через istringstream.
model-format.rule.multiple-directives Последовательный разбор Строка может содержать несколько directives; каждая забирает точное число arguments, затем разбор продолжается. Компактные entries допустимы, но order меняет current link или mesh selector последующих modifiers.
model-format.rule.selector-order Порядок selectors После Layer или Value задайте Root, Attach либо AttachParticles до transforms, materials, disables или cuts. Layer и Value выбирают dummy link и очищают Mesh; ранние modifiers отбрасываются.
model-format.rule.template-files Имена templates Basename include-only files начинается с TEMPLATE_; concrete files не используют этот prefix. Templates участвуют в timestamps/parsing, но не выдаются как отдельные resources или metadata sections.
model-format.rule.include-replacements Scope replacements Arguments Include являются pairs name/value и заменяют каждое буквальное %name% до tokenization. Простая текстовая замена не понимает token boundaries; placeholders не должны случайно совпадать.
model-format.rule.relative-paths Владение paths Model, Include, Attach, Cut разрешаются относительно declaring .fo3d; animation files — относительно concrete description, кроме ModelFile; particles/effects глобальны. Перемещение template или description может изменить contributed asset paths.
model-format.rule.zero-identity Ноль — transform identity Нулевые transform и Speed не дают вклада. Варианты +/* инициализируют нулевое поле operand до дальнейших операций. Runtime SetAnimData пропускает нули, а parser accumulation поддерживает самостоятельные template Scale/Speed.
model-format.rule.layer-zero Нулевой layer value неактивен Runtime value 0 не выбирает link; authored Root и Attach требуют ненулевого Value. Composition loop пропускает ноль, baker запрещает links с нулём.
Введите запрос.