In From Earth I wanted to try something different from Water and Last Zombie. I still wanted to be able to see the player model, but I didn't want to use third person.
Posted by Au-heppa on Jan 13th, 2013
If you haven't heard about From Earth before, read the outline of the project here.
In From Earth I wanted to try something different from Water and Last Zombie. I still wanted to be able to see the player model, but I didn't want to use third person. I didn't want to use viewmodels for the player, as it would mean that I would have to include the same polygon mesh for every item that could be picked up. Instead, I disabled viewmodels completely, and the player's worldmodel is what you see all the time.
Viewmodels are generally drawn separately from the rest of the world and on top of them you have the rendered view. They can't clip with any objects in the world, and they can have their own field of view. They can also be flipped in Source, if the player wishes to do so in Options. However, viewmodels are tricky if you want the player to actually touch something in the game world.
Thus in From Earth we only use worldmodels. The player's eye position would be on the "eyes" attachment of the player model, following every animation the player would do. The player's eye angles are clamped to a small range from the attachment's angles. The player character would turn its body and head in the direction the player wants to look, thereby increasing the range the player can see.
There is some problems with this approach, though. The animations need to be made so that the player's eyes are always inside the bounding box. Otherwise, the player can end up seeing through walls when clipping on a brush. The animations also need to be smooth enough for the view not be jerky. If running animations have too much view bobbing, some players might experience motion sickness.
Another problems was stairs. In Half-Life 2 the Z coordinate of the player's eye origin is smoothed when the player walks on stairs. But since in From Earth the player model is always visible, this would mean that the player would end up seeing parts of the model's head mesh. Instead I adjusted the players render origin. I would update the smoothed out origin in the think functions of the player entity, and then use that when the player would be rendered.
You don't want to render the head mesh since you are not supposed to see it. Normal solution would be the use the bodygroup system and simply hide the head bodygroup. But bodygroups don't allow facial expressions on them, so this is problematic. I want the model to have facial expressions in case we use mirrors, as well as for any promotional video or screenshot we might do in thirdperson. So in the way of a solution I hijacked the LOD system to hide the head. When the player is being drawn on a mirror, camera, thirdperson, or viewcontrol entity, I force the game to use the first LOD with the head visible. When the player is drawn from first person, I force the game to use the second to last LOD with the head missing.
Another problem is animations in which the player turns. Normally the player entity turns its head towards the direction the player tries to look, the direction the viewangles are pointing. The animation follows the viewangles. In some scripted sequences, such as when the player is turning 180 degrees to sit on a chair, the viewangles should follow the animation. In these cases I need to momentarily localize the eye angles to be calculated in the local space of the chest attachment. The player's view will then automatically move with the body until the animation is over.
Drawing the player model and using the eyes attachment as eye origin can create some problems. In some cases the player's feet can be seen hovering in air. The animations need a lot work to make sure they don't cause the view go crazy. You need to make sure eyes can't go inside any world mesh in animations. But I think it's worth it. Animating is one of the things I enjoy the most in game development, and creating the animation library for the player model has been very fulfilling.
Next month we will tell you a little bit more about the Interaction System in From Earth.
We are looking for two different types of Level Designers. Firstly, we need people that can bring existing levels an aesthetic quality, and are experienced with lighting, texturing, and the general make up in Hammer. Screenshots and/or example maps are required.
We are also looking for puzzle designers, such as anyone who has a lot of experience designing different types of puzzles for games like Portal 2. Source engine or Hammer experience is not necessary.
Most of the concept work will revolve around the industrial era Alien technology and architecture. Samples of previous work required. We already have a strong set of existing concept art for you to draw on.
Voice actors and actresses
Although the script is nowhere near ready, we are looking for people to play the parts of Zenaida, Anthony, as well as the generic voices of aliens, both male and female actors. All voice actors applying should provide some kind of samples. You should be able to do big range of emotions. Some lines might be delivered at a later date.
The aliens will be speaking an alien language specifically designed for this mod. Their dialogue is partly already written and ready for recording. Examples will be provided if you are interested.
We are interested on getting any help we can get, especially world texture creators and prop modellers.