Third Person Action Controller

Developer notes working on a third person action controller.

November 21, 2019 Log

It's been a few weeks since I cracked open Unity and got to work on these old controllers. Today I wanted to spend some more time with the third person cover based action controller. Originally, I was inpsired by 2nd generation Bioware titles like Dragon Age and Mass Effect which took their classic isometric western CRPG controls into a more modern context.

As I was working on this, however, I found myself drawn towards more twitchy, fast paced controls - a speedy agile character with movement abilities like wall jumping that reminds me more of Plantinum Games' Vanquish than Gears of War.

One thing did become clear, however, while I worked on this: custom animations and a much more complex animation system are going to be necessary in adding the polish necessary to really elevate this controller. Consant jitters, awkward animation transitions, popping, and animation frame drops really affect the enjoyment of running and dashing about.

Setup

  • Updated to Unity v2019.2.13f1
  • Updated Plugins.

Environment

  • Built a new environment for performing cover actions in.

enviro

New Environment
  • Played with LUT and Beautify settings.

Camera

  • Fixed a bug with camera to control range.
  • Added elevation / pitch matching on camera look, to better frame the player when performing camera motions. Notice how the camera range stays the same, but the player remains properly framed.
Before After

Website

  • [Website] Added markdown-it-imgsize support.
  • [Website] Added gallery css.
  • [Website] Messing around with embedded vue components.

Jumping

  • Basic animation curve based jumping and tuning.
  • I spent a few hours trying to do a better root motion solution, but decided this was best for the immediate.
  • [website] more stupid vue stuff...
  • Did some cleanup of animations, transitions, and animation tree.

Basic jumping, tweaking movement

  • Added double/wall jumping.

Walljumping

Cover

  • Building a dynamic cover system that uses raycast to detect cover and automatically handle either head high cover, or waist high cover.

covercast

Raycasts!

Cover detection

  • This still needs a little more work:
    • Need to add more raycasts so you can turn without exiting cover completely
    • Need to add walk animations so you can move along the wall without exiting cover completely.

locomotion

You can see the locomotion graph building in complexity.