@Override
    public void cloneFields(Cloner cloner, Object original) {
        super.cloneFields(cloner, original);
        Map<String, AnimClip> clips = new HashMap<>();
        for (String key : animClipMap.keySet()) {
            clips.put(key, cloner.clone(animClipMap.get(key)));
        }
        Map<String, Action> act = new HashMap<>();
        for (String key : actions.keySet()) {
            act.put(key, cloner.clone(actions.get(key)));
        }
        actions = act;
        animClipMap = clips;

        Map<String, AnimLayer> newLayers = new LinkedHashMap<>();
        for (String key : layers.keySet()) {
            newLayers.put(key, cloner.clone(layers.get(key)));
        }
        newLayers.putIfAbsent(DEFAULT_LAYER, new AnimLayer(DEFAULT_LAYER, null));
        layers = newLayers;
    }
Callback from {@link com.jme3.util.clone.Cloner} to convert this
shallow-cloned composer into a deep-cloned one, using the specified
Cloner and original to resolve copied fields.

@param cloner the Cloner that's cloning this composer (not null)
@param original the instance from which this composer was shallow-cloned
(not null, unaffected)
jme3-core/src/main/java/com/jme3/anim/AnimComposer.java