Example #1
0
        public void Update()
        {
            //PluginHelper.LineClear();
            PluginHelper.DebugClear();
            // テンプレートキャッシュを消去して、再読み込みを促す
            if (Input.GetKey(KeyCode.F12))
            {
                FaceScriptTemplates.Clear();
                SliderTemplates.Clear();
            }
            SliderTemplates.Update(PluginName);

            // エディット画面にいる場合は特別処理として毎フレームアップデートを行う
            if (SceneManager.GetActiveScene().name == "SceneEdit")
            {
                if (GameMain.Instance != null && GameMain.Instance.CharacterMgr != null)
                {
                    CharacterMgr cm = GameMain.Instance.CharacterMgr;
                    for (int i = 0, n = cm.GetStockMaidCount(); i < n; i++)
                    {
                        EditSceneMaidUpdate(cm.GetStockMaid(i));
                    }
                }
            }
        }
        public void Update()
        {
            //PluginHelper.LineClear();
            PluginHelper.DebugClear();
            // テンプレートキャッシュを消去して、再読み込みを促す
            if (Input.GetKey(KeyCode.F12))
            {
                FaceScriptTemplates.Clear();
                SliderTemplates.Clear();
            }
            SliderTemplates.Update(PluginName);

            // エディット画面にいる場合は特別処理として毎フレームアップデートを行う
            if (Application.loadedLevel == 5)
            {
                if (GameMain.Instance != null && GameMain.Instance.CharacterMgr != null)
                {
                    CharacterMgr cm = GameMain.Instance.CharacterMgr;
                    for (int i = 0, n = cm.GetStockMaidCount(); i < n; i++)
                    {
                        EditSceneMaidUpdate(cm.GetStockMaid(i));
                    }
                }

                // todo 以下を直すこと:
                //      FARMFIX等のスライダーではないトグル操作等を行った場合にコールバックが
                //      呼ばれていない。これを回避するため、とりあえず毎フレーム呼びだすことにする
                //
                MaidVoicePitch_UpdateSliders();
            }
        }
Example #3
0
 void CharacterMgrPresetSet(CharacterMgr cMgr, Maid maid, CharacterMgr.Preset preset)
 {
     if (maid == null)
     {
         return;
     }
     SliderTemplates.Update(maid, PluginName);
 }
Example #4
0
        void OnSceneLoaded(Scene scene, LoadSceneMode mode)
        {
            KagHooks.SetHook(PluginName, true);

            // TBody.MoveHeadAndEye 処理終了後のコールバック
            CM3D2.MaidVoicePitch.Managed.Callbacks.TBody.MoveHeadAndEye.Callbacks[PluginName] = tbodyMoveHeadAndEyeCallback;

            // BoneMorph_.Blend 処理終了後のコールバック
            CM3D2.MaidVoicePitch.Managed.Callbacks.BoneMorph_.Blend.Callbacks[PluginName] = boneMorph_BlendCallback;

            // GameMain.Deserialize処理終了後のコールバック
            //  ロードが行われたときに呼び出される
            CM3D2.ExternalSaveData.Managed.GameMainCallbacks.Deserialize.Callbacks[PluginName] =
                (gameMain, f_nSaveNo) => {
                bDeserialized = true;
            };

            // スカート計算用コールバック
            CM3D2.MaidVoicePitch.Managed.Callbacks.DynamicSkirtBone.PreUpdateSelf.Callbacks[PluginName]  = DynamicSkirtBonePreUpdate;
            CM3D2.MaidVoicePitch.Managed.Callbacks.DynamicSkirtBone.PostUpdateSelf.Callbacks[PluginName] = DynamicSkirtBonePostUpdate;

            // 胸ボーンサイズ調整用コールバック
            CM3D2.MaidVoicePitch.Managed.Callbacks.jiggleBone.PreLateUpdateSelf.Callbacks[PluginName]  = jiggleBonePreLateUpdateSelef;
            CM3D2.MaidVoicePitch.Managed.Callbacks.jiggleBone.PostLateUpdateSelf.Callbacks[PluginName] = jiggleBonePostLateUpdateSelef;

            CM3D2.MaidVoicePitch.Managed.Callbacks.CharacterMgr.PresetSet.Callbacks[PluginName] = CharacterMgrPresetSet;

            // ロード直後のシーン読み込みなら、初回セットアップを行う
            if (bDeserialized)
            {
                bDeserialized = false;
                ExSaveData.CleanupMaids();
                CleanupExSave();
            }

            SliderTemplates.Clear();
        }