Example #1
0
 public void SaveVMDAnimInfo(XmlElement vmdElem, VMDAnimationController vmdAnimController)
 {
     if (vmdAnimController != null)
     {
         base.SetAttr(vmdElem, "VMDAnimEnabled", vmdAnimController.VMDAnimEnabled);
         if (vmdAnimController.lastLoadedVMD != null)
         {
             vmdElem.SetAttribute("lastLoadedVMD", vmdAnimController.lastLoadedVMD);
         }
         VMDAnimationController.QuickAdjust quickAdjust = vmdAnimController.quickAdjust;
         base.SetAttr(vmdElem, "adjustShoulder", quickAdjust.Shoulder);
         base.SetAttr(vmdElem, "adjustArmUp", quickAdjust.ArmUp);
         base.SetAttr(vmdElem, "adjustArmLow", quickAdjust.ArmLow);
         base.SetAttr(vmdElem, "adjustScaleModel", quickAdjust.ScaleModel);
         base.SetAttrVec3(vmdElem, "centerPos", vmdAnimController.centerBasePos);
         base.SetAttrVec3(vmdElem, "centerPosAdjust", vmdAnimController.centerPosAdjust);
         base.SetAttr(vmdElem, "moveYScaleAdjust", vmdAnimController.moveYScaleAdjust);
         base.SetAttr(vmdElem, "IK.enable", vmdAnimController.enableIK);
         VMDAnimationController.IKWeightData ikweight = vmdAnimController.IKWeight;
         base.SetAttr(vmdElem, "IK.footIKPosWeight", ikweight.footIKPosWeight);
         base.SetAttr(vmdElem, "IK.footIKRotWeight", ikweight.footIKRotWeight);
         base.SetAttr(vmdElem, "IK.disableToeIK", ikweight.disableToeIK);
         base.SetAttr(vmdElem, "IK.lastFrameRefRate", ikweight.lastFrameRefRate);
         base.SetAttr(vmdElem, "IK.onFloor", ikweight.limitIKPositionFloor);
         base.SetAttr(vmdElem, "Anim.speed", vmdAnimController.speed);
         base.SetAttr(vmdElem, "Anim.Loop", vmdAnimController.Loop);
         base.SetAttr(vmdElem, "Face.enable", vmdAnimController.faceController.AnimeEnabled);
         base.SetAttr(vmdElem, "AdjustSkirtBones", vmdAnimController.AdjustSkirtBones);
     }
 }
Example #2
0
 public void ControllerInstallAll()
 {
     foreach (var maid in CharacterMgrPatch.maids)
     {
         VMDAnimationController.Install(maid);
     }
 }
Example #3
0
 private VMDAnimationController GetCurrentController()
 {
     if (focusChara == null)
     {
         return(null);
     }
     return(VMDAnimationController.Install(focusChara));
 }
Example #4
0
        public void ReloadVMD()
        {
            VMDAnimationController currentController = GetCurrentController();

            if (!(currentController == null))
            {
                currentController.ReloadVMDAnimation();
            }
        }
