static void CreateSpline()
        {
            if (splineStoreData.Data.Count > 2 && splineStoreData.Data[0] && splineStoreData.Data[1] && splineStoreData.Data[2])
            {
                GameObject tangentCtrl = new GameObject(BoneCreation.GetUniqueBoneName("spline_Tangent"));
                Undo.RegisterCreatedObjectUndo(tangentCtrl, "Created splineTangent");
                splineStoreData.Data.Add(tangentCtrl.transform);
                tangentCtrl.transform.parent        = splineStoreData.Data[splineStoreData.Data.Count - 2].transform;
                tangentCtrl.transform.localPosition = Vector3.zero;


                splineStoreData.Data[1].position += splineStoreData.Data[0].position - splineStoreData.Data[2].position;

                splineStoreData.Data[splineStoreData.Data.Count - 1].position += splineStoreData.Data[splineStoreData.Data.Count - 2].position - splineStoreData.Data[splineStoreData.Data.Count - 3].position;

                Transform splineCtrlSwap = splineStoreData.Data[0];
                splineStoreData.Data[0] = splineStoreData.Data[1];
                splineStoreData.Data[1] = splineCtrlSwap;

                SplineControl spline = SplineCreationGroup.AddComponent <SplineControl>();

                spline._splineCTRLS.AddRange(splineStoreData.Data);
                spline.numberBones = Puppet3DEditor.numberSplineJoints;
                spline.Create();

                foreach (Transform ctrl in splineStoreData.Data)
                {
                    if (!ctrl.parent.parent)
                    {
                        ctrl.parent.parent = SplineCreationGroup.transform;
                    }
                }
                GameObject globalCtrl = CreateControls.CreateGlobalControl();
                globalCtrl.GetComponent <GlobalControl>()._SplineControls.Add(spline);
                SplineCreationGroup.transform.parent = globalCtrl.transform;

                globalCtrl.GetComponent <GlobalControl>().InitializeArrays();
                globalCtrl.GetComponent <GlobalControl>().Run();

                Undo.DestroyObjectImmediate(splineStoreData);

                splineStoreData.Data.Clear();



                Bone[] bones = GameObject.FindObjectsOfType <Bone>();
                foreach (Bone bone in bones)
                {
                    if (bone.transform.parent == null)
                    {
                        bone.transform.parent = globalCtrl.transform;
                    }
                }
            }
        }
        public static void BoneFinishCreation()
        {
            Puppet3DEditor.BoneCreation = false;
            EditorPrefs.SetBool("Puppet3D_BoneCreation", false);

            GameObject globalCtrlNew = CreateControls.CreateGlobalControl();


            Bone[] bones = GameObject.FindObjectsOfType <Bone>();
            foreach (Bone bone in bones)
            {
                if (bone.transform.parent == null)
                {
                    bone.transform.parent = globalCtrlNew.transform;
                }
            }
        }