Exemplo n.º 1
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            OpenFileDialog ofd = new OpenFileDialog();

            ofd.Filter = "pmxモデルファイル(*.pmx)|*.pmx";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                PMXModel model = PMXModelWithPhysics.OpenLoad(ofd.FileName, RenderContext);

                OpenFileDialog ofd2 = new OpenFileDialog();
                ofd2.Filter = "vmdモーションファイル(*.vmd)|*.vmd";
                if (ofd2.ShowDialog() == DialogResult.OK)
                {
                    IMotionProvider motion = model.MotionManager.AddMotionFromFile(ofd2.FileName, true);
                    model.MotionManager.ApplyMotion(motion, 0, ActionAfterMotion.Replay);
                }
                WorldSpace.AddResource(model);
                //③ カメラモーションの選択ダイアログを表示し、選ばれたものをScreenContext.CameraMotionProviderに代入する。
                CameraControlSelector selector = new CameraControlSelector(model);
                selector.ShowDialog(this);
                ScreenContext.CameraMotionProvider = selector.ResultCameraMotionProvider;

                /*
                 * ScreenContext.CameraMotionProviderに代入されたインターフェースのUpdateCameraが毎回呼ばれることによりカメラを更新している。
                 * この変数の型はICameraMotionProviderのため、これを実装すればカメラの動きは容易に定義可能である。
                 */
            }
        }
Exemplo n.º 2
0
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            // 必須
            var ofd = new OpenFileDialog();

            ofd.Filter = "pmxモデルファイル(*.pmx)|*.pmx";
            if (ofd.ShowDialog() == DialogResult.OK)
            {
                this._Model = PMXModel物理変形付き.ファイルから読み込む(ofd.FileName);

                // 任意
                var ofd2 = new OpenFileDialog();
                ofd2.Filter = "vmdモーションファイル(*.vmd)|*.vmd";
                if (ofd2.ShowDialog() == DialogResult.OK)
                {
                    モーション motion = this._Model.モーション管理.ファイルからモーションを生成し追加する(ofd2.FileName, true);
                    this._Model.モーション管理.モーションを適用する(motion, 0, モーション再生終了後の挙動.Replay);
                }

                this.ScreenContext.ワールド空間.Drawableを追加する(this._Model);

                //③ カメラモーションの選択ダイアログを表示し、選ばれたものをScreenContext.CameraMotionProviderに代入する。
                var selector = new CameraControlSelector(this._Model);
                selector.ShowDialog(this);
                this.ScreenContext.カメラモーション = selector.ResultCameraMotionProvider;

                /*
                 * ScreenContext.カメラモーション に代入されたインターフェースの モーションを更新する() が毎回呼ばれることによりカメラを更新している。
                 * この変数の型は カメラモーション インターフェースのため、これを実装すればカメラの動きは容易に定義可能である。
                 */
            }

            Activate();
        }