Example #5
0
        public void LoadVMDAnimInfo(XmlElement vmdElem, ObjectCtrlInfo studioChara)
        {
            if (!(studioChara is OCIChar))
            {
                return;
            }
            VMDAnimationController vmdanimationController = VMDAnimationController.Install(((OCIChar)studioChara).charInfo);

            if (vmdanimationController != null)
            {
                string attribute = vmdElem.GetAttribute("lastLoadedVMD");
                if (!string.IsNullOrEmpty(attribute))
                {
                    vmdanimationController.LoadVMDAnimation(attribute, false);
                }
                else
                {
                    vmdanimationController.DeleteAnim();
                    vmdanimationController.lastLoadedVMD = null;
                }
                VMDAnimationController.QuickAdjust quickAdjust = vmdanimationController.quickAdjust;
                quickAdjust.Shoulder   = base.GetAttr(vmdElem, "adjustShoulder", quickAdjust.Shoulder);
                quickAdjust.ArmUp      = base.GetAttr(vmdElem, "adjustArmUp", quickAdjust.ArmUp);
                quickAdjust.ArmLow     = base.GetAttr(vmdElem, "adjustArmLow", quickAdjust.ArmLow);
                quickAdjust.ScaleModel = base.GetAttr(vmdElem, "adjustScaleModel", quickAdjust.ScaleModel);
                vmdanimationController.centerBasePos    = base.GetAttrVec3(vmdElem, "centerPos", vmdanimationController.centerBasePos);
                vmdanimationController.centerPosAdjust  = base.GetAttrVec3(vmdElem, "centerPosAdjust", vmdanimationController.centerPosAdjust);
                vmdanimationController.moveYScaleAdjust = base.GetAttr(vmdElem, "moveYScaleAdjust", vmdanimationController.moveYScaleAdjust);
                vmdanimationController.enableIK         = base.GetAttr(vmdElem, "IK.enable", vmdanimationController.enableIK);
                VMDAnimationController.IKWeightData ikweight = vmdanimationController.IKWeight;
                ikweight.footIKPosWeight      = base.GetAttr(vmdElem, "IK.footIKPosWeight", ikweight.footIKPosWeight);
                ikweight.footIKRotWeight      = base.GetAttr(vmdElem, "IK.footIKRotWeight", ikweight.footIKRotWeight);
                ikweight.disableToeIK         = base.GetAttr(vmdElem, "IK.disableToeIK", ikweight.disableToeIK);
                ikweight.lastFrameRefRate     = base.GetAttr(vmdElem, "IK.lastFrameRefRate", ikweight.lastFrameRefRate);
                ikweight.limitIKPositionFloor = base.GetAttr(vmdElem, "IK.onFloor", ikweight.limitIKPositionFloor);
                vmdanimationController.speed  = base.GetAttr(vmdElem, "Anim.speed", vmdanimationController.speed);
                vmdanimationController.Loop   = base.GetAttr(vmdElem, "Anim.Loop", vmdanimationController.Loop);
                if (vmdanimationController.lastLoadedVMD != null)
                {
                    vmdanimationController.LoadVMDAnimation(vmdanimationController.lastLoadedVMD, false);
                }
                if (base.GetAttr(vmdElem, "VMDAnimEnabled", false))
                {
                    vmdanimationController.VMDAnimEnabled = true;
                }
                else
                {
                    vmdanimationController.VMDAnimEnabled = false;
                }
                vmdanimationController.faceController.AnimeEnabled = base.GetAttr(vmdElem, "Face.enable", vmdanimationController.faceController.AnimeEnabled);
                vmdanimationController.AdjustSkirtBones            = base.GetAttr(vmdElem, "AdjustSkirtBones", false);
            }
        }
Example #6
0
 public void ToggleVMDEnabled()
 {
     if (!(focusChara == null))
     {
         VMDAnimationController vMDAnimationController = VMDAnimationController.Install(focusChara);
         if (vMDAnimationController != null)
         {
             vMDAnimationController.VMDAnimEnabled = !vMDAnimationController.VMDAnimEnabled;
             UpdateUIStatus();
         }
     }
 }
        // Token: 0x0600000B RID: 11 RVA: 0x00002538 File Offset: 0x00000738
        private static XmlElement AddVMDCharaInfoElem(XmlElement root, OCIChar studioChara, ChaControl chara)
        {
            VMDAnimationController vmdanimationController = VMDAnimationController.Install(studioChara.charInfo);

            if (vmdanimationController != null)
            {
                XmlElement xmlElement = root.OwnerDocument.CreateElement("VMDCharaData");
                KKVMDPlayExtSavePlugin.saveLoadForChara.SaveVMDAnimInfo(xmlElement, vmdanimationController);
                root.AppendChild(xmlElement);
                return(xmlElement);
            }
            return(null);
        }
