Beispiel #1
0
        private void AddRenderable(Entity entity, MetaModel renderableEntity)
        {
            if (!IsVisible(renderableEntity, Renderer.Settings))
            {
                return;
            }

            var model = Scene.View.Content.Acquire <Model9>(renderableEntity);

            renderableEntity.MetaModelChanged += new EventHandler(SortedTestSceneRendererConnector_MetaModelChanged);

            metaModelIdToEntity.Add(renderableEntity.InstanceID, entity);

            resources[entity].Add(renderableEntity.InstanceID,
                                  new Common.Tuple <Model9, MetaResource <Model9, Model10> >(
                                      model, (MetaResource <Model9, Model10>)renderableEntity.Clone()));

            Graphics.Renderer.Renderer.EntityAnimation ea = null;
            if (model.SkinnedMesh != null)
            {
                ea = Scene.View.Content.Acquire <Graphics.Renderer.Renderer.EntityAnimation>(entity.MetaEntityAnimation);
                ea.Update(model, 0.01f, ((MetaModel)renderableEntity).GetWorldMatrix(Scene.Camera, entity));
                EntityAnimations.Add(entity, ea);
                ((MetaModel)renderableEntity).StoredFrameMatrices = ea.StoredFrameMatrices;
            }

            Renderer.Add(entity, renderableEntity, model, renderableEntity.InstanceID);
        }
        private MotionEntity CreateNPC(Vector2 position)
        {
            Vector3 translation = new Vector3(position, 3);
            var     npc         = new MotionEntity
            {
                MainGraphic = new MetaModel
                {
                    SkinnedMesh = new SkinnedMeshFromFile("Models/Units/Zombie1.x"),
                    Texture     = new TextureFromFile("Models/Units/Zombie1.png"),
                    World       = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                    IsBillboard = false,
                },
                Translation = translation
            };
            var mo = motionSimulation.CreateNPC();

            mo.LocalBounding   = new Common.Bounding.Cylinder(Vector3.Zero, 1f, 0.5f);
            mo.Position        = translation;
            mo.SteeringEnabled = true;
            mo.RunSpeed        = 2f;

            npc.MotionObject            = mo;
            npc.VisibilityLocalBounding = CreateBoundingBoxFromModel((MetaModel)npc.MainGraphic);

            Graphics.Renderer.Renderer.EntityAnimation ea = scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(npc.MetaEntityAnimation);
            ea.PlayAnimation(new AnimationPlayParameters("Idle1", true));

            return(npc);
        }
Beispiel #3
0
        private MotionEntity CreateUnit(Vector3 position)
        {
            var unit = new MotionEntity
            {
                MainGraphic = new MetaModel
                {
                    SkinnedMesh = new SkinnedMeshFromFile("goblin_blade_master1.x"),
                    Texture     = new TextureFromFile("goblin_blade_master1.png"),
                    World       = SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.1f, 0.1f, 0.1f),
                    IsBillboard = false,
                },

                /*Animation = "idle1",
                 * AnimationLoop = true,*/
                Translation = position
            };

            var mo = motionSimulation.CreateUnit();
            var lb = new Common.Bounding.Cylinder(Vector3.Zero, 1f, 0.5f);

            mo.LocalBounding  = lb;
            mo.Position       = position;
            unit.MotionObject = mo;

            unit.VisibilityLocalBounding = new MetaBoundingBox
            {
                Mesh           = ((MetaModel)unit.MainGraphic).SkinnedMesh,
                Transformation = ((MetaModel)unit.MainGraphic).World
            };

            Graphics.Renderer.Renderer.EntityAnimation ea = scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(unit.MetaEntityAnimation);
            ea.PlayAnimation(new AnimationPlayParameters("idle1", true));

            return(unit);
        }
        public override void Init()
        {
            Content.ContentPath = "Data";

            Scene        = new Scene();
            Scene.View   = this;
            Scene.Camera = new LookatCartesianCamera()
            {
                Position    = new Vector3(10, 10, 10),
                Lookat      = Vector3.Zero,
                ZFar        = 100,
                AspectRatio = AspectRatio
            };
            sceneQuadtree = new Common.Quadtree <Entity>(10);
            sbau          = new SceneBVHAutoSyncer(Scene, sceneQuadtree);

            StateManager = new Device9StateManager(Device9);

            Renderer = new Graphics.Renderer.Renderer(Device9)
            {
                Scene = Scene, StateManager = StateManager, Settings = new Graphics.Renderer.Settings {
                    ShadowQuality = Graphics.Renderer.Settings.ShadowQualities.NoShadows
                }
            };
            Renderer.Initialize(this);
            sceneRendererConnector = new SortedTestSceneRendererConnector
            {
                Scene    = Scene,
                Renderer = Renderer
            };
            sceneRendererConnector.Initialize();

            Scene.Add(exquemelin = new Entity
            {
                MainGraphic = new Graphics.Content.MetaModel
                {
                    SkinnedMesh = new Graphics.Content.SkinnedMeshFromFile("Models/Units/Zombie1.x"),
                    Texture     = new Graphics.Content.TextureFromFile("Models/Units/Zombie1.png"),
                    World       = Graphics.Content.SkinnedMesh.InitSkinnedMeshFromMaya * Matrix.Scaling(0.5f, 0.5f, 0.5f),
                    HasAlpha    = false,
                },
                VisibilityLocalBounding = new Common.Bounding.NonfittableBounding(Vector3.Zero, false, true)
            });

            Graphics.Renderer.Renderer.EntityAnimation ea = Scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(exquemelin.MetaEntityAnimation);

            ea.PlayAnimation(new AnimationPlayParameters("Idle1", true));

            InputHandler = new WalkaroundCameraInputHandler
            {
                Camera = (LookatCartesianCamera)Scene.Camera,
            };
        }
