0
Answered

Problems with First Person perspective

YeetLordSupreme 5 months ago in Game Creator updated by Marti (Lead Developer) 4 months ago 3

So here's a problem that's been puzzling me for a few weeks now.

I want to create a melee fighting game from a first person perspective, something like Mordhau or Chivalry.  I started off with the melee module, and initially it seemed to be fine.  However I soon discovered I could not get the player to aim vertically whatsoever...they could only rotate horizontally.  I fixed this by integrating part of the shooter module...now my player character can aim up and down as well.  Fantastic, and it actually works better than I expected it to.

Unfortunately I am having issues with the first-person bit.  See, while the animations look good from a third person perspective, if I make a first person camera, the arms of the player character are...off, somehow.  They don't rotate vertically the same as the camera is, I guess...so if I look down, the arms appear far away, and if I look up, they seem to come closer.

I assume this is because the Camera Motor system follows its own rules, and thus is rotating the camera from a different point of view than the character model itself is.  However, even if I make a new camera, with no camera motor, and make it a child of, say, the head bone, I get the same results.

I really don't understand why...the head is clearly not going away from or towards the hands, yet the camera view seems to suggest that it is.  

Any ideas?  This one has got me really stumped.

Unity version:
Game Creator version:
Answered

This is a tricky question and has to do with anatomy. When humans talk or run, even though our vision is very stable, our head moves a lot. However, our brain is smart enough to stabilize the image we process in our brains.

However, this only works because of all our sense come into play and can make sense out of a shaky image our eyes perceive.

However in first person games, the camera is very stable and only in some cases, it slightly bobs to give the feeling of movement. FPS games have specifically designed animations for these cases that, using them in third-person, would look too stiff.

Take a look at Mirror's Edge (a parkour FPS game) game from a third-person perspective. In particular, how the upper-body is completely still. The stiffness of the body is not because the animators were lazy, but because the animations do the job our brain does in real life when jumping and running around.

However, we have an experimental feature that kind-of resolves this. It's experimental, so might not work. You can enable the "Stiff Body" option at the end of the FPS Camera Motor and see if this improves the overall quality.

Hi,

Thanks for the suggestion, but that's not really what I meant.  Here, I made a picture showing the problem.

As you can see, my character is holding a shield.  If I am looking straight forward, I get something fairly normal looking.  If I look up, the shield gets close to the camera (because the camera is simply rotating while the character's whole body is moving).  If I look down, now the shield is far away.  Ideally, I would like the view to consistently be something like the first view...regardless of whether I look up or down.

I tried parenting the camera to one of the bones, such as the neck bone for example, but unfortunately as soon as I try moving my character the camera starts jerking around all over the place due to the walk animation...so that won't work either.  

You can change the offset position of the FPS Motor. By default it's placed where the neck is. But due to the difference of distance between the joint of the head (neck) and the joint of the arm (shoulder), looking upwards or downwards will make this gap appear.


An easy solution would be modifying the offset so the camera is slightly lower (around the pectoral area) and a bit forward, so it doesn't get inside the chest.