The issue is that while the target node changes it’s location following rig animation, original mesh retains its “rest position”.
Camera checks visibility of the object by its rest position, unaffected by animation.
Also, Babylon creates 2 items with the same name for original gltf mesh-node: a mesh and a transformnode.
Neither of them are affected by animations.
Camera only checks the ‘Mesh’ item.
To satisfy this requirement from glTF, the glTF loader loads the skinned mesh without its own transform and parents the skinned mesh as a sibling of the skeleton root node. For the CesiumMan model, this is at the same location, but for other cases, it might not be in the same location in the scene hierarchy. Furthermore, the skinned mesh is allowed to have child nodes that have meshes or additional hierarchies. Thus, in additional to creating a skinned mesh, the glTF loader also creates a node that represents the glTF node with the skinned mesh, in case this node is animated or has additional child nodes.
So, it seems like the asset is loaded quite correctly, and the mesh aerobatic_plane.2 is parented to the root bone root.4.
Maybe, the issue is that in this particular asset, motion of the whole object affects not root bone, but its ancestor body_joint.5, while root bone/node stays still. This is somewhat strange rigging, but im not an expert.
@bghgary it seems like you’ve been working on the skinning/parenting stuff back in 2018, and you’re indeed an expert. Could you please clarify, if there’s an issue with the asset, or with camera, or there’s some better way to make such tracking work?