Greg Peterson

True FPS Demo

1 / 6
(April 2) Left hand IK
2 / 6
(April 2) Aim offset and turning in-place
3 / 6
(April 1) Weapon sway
4 / 6
(April 1) Movement
5 / 6
(April 1) First-person ADS
6 / 6
(April 1) Third-person ADS

Project Overview

I've been wanting to show off some of my skills on my portfolio since the game I'm working on for Crowbar Collective hasn't come out yet. I really like working on player-facing features and making them look good, so I want to make sure I know the fundamentals (like true FPS mechanics) like the back of my hand. Make sure to check the dates on the videos for updates. The April 1 videos don't have the new IK setup.

Updates

April 2 Update: I got IK working! It took me a bit of time to figure out how to do it on this specific skeleton. I'm using a skeleton from a true FPS anims pack, and it has virtual bones for the right and left hand. It's pretty cool because the virtual right hand bone is attached to the head, so that when the play turns their head the hand can turn without translating up or down.

First I transform the right and left hand bones to account for weapon sway. Next I set up the IK for the hands.

April 1 Update: I started this project over the weekend, and I'm really happy with it so far. I've implemented networked true FPS turning (vid 1), weapon sway (vid 2), movement (vid 3), and ADS (vids 4 and 5). The left hand IK is the next thing I need to set up because it's very noticeable in the demos. After fixing that and making sure everything is replicated properly, the next big thing is shooting.

I'm not entirely happy with the turning in-place, specifically with how the gun moves. It can definitely feel weird when you don't expect it. Without the turning anim it's actually pretty smooth. However, there's still some jitter when the character's movement component starts using the desired controller rotation (which is how I make the character move during the turn). One way to help this is making sure the camera is placed exactly on the Z-axis of the player so that when the character turns there is no translation of the camera. Probably turning off weapon sway handled by RInterps would also remove the gun jitter. Here's a vid of the turning without turn animations:

Tools Used

Unreal Engine 5
Animation Blueprints