FOnline Engine
Current master GitHub
Documentation Docs/en/reference/model-format/assets.md

Model Assets And Limits

Generated reference. Do not edit directly. Update BuildTools/ModelFormatInterface.json, then run python BuildTools/docs_model_format.py --write.

Index Syntax Tokens Composition Assets Animation Validation Canonical JSON Guide

ModelMeshBaker bakes mesh sources before ModelInfoBaker validates and serializes concrete .fo3d descriptions.

Asset inputs

Stable ID Asset Extensions Purpose Requirements Source
model-format.asset.fbx FBX mesh .fbx Imports the drawable hierarchy, material texture names, and skin data for the mesh payload, while ModelSourceLoader extracts the source skeleton and animation clips that ModelInfoBaker converts into the required runtime rig. faces must be triangulatable and the imported face count must agree with the generated triangle count
skin clusters must fit FO_MODEL_MAX_BONES
mesh skin references must resolve against the physical mesh hierarchy
source skeletons and clips must pass finite-value, hierarchy, count, key, and compatibility validation before conversion
Source/Tools/ModelMeshBaker.cpp, Source/Tools/ModelSourceLoader.cpp
model-format.asset.obj OBJ mesh .obj Imports a static hierarchy and drawable mesh through the same ufbx path; missing vertex attributes receive deterministic defaults. the file must contain at least one drawable mesh for use as a concrete model
OBJ is suitable for static attachments and cut volumes, not authored skeletal animation stacks
Source/Tools/ModelMeshBaker.cpp, Source/Tests/Test_ModelBaker.cpp
model-format.asset.description Model description .fo3d Composes a primary baked mesh with layer-selected root modifiers, child models, particles, materials, effects, cuts, and animation mappings. every concrete description must resolve a Model directive
files whose basename starts with TEMPLATE_ are include-only and are not emitted as models
Source/Tools/ModelInfoBaker.cpp
model-format.asset.texture Model texture .png, .tga, .dds Default diffuse textures and explicit non-Parent Texture values resolve relative to the owning baked mesh file. every imported default diffuse texture must exist in baked resources
an explicit texture target mesh must be drawable
Source/Tools/ModelInfoBaker.cpp, Source/Client/ModelHierarchy.cpp
model-format.asset.effect Model effect .fofx An explicit non-Parent Effect value is a baked-resource path loaded for EffectUsage::Model. the effect resource must exist
an explicit effect target mesh must be drawable
Source/Tools/ModelInfoBaker.cpp, Source/Client/ModelHierarchy.cpp
model-format.asset.particle Particle attachment .spk, .efk A layer-selected AttachParticles entry instantiates a baked SPARK or Effekseer particle resource on a model bone while that layer value remains active. the particle resource must exist in baked resources
reference the baked .spk or .efk path, not its .spark or .efkproj authoring source
author a non-empty Link bone; runtime particle creation requires it
Source/Tools/ModelInfoBaker.cpp, Source/Client/ModelInstance.cpp

Compile-time limits

Stable ID Project option Runtime constant Default Meaning
model-format.limit.layers FO_MODEL_LAYERS_COUNT MODEL_LAYERS_COUNT 30 Number of layer slots in every model-layer array and the exclusive upper bound for Layer, DisableLayer, AnimLayerValue, and Cut layer indices.
model-format.limit.textures FO_MODEL_MAX_TEXTURES MODEL_MAX_TEXTURES 8 Number of texture slots available to each mesh and the exclusive upper bound for Texture indices.
model-format.limit.bones FO_MODEL_MAX_BONES MODEL_MAX_BONES 54 Maximum number of skin-bone matrices that one combined draw batch can carry.
model-format.limit.bones-per-vertex FO_MODEL_BONES_PER_VERTEX MODEL_BONES_PER_VERTEX 4 Maximum number of imported skin influences retained per vertex before weights are normalized.

The defaults above come from the generated project-interface contract. A project may override them, but client binaries, baked resources, model layer properties, shaders, and packaged content must agree.

Start typing to search.