Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

3rd Person Character Controller (horizontal axis: left, right)

Discussion in 'Navigation' started by Asset-Ninja, Nov 13, 2015.

  1. Asset-Ninja


    May 9, 2015

    I have some issues with writing a character controller for a 3D game like Tomb Rider, Devil May Cry or
    Ninja Gaiden Sigma. It is no matter for what language or system, my question is in general: what kind
    of motion animations do you actually need?

    The whole post is about camera based / relative movement. The camera might not be allways 100%
    behind the player it might follow delayed like a spring or being fixed depending on the location.

    The main problem is what should happen when the player engages left or right on the analog stick.

    Some games start rotate on spot by 90 degrees. Unity interpolates this even further, if you are applying
    forward force (vertical analog axis) and applying side force (horizontal analog axis) the animator component
    will blend the turn left or right motion with the forward motion. Might this be a problem?

    Why I am asking that: what about if you press 100% left on the analog stick, will the motion always be some
    kind of ellipsoid or circular because of the blend? Theoretically, if you use forward force [0..1] where 0 is stand
    and 1 is running and also the side force or axis angle [-1..1] where -1 is left and 1 is right it is possible, that
    when you turn left once the character is facing left the 100% horizontal position of the left axis translates to
    100% forward force which means running without rotation?

    If you stick with that, why are there then: normal right rotation move and sharp right rotation moves?

    This interpolation thing drives me crazy. The next thing is for example, what it the player just slightly presses
    the horizontal axis the movement is very short and very jerky. How to avoid that?

    And what about the player is facing straight forward and you press straight down the vertical analog axis.
    The player should perform a 180 degree rotation like in Ninja Gaiden.

    Has anyone some good resources? I have tried almost every controller on the Unity Asset store and sooner
    or later you will run into a situation where the motion is jerky. Even the standard unity 3rd person controller
    gets easily messed up when you try to perform either very minimal rotations or a 180 degree turn.

    I also think, that modern 3D games like Tomb Rider, Ninja Gaiden or Devil May Cry don't always follow the
    character instead it looks like every scene has some "hotspots" for the camera and when you reach a segment
    the camera doesn't follow the player via translation or zoom instead it only rotates in order to keep the player
    in center of the screen.

    Feel free to post.

    Thank you in advance!