Example #8
0
        public void LoadVMD()
        {
            VMDAnimationController currentController = GetCurrentController();

            if (!(currentController == null))
            {
                string value = uiVMDFileNameInput.value;
                currentController.LoadVMDAnimation(value);
                if (VMDAnimationMgr.Instance.SoundMgr.currentAudioClip != null)
                {
                    VMDAnimationMgr.Instance.SoundMgr.StopBgm();
                    VMDAnimationMgr.Instance.SoundMgr.PlaySound();
                }
            }
        }
        // Token: 0x06000003 RID: 3 RVA: 0x000020C4 File Offset: 0x000002C4
        private IEnumerator LoadDataCo()
        {
            yield return(new WaitForEndOfFrame());

            foreach (ObjectCtrlInfo objectCtrlInfo in Singleton <Studio.Studio> .Instance.dicObjectCtrl.Values)
            {
                if (objectCtrlInfo is OCIChar)
                {
                    VMDAnimationController.Install((objectCtrlInfo as OCIChar).charInfo);
                }
            }
            yield return(new WaitForSeconds(1f));

            KKVMDPlayExtSavePlugin.ExtendedSceneLoadInUpdate();
            yield break;
        }
Example #10
0
 public void UpdateUIStatus()
 {
     if (!(uiPanel == null))
     {
         if (focusChara == null)
         {
             uiMainTable.gameObject.SetActive(false);
             uiNoMaidTable.gameObject.SetActive(true);
         }
         else
         {
             uiMainTable.gameObject.SetActive(true);
             uiNoMaidTable.gameObject.SetActive(false);
             uiMaidNameLabel.text = focusChara.status.lastName + focusChara.status.firstName;
             VMDAnimationController vMDAnimationController = VMDAnimationController.Install(focusChara);
             if (vMDAnimationController != lastController)
             {
                 lastFilename   = vMDAnimationController.lastLoadedVMD;
                 lastController = vMDAnimationController;
             }
             if (lastFilename == null)
             {
                 lastFilename = "";
             }
             if (vMDAnimationController.lastLoadedVMD != null && File.Exists(vMDAnimationController.lastLoadedVMD))
             {
                 string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(vMDAnimationController.lastLoadedVMD);
                 uiVMDNameLabel.text = fileNameWithoutExtension;
             }
             else
             {
                 uiVMDNameLabel.text = "";
             }
             uiVMDEnabledLabel.text = (vMDAnimationController.VMDAnimEnabled ? "ON" : "OFF");
             UIUtils.SetToggleButtonColor(uiVMDEnabledButton, vMDAnimationController.VMDAnimEnabled);
         }
     }
 }
Example #11
0
 public void Clear()
 {
     focusChara     = null;
     lastController = null;
     lastFilename   = null;
 }
Example #12
0
 public VMDAnimationController GetCurrentController()
 {
     return(VMDAnimationController.Install(GameMain.Instance.CharacterMgr.GetMaid(0)));
 }
