SS3D icon indicating copy to clipboard operation
SS3D copied to clipboard

Animation System Design for the Player

Open TaylorNAlbarnaz opened this issue 1 year ago • 3 comments

Summary

We need to decide how the animation system is gonna work for the players, this is extremely important since this is what will allow us to work on many other features like health, combat, ik, ragdolls, wearables and such. But we should be careful since this is the system that could have the most noticeable problems, also problems that could prevent players from playing.

Goal

We should design a system that allows a playable character to:

  • Play animations for the whole body (like idle, walking, running and falling)
  • Play animations for a single arm or side of the body, for interaction animations and combat
  • Take the control off the player for things like sitting on a chair, being unconscious or even dead
  • Interact with structures in the world like sitting on a chair and standing up
  • Decide weather players will have react animations for things like combat and if that will take away the player's control

Where are the most important points in my opinion that need to be decided with care:

Buckling to a seat: How would it work? Do we just teleport the player to the seat and out of the seat when he's out?

  • If so, how we decide where to teleport him out when the front of the seat is blocked by something?
  • What if every side of the seat is blocked? is he teleported to the top of the seat? or just gets stuck there?

Do we play an animation of him sitting and standing up?

  • If so, how will he actually sit in the seat? Will the player have to be directly in front to sit? Does he pathfind his way there?
  • Will he have animations for sitting from the side, from the back, from the front, etc...
  • How would he stand up again, if the front of the seat was blocked, and then what if every side of the seat is blocked?

For both we have to also think:

  • Can these animations be stopped by something else, like being hit?
  • Can physics objects activate player's ragdolls? like being hit by a flying box?
  • How would the player stand up if he fall? If through animations then what if there is something above his head and he can't stand?
  • If in the previous decisions we decided the player will go on top of the seat when he can't go out, how would that work? how does he get down after that? are there physics/gravity applied to the player?
  • If he gets on top of tables like in SS13 how does he get down and can he fall from there?

Regarding combat:

  • Will attacks stagger, and therefore take control off the player from a brief moment?
  • If yes, can the stagger move the player back? knockback effect

We have to answer every single one of these questions, then developed a system that allows us to play animations and control the player's "control" over the body, it's more of a "Player System" than an "Animation System" to be honest. The reason we have to think about every single one of these instances at first is because this is possibly the most fundamental system in the whole game, it's not something we can just wing it and then improve on later, many systems will depend on that and changing it later could be a headache.

TaylorNAlbarnaz avatar Mar 02 '23 12:03 TaylorNAlbarnaz

I don't think we should use AI to control a player during interactions, like making the player walk to the front of a seat before sitting. I think the player should always feel in control of their character.

cosmiccoincidence avatar Apr 29 '23 16:04 cosmiccoincidence

Sitting interaction should be available only when very close to the front of a chair. It's simpler and less troublesome.

stilnat avatar Sep 01 '23 18:09 stilnat

Relevant info and comments: #937

cosmiccoincidence avatar Nov 19 '23 03:11 cosmiccoincidence