コード例 #1
0
        void DrawSimpleModel(SimpleModel simpleModel, Matrix transformation, GameTime gameTime)
        {
            SimpleModelEffect.Parameters["World"].SetValue(transformation);
            SimpleModelEffect.Parameters["WorldViewProjection"].SetValue(transformation * ViewMatrix * ProjectionMatrix);

            GraphicsDevice.SetVertexBuffer(simpleModel.VertexBuffer);
            GraphicsDevice.Indices           = simpleModel.IndexBuffer;
            GraphicsDevice.DepthStencilState = DepthStencilState.Default;
            foreach (EffectPass pass in SimpleModelEffect.CurrentTechnique.Passes)
            {
                pass.Apply();
                GraphicsDevice.DrawIndexedPrimitives(Microsoft.Xna.Framework.Graphics.PrimitiveType.TriangleList, 0, 0, simpleModel.FaceCount);
            }
        }
コード例 #2
0
        protected override void Initialize()
        {
            CharacterTexture = Content.Load <Texture2D>("swat");
            RifleTexture     = Content.Load <Texture2D>("hk_mp5n");

            CharacterMesh = new SkinnedModel();
            CharacterMesh.GraphicsDevice = GraphicsDevice;
            CharacterMesh.FilePath       = @"Content\Soldier.fbx";
            CharacterMesh.Initialize();
            CharacterMesh.Meshes[0].Texture = Content.Load <Texture2D>("swat");

            AnimationIdle          = new SkinnedModelAnimation();
            AnimationIdle.FilePath = @"Content\Rifle Idle.dae";
            AnimationIdle.Load();

            AnimationRunning          = new SkinnedModelAnimation();
            AnimationRunning.FilePath = @"Content\Rifle Run.dae";
            AnimationRunning.Load();

            AnimationWalk          = new SkinnedModelAnimation();
            AnimationWalk.FilePath = @"Content\Rifle Walking.dae";
            AnimationWalk.Load();


            ModelRifle = new SimpleModel();
            ModelRifle.GraphicsDevice = GraphicsDevice;
            ModelRifle.FilePath       = @"Content\mp5.3ds";
            ModelRifle.Initialize();

            ModelInstance      = new SkinnedModelInstance();
            ModelInstance.Mesh = CharacterMesh;
            ModelInstance.SpeedTransitionSecond = 0.4f;
            ModelInstance.Initialize();
            ModelInstance.SetAnimation(AnimationIdle);

            HeadBoneAnimationInstance = ModelInstance.GetBoneAnimationInstance("soldier_Head");
            HandBoneAnimationInstance = ModelInstance.GetBoneAnimationInstance("soldier_RightHand");

            SimpleModelEffect  = this.Content.Load <Effect>("SimpleModelEffect");
            SkinnedModelEffect = this.Content.Load <Effect>("SkinnedModelEffect");

            var Position  = new Vector3(500, 200, 0);
            var Direction = new Vector3(0, 200, 0);

            ViewMatrix       = Matrix.CreateLookAt(Position, Direction, Vector3.Up);
            ProjectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(60), GraphicsDevice.DisplayMode.AspectRatio, 0.1f, 5000f);

            base.Initialize();
        }