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 с нулём. |