Beispiel #5
0
 private void PlayAnimation(string s, float fadeTime)
 {
     Graphics.Renderer.Renderer.EntityAnimation ea = Scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(exquemelin.MetaEntityAnimation);
     try
     {
         var a = ea.AnimationController.GetAnimationSet <AnimationSet>(s);
         ea.PlayAnimation(new AnimationPlayParameters(s, true)
         {
             FadeTime = fadeTime
         });
     }
     catch (Direct3D9Exception e)
     {
         Console.WriteLine("Error trying to find animation. " + s + "\nAdditional error information: " + e);
     }
 }
        protected override void OnKeyDown(System.Windows.Forms.KeyEventArgs e)
        {
            base.OnKeyDown(e);

            Graphics.Renderer.Renderer.EntityAnimation ea = Scene.View.Content.Peek <Graphics.Renderer.Renderer.EntityAnimation>(exquemelin.MetaEntityAnimation);

            if (e.KeyCode == System.Windows.Forms.Keys.F1)
            {
                //var bla = exquemelin.RendererGraphics.First().Value;
                ((Graphics.Content.MetaModel)exquemelin.MainGraphic).HasAlpha = true;
                ((Graphics.Content.MetaModel)exquemelin.MainGraphic).Opacity  = 0.4f;
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F2)
            {
                ((Graphics.Content.MetaModel)exquemelin.MainGraphic).HasAlpha = false;
                ((Graphics.Content.MetaModel)exquemelin.MainGraphic).Opacity  = 0.4f;
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F3)
            {
                ((Graphics.Content.MetaModel)exquemelin.MainGraphic).Texture = new Graphics.Content.TextureFromFile("Models/Units/Ghoul1.png");
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F4)
            {
                ((Graphics.Content.MetaModel)exquemelin.MainGraphic).Texture = new Graphics.Content.TextureFromFile("Models/Units/Zombie1.png");
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F5)
            {
                //ea.DisableTrack(1);
                ea.PlayAnimation(new AnimationPlayParameters("Idle1", true));
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F6)
            {
                //ea.DisableTrack(1);
                ea.PlayAnimation(new AnimationPlayParameters("MeleeThrust1", false));
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F7)
            {
                //ea.DisableTrack(1);
                ea.PlayAnimation(new AnimationPlayParameters("Run1", true));
            }
            else if (e.KeyCode == System.Windows.Forms.Keys.F8)
            {
                //ea.DisableTrack(1);
                ea.PlayAnimation(new AnimationPlayParameters("Death1", false));
            }
        }