@Override
        public void visit(Spatial spatial) {
            SkeletonControl control = spatial.getControl(SkeletonControl.class);
            if (control != null) {
                Armature armature = skeletonArmatureMap.get(control.getSkeleton());
                SkinningControl skinningControl = new SkinningControl(armature);
                Map<String, List<Spatial>> attachedSpatials = new HashMap<>();
                for (int i = 0; i < control.getSkeleton().getBoneCount(); i++) {
                    Bone b = control.getSkeleton().getBone(i);
                    Node n = control.getAttachmentsNode(b.getName());
                    n.removeFromParent();
                    if (!n.getChildren().isEmpty()) {
                        attachedSpatials.put(b.getName(), n.getChildren());
                    }
                }
                spatial.removeControl(control);
                spatial.addControl(skinningControl);
                for (String name : attachedSpatials.keySet()) {
                    List<Spatial> spatials = attachedSpatials.get(name);
                    for (Spatial child : spatials) {
                        skinningControl.getAttachmentsNode(name).attachChild(child);
                    }
                }

            }
        }
A private constructor to inhibit instantiation of this class.
jme3-core/src/main/java/com/jme3/anim/util/AnimMigrationUtils.java