Fórum Sharpgames
 
 
  Forum  Criação de Jogo...  Algoritmos  Transformação no proprio eixo.
Anterior Anterior
 
Próximo Próximo
Nova Entrada 25/10/2008 10:58
  Quorthon3D
6 tópicos
Sem Ranking


Transformação no proprio eixo. 
Tenho um modelo de helicoptero, e quero animar aquela hélice menor, mas estou tendo problema, pois ela gira em trono do eixo do helicóptero.
o codigo que estou usando é esse.

            rod += 0.2f;
            heliceRod = malha.Meshes[2].ParentBone.Index; //índice dois é a helice menor
            malha.Bones[heliceRod].Transform = Matrix.CreateRotationZ(rod);// não sei porque mas o eixo up do modelo é X, o Y sai para tela e o Z é o perpendicular

            Matrix[] transforms = new Matrix[this.malha.Bones.Count];
            this.malha.CopyAbsoluteBoneTransformsTo(transforms);

            foreach (ModelMesh mesh in this.malha.Meshes)
            {
                foreach (BasicEffect effect in mesh.Effects)
                {
                    int index = mesh.ParentBone.Index;
                    effect.EnableDefaultLighting();
                    effect.SpecularColor = new Vector3(0.8f, 0.8f, 0.4f);
                    effect.SpecularPower = 6;
                    effect.TextureEnabled = true;
                    if(index == 3) //transformação do corpo do helicóptero
                    effect.World = transforms[index] * Matrix.CreateScale(3) * Matrix.CreateRotationY(this.rotacao) * Matrix.CreateTranslation(this.posicao);
                    else if(index == 6) //transformção da hélice maior
                    effect.World = transforms[index] * Matrix.CreateScale(3) * Matrix.CreateRotationY(this.rotacao) * Matrix.CreateRotationY(this.rotacaoHelice) * Matrix.CreateTranslation(this.posicao);
                    else //transformação da helice menor
                    effect.World = transforms[index] * Matrix.CreateScale(3) * Matrix.CreateRotationY(this.rotacao) * Matrix.CreateTranslation(this.posicao);
                    effect.View = view;
                    effect.Projection = projection;
                    }
                mesh.Draw();
            }

Como faço para a hélice menor rotacionar em seu próprio eixo e não ao do corpo do helicóptero?
*No modelo 3D ja me certifiquei que o eixo dela está no centro dela.
 
Anterior Anterior
 
Próximo Próximo
  Forum  Criação de Jogo...  Algoritmos  Transformação no proprio eixo.
AdSense

Amazon

Logos do XBox 360, XNA e Games For Windows
Copyright 2008 por SharpgamesPolítica de Privacidade  |  Termos de Uso