Showing full body from First Person

Started by
11 comments, last by Scobbo 10 years, 1 month ago

I'm thinking about having my character's full body be visible from the first person perspective. It's more complicated than showing arms only for various reasons. I'm using Unreal Engine 4 now so it's more about the core concept.

With arms only being visible, it's easy to just have a floating camera with arms attached to it. The controls feel very solid since the camera moves exactly how you'd expect.

Most games let you see only legs when you look down which is somewhat doable. You just have to also have good IK on the feet in order for them to properly look like they're standing on things.

Some games like Outlast and Mirrors edge let you even see the whole body but it may be easier for them when they don't have to show the gun the character is holding. The gunplay in mirrors edge didn't feel as solid to control either.

I see some games that show only the legs sometimes let you see the body as well, like when you climb ladders in FEAR or when you get blown back by an explosion in Battlefield 3. In Crysis they limit the angle with which you can aim downwards when crouching probably to avoid having to make your view not intersect with the body.

So when you see the body suddenly, do they normally make the body invisible to the eye and show legs only?

Do they have to pivot the camera around differently so that as you look up and down your eye origin moves a bit with the neck? And how bout the arms being attached to the body. How to ensure that as you look around up and down, the arms don't get all misaligned and go all over the place. And how to do all this while making the look controls still feel as rock solid as when you don't see your whole body.

Advertisement

So is there a scenario you really want to try that you're afraid won't work? I'd imagine you could probably get away with just rendering the model without the head and neck for the player, and then limit the rotations, and be careful of near-plane clipping so you're never penetrating the model in anyway. You probably don't even have to get all that exact for foot placement, as the angle at which the player is looking down, they won't be able to judge that closely whether it's 100% accurate, just ensuring that the feet are both touching the right steps on a staircase is probably enough, which a lot of modern games do already for other characters in fps games.

Operation Flashpoint was the first shooter that I remember seeing "whole-body first person" in, and that was back in 2001! The devs behind that game have also done it in all their sequels too. They seem to just render the same model used for 3rd person view, but with the head part removed and the "neck hole" covered over. The camera is then attached to some bones coming off the neck/head, so when the character animates, the camera moves too.

Yeah, when you look down, the bones rotate like a real neck, so the camera moves forward as well as rotating downwards.

One issue with this is that you get a lot of "head bob" when the character runs (a realistic amount), whereas most shooters have almost zero "head bob".

In reality, our eyes/heads do bob around a lot when we run, however, our brains are very clever and they use our Vestibular system (inner ear) to compensate and stabilize the "footage" that it's receiving, so we don't really percieve the world to be bouncing all over the place while walking... So having a lot of "head bob" is realistic if you're simulating a camera attached to someone's helmet, but it's not realistic if you're simulating what that person would actually perceive.

Still, for people without motion sickness, no headbob simply feels bad. Its like you're a floating camera. A nice amount of headbob, even if in reality its not accurate, feels pretty good.

As a note, guns in Mirror Edge were designed to be clumsy, you were not supposed to use them. Its not a consequence of the player body being in the screen, its a design decision.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

As Hodgman mentioned, one solution is to control and render the entire player. If you use a skinned mesh, a relatively quick culling for parts of the body not in-view would limit unneeded rendering time. Don't render the head at all and attach the camera to the head bone. The animation (run, walk, etc.) can be modeled with no head bob. As mentioned, it's very annoying for many people.

EDIT: ...or a limited amount of head bob, as some people like it. smile.png

You can also use the skinned mesh (or a sparse model of same) for collision detection, giving you better simulation for obstacles, etc.

Please don't PM me with questions. Post them in the forums for everyone's benefit, and I can embarrass myself publicly.

You don't forget how to play when you grow old; you grow old when you forget how to play.

Well I just had a chance to replay Crysis for a bit.

What they do seems to work well. You look down and only see legs from the waist down.

At its lowest point, the camera is looking slightly in front of the legs. So when I spin the view the crosshair isn't fixed at a point in the world like it might be in Quake 1 for example. This isn't even an issue like I thought it would be.

I still feel like they most likely omit rendering the body and render the arms as they would normally. Then there's a shadow that can be seen of the player. The legs appear to match perfectly. The body itself is probably not being rendered, but is still being used for shadow casting.

And I remember one of the devs of FEAR on Reddit said they don't use the third person animations for shadow casting the player's shadow. They animate the character with the first person animations which aren't necessarily the same ones they use for third person. I can see why they'd do that, because the arms in third person look better when aligned a certain way and the character would bob around more when running, while it's not as good in first person to do some of those things.

About mirror edge, as far as I remember, the animations of the main character were really weird and twisted when you would have seen them from the third person perspective. In other words, they needed to tweak all the animations to look good from the player perspective even if it results in not resembling any natural motion any longer.

It is always the question if it is necessary to see the body at all. In mirror edge it was really good, because you jumped a lot and seeing your legs/feet helped therefor. In a shooter you use the gun and therefor the arms more often then the rest.

I'm quite curious about the direction this topic will take, once VR games are coming up. In a VR-environment, seeing your body, could be interesting, but on the other hand could lead to some other effects (aka vomiting) , who knows wink.png

It's one of those things that I feel just adds to the game. Sortof like having the screen shake satisfyingly when the gun shoots.

In DooM 3 you can force player shadows on which I love, but it's weird looking down and not seeing your legs. The shadows are coming from nowhere. That's one reason I'd like to have your legs visible.

Also I was thinking about adding some animations for climbing ladders or mantling walls and have you see your legs while doing it. I like how in FEAR you could see your body while climbing ladders. It's a bit odd how in Counterstrike or Quake 2 for example, you kindof just float up and down ladders and have your gun out.

Another issue I've been thinking about is how arms need to work. Normally the arms render separately from the world so they don't clip through geometry. It starts to become a bit hard to have the character's arms reach out and grab things, which may be why in Half Life 2 they don't show your hands grabbing the steering wheel.

I guess it may be possible to switch the arms to be rendered as part of the world rather than in front of everything when you want the arms to grab an object. I'm just not 100% sure that's what they do since no one really talks about this kind of thing.

In Crysis, your character reaches out with his arm to grab weapons and things like that. I'm guessing that's done with some IK and switching the arm to render as part of the world.

In FEAR the legs looked a bit odd since they didn't seem to have IK on the feet. The feet would render in front of everything like the arms would, so I wouldn't see my character's legs clipping through objects, but the legs would still magically appear to be in front of some debris or whatever my guy would be standing on.

So maybe render the arms in front of everything, while the legs can be rendered as part of the world which they might be doing in Crysis. And then if my character is climbing a ladder, switch to rendering even the arms and body as part of the world. Use some IK to make the arms reach for correct spots on the ladder. I guess I could place some kind of marker objects on climbable ladders telling the game where the arms should go during the animations.

And another thing I've been thinking about for a while is how weapons make it look like the projectile is coming from the right place. With hitscan weapons it's not the end of the world. If looking from first person view, make the tracer rounds originate from the fps view gun barrel. In third person, do the same.

But if I'm firing a rocket or something, it's a bit harder to keep those in synch. I've played around with this in UDK and it looks like projectiles don't come straight from the gun sometimes at certain angles, and it's not even noticeable. I only noticed it when I was specifically looking for it.

Games are not about doing things correctly, but doing things just enough not to be noticed that they are incorrect while getting the performance you need =)

Well this isn't even about performance. It's about doing the faking in a way that looks good while also feeling like the controls are good. And it just so happens that this is something that people almost never talk about doing well.

This topic is closed to new replies.

Advertisement