@Override
    public void read(JmeImporter im) throws IOException {
        super.read(im);
        InputCapsule in = im.getCapsule(this);
        armature = (Armature) in.readSavable("armature", null);

        numberOfJointsParam = (MatParamOverride) in.readSavable("numberOfBonesParam", null);
        jointMatricesParam = (MatParamOverride) in.readSavable("boneMatricesParam", null);

        if (numberOfJointsParam == null) {
            numberOfJointsParam = new MatParamOverride(VarType.Int, "NumberOfBones", null);
            jointMatricesParam = new MatParamOverride(VarType.Matrix4Array, "BoneMatrices", null);
            getSpatial().addMatParamOverride(numberOfJointsParam);
            getSpatial().addMatParamOverride(jointMatricesParam);
        }
    }
De-serialize this Control from the specified importer, for example when
loading from a J3O file.

@param im the importer to read from (not null)
@throws IOException from the importer
jme3-core/src/main/java/com/jme3/anim/SkinningControl.java