Example #13
0
        private void DrawVMDAnimationArea()
        {
            //EnsureResourceLoaded();
            //GUI.skin.GetStyle("Button");
            scrollPosition = GUILayout.BeginScrollView(scrollPosition);

            #region Favorites

            GUILayout.BeginHorizontal();

            if (GUILayout.Button("Favorites", gui[100, 25]))
            {
                isFavorites = !isFavorites;
            }
            if (GUILayout.Button("add", gui[50f, 25f]))
            {
                SongMotionUtill.Set(
                    FavoritesName
                    , oggFilename
                    //, VMDAnimationMgr.Instance.controllers.Where(x=> CharacterMgrPatch.maids.Contains(x.maid) ).Select(x => x.lastLoadedVMD).ToArray()
                    , VMDAnimationMgr.Instance.maidcontrollers.Values.Select(x => new SongMotionUtill.motionAndTime(x.lastLoadedVMD, x.timeShiftNow)).ToArray()
                    );
                // MyLog.LogMessage("add", VMDAnimationMgr.Instance.controllers.Count, CharacterMgrPatch.maids.Count, VMDAnimationMgr.Instance.controllers.Where(x => CharacterMgrPatch.maids.Contains(x.maid)).Count() );
                MyLog.LogMessage("add", VMDAnimationMgr.Instance.maidcontrollers.Count, CharacterMgrPatch.maids.Count);
            }
            FavoritesName = GUILayout.TextField(FavoritesName, gui[350, 25]);
            if (GUILayout.Button("reload", gui[50, 25]))
            {
                SongMotionUtill.Deserialize();
            }
            if (GUILayout.Button("chack", gui[50, 25]))
            {
                MyLog.LogMessage("chack", VMDAnimationMgr.Instance.maidcontrollers.Count);
                MyLog.LogMessage("chack", CharacterMgrPatch.maids.Count);
            }
            GUILayout.EndHorizontal();


            if (isFavorites)
            {
                foreach (var item in SongMotionUtill.GetList())
                {
                    GUILayout.BeginHorizontal();
                    if (GUILayout.Button(item.Key, gui[550f, 25f]))
                    {
                        FavoritesName = item.Key;
                        //VMDAnimationMgr.Instance.ControllerInstallAll();
                        VMDAnimationMgr.Instance.ClearAll();
                        if (item.Value.Motions2.Count > 0)
                        {
                            //var v = VMDAnimationMgr.Instance.maidcontrollers.ToList();
                            //var v=VMDAnimationMgr.Instance.controllers.Where(x => CharacterMgrPatch.maids.Contains(x.maid)).ToList();
                            var v = CharacterMgrPatch.maids;
                            for (int i = 0; i < item.Value.Motions2.Count && i < v.Count; i++)
                            {
                                vMDAnimationControllerSub = VMDAnimationController.Install(v[i]);
                                vMDAnimationControllerSub.VMDAnimEnabled = true;
                                vMDAnimationControllerSub.timeShiftNow   = item.Value.Motions2[i].time;
                                vMDAnimationControllerSub.LoadVMDAnimation(item.Value.Motions2[i].motion);
                            }
                            //vMDAnimationController = VMDAnimationController.Install(focusChara);
                            lastFilename = vMDAnimationController.lastLoadedVMD;
                        }
                        oggFilename = item.Value.Song;
                        AudioManager.Load(oggFilename, vMDAnimationController.Loop);

                        //for (int i = 0; i < item.Value.Motions.Count && i < v.Count; i++)
                        //{
                        //    vMDAnimationController.Play();
                        //}
                        VMDAnimationMgr.Instance.PlayAll();
                        AudioManager.Play();

                        isFavorites = false;
                        this.gameObject.SetActive(false);
                    }
                    if (GUILayout.Button("Del", gui[50f, 25f]))
                    {
                        SongMotionUtill.Del(item.Key);
                    }
                    GUILayout.EndHorizontal();
                }
            }

            #endregion

            #region OGG ===========================================

            GUILayout.BeginHorizontal( );

            GUILayout.Label("OGG", gui[50, 25]);

            if (GUILayout.Button("load", gui[50, 25]))
            {
                if (vMDAnimationController != null)
                {
                    AudioManager.Load(oggFilename, vMDAnimationController.Loop);
                }
                else
                {
                    AudioManager.Load(oggFilename, true);
                }
            }
            if (AudioManager.isPlay())
            {
                if (GUILayout.Button("Pause", (GUILayoutOption[])new GUILayoutOption[2] {
                    GUILayout.Width(50f), GUILayout.Height(25f)
                }))
                {
                    AudioManager.Pause();
                }
            }
            else
            {
                if (GUILayout.Button("play", (GUILayoutOption[])new GUILayoutOption[2] {
                    GUILayout.Width(50f), GUILayout.Height(25f)
                }))
                {
                    AudioManager.Play();
                }
            }
            if (oggFilename == null)
            {
                oggFilename = string.Empty;
            }
            oggFilename = GUILayout.TextField(oggFilename, gui[350, 25]);
            if (GUILayout.Button("...", gui[30, 25]))
            {
                dialog.Filter = "OGG files (*.ogg)|*.ogg|WAV files (*.wav)|*.wav";

                if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    // 음악은 상대경로가 안먹힌다?
                    oggFilename = MyUtill.EvaluateRelativePath(Environment.CurrentDirectory, dialog.FileName);
                    if (vMDAnimationController != null)
                    {
                        AudioManager.Load(oggFilename, vMDAnimationController.Loop);
                    }
                    else
                    {
                        AudioManager.Load(oggFilename, true);
                    }
                    AudioManager.Play();
                }
            }
            GUILayout.EndHorizontal();

            #endregion =================================



            if (focusChara == null)
            {
                GUILayout.BeginHorizontal( );
                GUILayout.Label("Character not selected.", (GUILayoutOption[])new GUILayoutOption[1]
                {
                    GUILayout.Width(200f)
                });
                //GUILayout.Space(50f);
                if (GUILayout.Button("Close", gui[50f, 25f]))
                {
                    this.gameObject.SetActive(false);
                }
                GUILayout.EndHorizontal();
            }
            else
            {
                vMDAnimationController = VMDAnimationController.Install(focusChara);
                if (!(vMDAnimationController == null) && focusChara != null)
                {
                    GUILayout.BeginVertical();
                    if (vMDAnimationController != lastController)
                    {
                        lastFilename   = vMDAnimationController.lastLoadedVMD;
                        lastController = vMDAnimationController;
                        timeShiftNow   = vMDAnimationController.timeShiftNow;
                    }
                    if (lastFilename == null)
                    {
                        lastFilename = "";
                    }

                    #region Maid Select

                    GUILayout.BeginHorizontal( );

                    if (GUILayout.Button("<", gui[20f, 25f]))
                    {
                        focusChara = FindPrevNextMaid(false);
                    }
                    if (GUILayout.Button(">", gui[20f, 25f]))
                    {
                        focusChara = FindPrevNextMaid(true);
                    }
                    if (GUILayout.Button(vMDAnimationController.VMDAnimEnabled ? "On" : "Off", gui[50f, 25f]))
                    {
                        vMDAnimationController.VMDAnimEnabled = !vMDAnimationController.VMDAnimEnabled;
                        //isFavorites = vMDAnimationController.VMDAnimEnabled;
                    }
                    GUILayout.Label((focusChara.status.fullNameJpStyle), (GUILayoutOption[])new GUILayoutOption[1]
                    {
                        GUILayout.Width(200f)
                    });

                    /*
                     * if (vMDAnimationController.VMDAnimEnabled)
                     * {
                     *  GUILayout.Space(50f);
                     *  if (vMDAnimationController.lastLoadedVMD != null && File.Exists(vMDAnimationController.lastLoadedVMD))
                     *  {
                     *      GUILayout.Label(Path.GetFileNameWithoutExtension(vMDAnimationController.lastLoadedVMD),  );
                     *  }
                     * }
                     */
                    GUILayout.Space(50f);
                    if (GUILayout.Button("Close", gui[50f, 25f]))
                    {
                        this.gameObject.SetActive(false);
                    }
                    //GUILayout.Space(50f);

                    GUILayout.EndHorizontal();

                    #endregion

                    if (vMDAnimationController.VMDAnimEnabled)
                    {
                        #region VMD =====================================================================

                        GUILayout.BeginHorizontal( );
                        GUILayout.Label("VMD", (GUILayoutOption[])new GUILayoutOption[2] {
                            GUILayout.Width(50f), GUILayout.Height(25f)
                        });
                        if (GUILayout.Button("Load", (GUILayoutOption[])new GUILayoutOption[2] {
                            GUILayout.Width(50f), GUILayout.Height(25f)
                        }))
                        {
                            vMDAnimationController.LoadVMDAnimation(lastFilename, true);
                        }
                        if (GUILayout.Button("Reload", gui[50f, 25f]))
                        {
                            vMDAnimationController.ReloadVMDAnimation();
                            lastFilename = vMDAnimationController.lastLoadedVMD;
                        }
                        if (lastFilename == null)
                        {
                            lastFilename = string.Empty;
                        }
                        lastFilename = GUILayout.TextField(lastFilename, gui[350f, 25f]);
                        if (GUILayout.Button("...", gui[30f, 25f]))
                        {
                            //System.Windows.Forms.OpenFileDialog dialog = new System.Windows.Forms.OpenFileDialog();
                            dialog.Filter = "VMD files (*.vmd)|*.vmd";

                            if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                            {
                                lastFilename = MyUtill.EvaluateRelativePath(Environment.CurrentDirectory, dialog.FileName);
                                vMDAnimationController.LoadVMDAnimation(lastFilename);
                                vMDAnimationController.Play();
                            }
                        }
                        if (GUILayout.Button("All apply", gui[60, 25f]))
                        {
                            VMDAnimationMgr.Instance.ClearAll();
                            foreach (var item in  CharacterMgrPatch.maids)
                            {
                                vMDAnimationControllerSub = VMDAnimationController.Install(item);
                                vMDAnimationControllerSub.VMDAnimEnabled = true;
                                vMDAnimationControllerSub.LoadVMDAnimation(lastFilename);
                            }
                            //vMDAnimationController = VMDAnimationController.Install(focusChara);
                            VMDAnimationMgr.Instance.PlayAll();
                        }
                        GUILayout.EndHorizontal();

                        #endregion

                        #region play

                        GUILayout.BeginHorizontal( );
                        GUILayout.Label("(Player)", gui[50f, 25f]);
                        if (GUILayout.Button("Play", gui[50f, 25f]))
                        {
                            vMDAnimationController.Play();
                            AudioManager.Play(vMDAnimationController.Loop);
                            this.gameObject.SetActive(false);
                        }
                        if (GUILayout.Button("Pause", gui[50f, 25f]))
                        {
                            vMDAnimationController.Pause();
                            AudioManager.Pause(vMDAnimationController.Loop);
                        }
                        if (GUILayout.Button("Stop", gui[50f, 25f]))
                        {
                            vMDAnimationController.Stop();
                            AudioManager.Stop();
                        }
                        GUILayout.Space(30f);
                        GUILayout.Label("(All)", gui[GUILayoutOptionUtill.Type.Width, 50f]);
                        if (GUILayout.Button("Play", gui[50f, 25f]))
                        {
                            VMDAnimationMgr.Instance.PlayAll();
                            AudioManager.Play();
                            this.gameObject.SetActive(false);
                        }
                        if (GUILayout.Button("Pause", gui[50f, 25f]))
                        {
                            VMDAnimationMgr.Instance.PauseAll();
                            AudioManager.Pause(vMDAnimationController.Loop);
                        }
                        if (GUILayout.Button("Stop", gui[50f, 25f]))
                        {
                            VMDAnimationMgr.Instance.StopAll();
                            AudioManager.Stop();
                        }
                        GUILayout.EndHorizontal();

                        #endregion

                        #region option

                        #region time shift

                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Sync Anm to BGM", gui[GUILayoutOptionUtill.Type.Width, 120f]);
                        if (GUILayout.Button(vMDAnimationController.SyncToBGM ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f]))
                        {
                            vMDAnimationController.SyncToBGM = !vMDAnimationController.SyncToBGM;
                        }

                        /*GUILayout.Space(30f);
                         *                      GUILayout.Label("Sync BGM to Anm", (GUILayoutOption[])new GUILayoutOption[1]
                         *                      {
                         *                                      GUILayout.Width(120f)
                         *                      });
                         *                      if (GUILayout.Button(vMDAnimationController.SyncToAnim ? "On" : "Off", (GUILayoutOption[])new GUILayoutOption[1]
                         *                      {
                         *                                      GUILayout.Width(40f)
                         *                      }))
                         *                      {
                         *                              vMDAnimationController.SyncToAnim = !vMDAnimationController.SyncToAnim;
                         *                      }*/

                        GUILayout.EndHorizontal();

                        GUILayout.BeginHorizontal();

                        //                    GUILayout.Label("time shift");

                        //                  timeShiftNow_s = GUILayout.TextField(timeShiftNow.ToString(), gui[GUILayoutOptionUtill.Type.Width, 40]);

                        //                      GUILayout.Label("min");

                        //timeShiftNow= GUILayout.HorizontalSlider(timeShiftNow, timeShiftMin, timeShiftMax, gui[GUILayoutOptionUtill.Type.Width, 80]);
                        vMDAnimationController.timeShiftNow = AddSliderWithTextFixedScale("time shift", vMDAnimationController.timeShiftNow, timeShiftMin, timeShiftMax);
                        //sizeMultiplier = EditorGUILayout.FloatField("Increase scale by:", sizeMultiplier);


                        if (!float.TryParse(GUILayout.TextField(timeShiftMin.ToString("0.00"), gui[GUILayoutOptionUtill.Type.Width, 60]), out timeShiftMin))
                        {
                            timeShiftMin = -60;
                        }

                        if (!float.TryParse(GUILayout.TextField(timeShiftMax.ToString("0.00"), gui[GUILayoutOptionUtill.Type.Width, 60]), out timeShiftMax))
                        {
                            timeShiftMax = 60;
                        }

//                        GUILayout.Label("max");

                        //if (GUI.changed)
                        //{
                        //    if (!float.TryParse(timeShiftNow_s, out timeShiftNow)) timeShiftNow = 0;
                        //    if (!float.TryParse(timeShiftMin_s, out timeShiftMin)) timeShiftMin = -60;
                        //    if (!float.TryParse(timeShiftMax_s, out timeShiftMax)) timeShiftMax =  60;
                        //
                        //    vMDAnimationController.timeShiftNow = timeShiftNow;
                        //
                        //}
                        if (GUILayout.Button("All apply", gui[60, 25f]))
                        {
                            foreach (var item in CharacterMgrPatch.maids)
                            {
                                vMDAnimationControllerSub = VMDAnimationController.Install(item);
                                vMDAnimationControllerSub.timeShiftNow = vMDAnimationController.timeShiftNow;
                            }
                        }
                        GUILayout.FlexibleSpace();
                        //vMDAnimationController = VMDAnimationController.Install(focusChara);

                        GUILayout.EndHorizontal();

                        #endregion



                        GUILayout.BeginHorizontal( );
                        vMDAnimationController.speed = AddSliderWithText("vmdAnimSpeed", "Speed", vMDAnimationController.speed, 5f);
                        GUILayout.EndHorizontal();


                        GUILayout.BeginHorizontal( );
                        GUILayout.Label("Loop", gui[GUILayoutOptionUtill.Type.Width, 40f]);
                        if (GUILayout.Button(vMDAnimationController.Loop ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f]))
                        {
                            vMDAnimationController.Loop = !vMDAnimationController.Loop;
                            AudioManager.SetLoop(vMDAnimationController.Loop);
                        }
                        GUILayout.Space(20f);
                        GUILayout.Label("Face", gui[GUILayoutOptionUtill.Type.Width, 40f]);
                        if (GUILayout.Button(vMDAnimationController.faceAnimeEnabled ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f]))
                        {
                            vMDAnimationController.faceAnimeEnabled = !vMDAnimationController.faceAnimeEnabled;
                        }
                        GUILayout.Space(10f);
                        GUILayout.Label("IK (foot)", gui[GUILayoutOptionUtill.Type.Width, 60f]);
                        if (GUILayout.Button(vMDAnimationController.enableIK ? "On" : "Off", gui[GUILayoutOptionUtill.Type.Width, 40f]))
                        {
                            vMDAnimationController.enableIK = !vMDAnimationController.enableIK;
                        }
                        GUILayout.Space(10f);
                        if (vMDAnimationController.enableIK)
                        {
                            GUILayout.Label("IK (toe)", gui[GUILayoutOptionUtill.Type.Width, 60f]);
                            if (GUILayout.Button(vMDAnimationController.IKWeight.disableToeIK ? "Off" : "On", gui[GUILayoutOptionUtill.Type.Width, 40f]))
                            {
                                vMDAnimationController.IKWeight.disableToeIK = !vMDAnimationController.IKWeight.disableToeIK;
                            }
                        }

                        /*GUILayout.Space(10f);
                         *                      GUILayout.Label("IK(Head)", (GUILayoutOption[])new GUILayoutOption[1]
                         *                      {
                         *                                      GUILayout.Width(60f)
                         *                      });
                         *                      if (GUILayout.Button(vMDAnimationController.enableHeadRotate ? "On" : "Off", (GUILayoutOption[])new GUILayoutOption[1]
                         *                      {
                         *                                      GUILayout.Width(40f)
                         *                      }))
                         *                      {
                         *                              vMDAnimationController.enableHeadRotate = !vMDAnimationController.enableHeadRotate;
                         *                      }*/
                        GUILayout.EndHorizontal();



                        if (vMDAnimationController.enableIK)
                        {
                            GUILayout.BeginHorizontal( );
                            vMDAnimationController.IKWeight.footIKPosWeight = AddSliderWithText("vmdIKFootPosWeight", "IK Weight(pos)", vMDAnimationController.IKWeight.footIKPosWeight, 1f);
                            GUILayout.EndHorizontal();
                            GUILayout.BeginHorizontal( );
                            vMDAnimationController.IKWeight.footIKRotWeight = AddSliderWithText("vmdIKFootRotWeight", "IK Weight(rot)", vMDAnimationController.IKWeight.footIKRotWeight, 1f);
                            GUILayout.EndHorizontal();
                        }
                        GUILayout.BeginHorizontal( );
                        GUILayout.Label("Config: (needs Reload): ", gui[GUILayoutOptionUtill.Type.Width, 150f]);
                        GUILayout.EndHorizontal();
                        GUILayout.BeginHorizontal( );
                        float num = AddSliderWithText("vmdCenterYPos", "(PMD)Center pos(y)", vMDAnimationController.centerBasePos.y, 15f);
                        if (num != vMDAnimationController.centerBasePos.y)
                        {
                            vMDAnimationController.centerBasePos.y = num;
                            //vMDAnimationController.centerBasePos = new Vector3(0f, num, 0f);
                        }
                        GUILayout.EndHorizontal();
                        GUILayout.BeginHorizontal( );
                        float num2 = AddSliderWithTextFixedScale("(PMD)Hip pos(y)", vMDAnimationController.hipPositionAdjust.y, 1f, 6f);
                        if (num2 != vMDAnimationController.hipPositionAdjust.y)
                        {
                            vMDAnimationController.hipPositionAdjust.y = num2;
                            //vMDAnimationController.hipPositionAdjust = new Vector3(0f, num2, 0f);
                        }
                        GUILayout.EndHorizontal();
                        GUILayout.BeginHorizontal( );
                        float num3 = AddSliderWithText("vmdModelScale", "Model Scale", vMDAnimationController.quickAdjust.ScaleModel, 2f);
                        if (num3 != vMDAnimationController.quickAdjust.ScaleModel)
                        {
                            vMDAnimationController.quickAdjust.ScaleModel = num3;
                        }
                        GUILayout.EndHorizontal();
                        GUILayout.BeginHorizontal( );
                        vMDAnimationController.quickAdjust.Shoulder = AddSliderWithTextFixedScale("Shoulder Tilt", vMDAnimationController.quickAdjust.Shoulder, -10f, 40f);
                        GUILayout.EndHorizontal();
                        GUILayout.BeginHorizontal( );
                        vMDAnimationController.quickAdjust.ArmUp = AddSliderWithTextFixedScale("Upper Arm Tilt", vMDAnimationController.quickAdjust.ArmUp, -10f, 40f);
                        GUILayout.EndHorizontal();
                        GUILayout.BeginHorizontal( );
                        vMDAnimationController.quickAdjust.ArmLow = AddSliderWithTextFixedScale("Lower Arm Tilt", vMDAnimationController.quickAdjust.ArmLow, -10f, 40f);
                        GUILayout.EndHorizontal();
                        //GUILayout.Label("Other Config", (GUILayoutOption[])new GUILayoutOption[1]
                        //{
                        //	GUILayout.Width(150f)
                        //});
                        //GUILayout.BeginHorizontal( );
                        //vMDAnimationController.BgmVolume = AddSliderWithTextFixedScale("BGM volume", vMDAnimationController.BgmVolume, 0f, 1f);
                        //GUILayout.EndHorizontal();

                        #endregion
                    }

                    GUILayout.EndVertical();
                }
            }

            GUILayout.EndScrollView();
        }