/// <summary>
        /// Check whether the blendshape already exists
        /// </summary>
        internal bool BlendShapeAlreadyExists(SkinnedMeshRenderer smr, BlendShapeController.BlendShape blendShape)
        {
            var shapeIndex = smr.sharedMesh.GetBlendShapeIndex(blendShape.name);

            //If the shape exists then true
            return(shapeIndex >= 0);
        }
        /// <summary>
        /// Convert a BlendShape to MeshBlendShape, used for storing to character card data
        /// </summary>
        internal MeshBlendShape ConvertToMeshBlendShape(string smrName, BlendShapeController.BlendShape blendShape)
        {
            if (blendShape == null)
            {
                return(null);
            }
            var meshBlendShape = new MeshBlendShape(smrName, blendShape, blendShape.vertexCount);

            return(meshBlendShape);
        }
            public BlendShapeController.BlendShape BlendShape; //Just a single Frame for now, though its possible to have multiple frames

            public MeshBlendShape(string meshName, BlendShapeController.BlendShape blendShape, int vertCount)
            {
                MeshName   = meshName;
                BlendShape = blendShape;
                VertCount  = vertCount;
            }