Jump to content

  • Log In with Google      Sign In   
  • Create Account


FPS Camera


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
5 replies to this topic

#1 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 20 April 2013 - 09:51 AM

Hello every one , 

In previous post "http://www.gamedev.net/topic/640972-skinned-animation-problem/"I faced problem related to rotation the weapon around the with the camera and position the weapon in front of camera  , I solve it by :


1 : Before export the Model from Blender , I first make sure to position it in (0,0,0) , then make sure it's up axis is Y-axis and make sure it face x-axis .

but the problem now is :
1 :  When I make rotation around the pitch axis it did not behave pretty and good .
2 : When I make rotation around the pitch axis by 180 I see the model hands in front of my camera !! how and see through the Weapon and hand.

This is the edited code : 

 

Vector3 forward = cci.Camera.WorldMatrix.Forward + new Vector3(0, -5, 0);
            Matrix translatePlayer = Matrix.CreateTranslation(cci.Camera.WorldMatrix.Translation+ forward);
            Matrix scalePlayer = Matrix.CreateScale(0.05f);
            Matrix rotatePlayer = Matrix.CreateFromAxisAngle(cci.Camera.WorldMatrix.Left,
                cci.Camera.Pitch) * Matrix.CreateFromAxisAngle(Vector3.Up, cci.Camera.Yaw);
            staticModel.Transform = scalePlayer * rotatePlayer * translatePlayer ;

 

and here 2 explanation photos :
1 : When start the game :


8x6lda07jcnf3na6g.jpg
 
2 : After I make rotation around the y-axis for example 130 degree then I make rotation around the pitch axis by 30 degree see what happens :
dhk5taecpo6k6mp6g.jpg

Edited by mrmohadnan, 20 April 2013 - 09:52 AM.


Sponsor:

#2 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 21 April 2013 - 06:40 AM

Hello again , I solve the rotation problem by :

            Vector3 forward = cci.Camera.WorldMatrix.Forward + new Vector3(0, -1, 0);

            if (cci.Camera.Pitch <= MathHelper.ToRadians(-40))
            {
                cci.Camera.Pitch += MathHelper.ToRadians(1);
            }
            if (cci.Camera.Pitch >= MathHelper.ToRadians(40))
            {
                cci.Camera.Pitch -= MathHelper.ToRadians(1);
            }

            Matrix translatePlayer = Matrix.CreateTranslation(cci.Camera.WorldMatrix.Translation + forward);
            Matrix scalePlayer = Matrix.CreateScale(0.05f);

            Matrix rotatePlayer = Matrix.CreateRotationX(cci.Camera.Pitch) *
                Matrix.CreateFromAxisAngle(Vector3.Up, cci.Camera.Yaw);
            staticModel.Transform = scalePlayer * rotatePlayer * translatePlayer ;    

 

but , all what I want is to prevent hands to be visible when rotating down , I try this code  and did not works good ? so any solutions or suggestion ?

 



            if (cci.Camera.Pitch <= MathHelper.ToRadians(-40))
            {
                cci.Camera.Pitch += MathHelper.ToRadians(1);
            }
            if (cci.Camera.Pitch >= MathHelper.ToRadians(40))
            {
                cci.Camera.Pitch -= MathHelper.ToRadians(1);
            } 

 

8x6lda07jcnf3na6g.jpg


Edited by mrmohadnan, 21 April 2013 - 06:47 AM.


#3 eppo   Crossbones+   -  Reputation: 2312

Like
0Likes
Like

Posted 22 April 2013 - 05:06 AM

It might be a good idea to read up on nested transformation spaces. Link.

 

This can be solved a lot easier by parenting the gun to the hand by transforming its local transformation by the hand's world transform.

 

Matrix gunWorld = gunLocal * handWorld. (where handWorld = handLocal * playerWorld).

 

The camera can then be attached to the gun: cameraWorld = cameraLocal * gunWorld. -> cameraView = inverse(cameraWorld).



#4 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 22 April 2013 - 09:10 AM

I see through hands !!! this is my problem  ? so any suggestions how to play with the pitch or other transformation to prevent this ?



#5 belfegor   Crossbones+   -  Reputation: 2383

Like
1Likes
Like

Posted 22 April 2013 - 09:53 AM

Decrease your near clip plane.

Also, your model must be "properly" designed for first person view, if not you might need to reposition it a little bit down so that there is a small chance to intersects with your near clip plane.


Edited by belfegor, 22 April 2013 - 10:04 AM.


#6 mrmohadnan   Members   -  Reputation: 278

Like
0Likes
Like

Posted 22 April 2013 - 12:48 PM

Thanks belfegor smile.png you helped me a lot ,  I will never forget your help , good luck.


Edited by mrmohadnan, 22 April 2013 - 12:49 PM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS