@Override
    public Object load(AssetInfo assetInfo) throws IOException {
        this.currentAssetInfo = assetInfo;
        this.assetManager = assetInfo.getManager();
        AssetKey<?> assetKey = assetInfo.getKey();
        if(assetKey instanceof SceneKey)
            animList = ((SceneKey) assetKey).getAnimations();
        InputStream stream = assetInfo.openStream();
        final Node sceneNode = this.sceneNode = new Node(sceneName + "-scene");
        try {
            sceneFilename = assetKey.getName();
            sceneFolderName = assetKey.getFolder();
            String ext = assetKey.getExtension();
            sceneName = sceneFilename.substring(0, sceneFilename.length() - ext.length() - 1);
            if(sceneFolderName != null && sceneFolderName.length() > 0)
                sceneName = sceneName.substring(sceneFolderName.length());
            loadScene(stream);
            linkScene();
            if(warnings.size() > 0)
                logger.log(Level.WARNING, "Model load finished with warnings:\n" + join(warnings, "\n"));
        } finally {
            releaseObjects();
            if(stream != null)
                stream.close();
        }
        return sceneNode;
    }
FBX file format loader
<p> Loads scene meshes, materials, textures, skeleton and skeletal animation.
Multiple animations can be defined with {@link AnimationList} passing into {@link SceneKey}
or loaded from different animation layer.</p>
jme3-plugins/src/fbx/java/com/jme3/scene/plugins/fbx/SceneLoader.java