Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Animation system part 1 #1333

Open
stilnat opened this issue Nov 17, 2023 · 2 comments
Open

Animation system part 1 #1333

stilnat opened this issue Nov 17, 2023 · 2 comments
Labels
Bounty Tasks with a monetary reward. Bounty: 60 dollars 💰 Value of the bounty. Do not put this tag without the bounty tag. Difficulty: hard 🌵 Things are getting spiky ! Feature A new system or other feature. High Priority Life or death people, lets go! Movement Tasks related to character movement.

Comments

@stilnat
Copy link
Contributor

stilnat commented Nov 17, 2023

Summary

Our character needs life. This is absolutely essential for health and combat system, and many more that can't really move on without it.
We need to set up a working animator controller for humans, with a bunch of animations, and this issue is here for that.

Goal

  • Set up an animation controller that handle :

    • Blending animation between idle, walking, running, limping (on both legs).
    • Crawling.
    • Sitting.
    • Blending animation between healthy and injured arms. (your call on how injured arms behave)
    • Throwing.
    • Hitting with one hand objects.
    • Should ragdolling be there too ? Your call assignee. (We already have the animation in the unity project to get up)
    • Switching between at least 2 different arm holds.
    • At least one pose (emote)
  • Have the animations in there, they can be rough, they just need to be recognisable. you can use Mixamo to generate them or ask @Dennis-Nesterenko for help (@probably.not on discord).

  • throwing and hitting should work when sitting as well. If it works while crawling it's cool but not absolutely necessary.

It will be also necessary to properly document it all on gitbook.

Media

different holding poses by @EikoBiko

image

Document

Dependencies

#1060 might be helpful to give some context

@stilnat stilnat added Feature A new system or other feature. Bounty Tasks with a monetary reward. Difficulty: hard 🌵 Things are getting spiky ! Bounty: 60 dollars 💰 Value of the bounty. Do not put this tag without the bounty tag. Movement Tasks related to character movement. labels Nov 17, 2023
@stilnat
Copy link
Contributor Author

stilnat commented Nov 17, 2023

Eiko comments from discord :

Okay may have come up with a (mostly) comprehensive breakdown of what the humanoid animator needs:

B = bool
F = float
T = trigger
[LAYER] Movement (Base):
B upright (blend tree; idle -> walk -> run)
    [walk and run will also be blend trees, to indicate leg health]
    F leg_injury
        [-1 for left leg injured, 1 for right leg inured, this value will drive limping]
B prone (blend tree; lay down -> crawl)
B sit

[LAYER] Injury (Additive, 100%):
T arm_hurt_L
T arm_hurt_R
T leg_hurt_L
T leg_hurt_R
T head_hurt_F
T head_hurt_B
T torso_hurt_F
T torso_hurt_B

[LAYER] Left Arm Hold (Override, ~90% weight):
B neutral_L
B briefcase_L
B drink_L
B underarm_L
B shoulder_L
B waiter_L

[LAYER] Right Arm Hold (Override, ~90% weight):
B neutral_R
B briefcase_R
B drink_R
B underarm_R
B shoulder_R
B waiter_R

[LAYER] Emote (Override, 100% weight):
T emote
    [code driven, a ScriptableObject with an AnimationClip and disallowed poses. If the requirements are met, will set the AnimationClip and activate]
T cancel_emote 
    [immediately interrupt emote to return to neutral]

Basically, all movement, such as walking, crawling, or sitting will be the base layer. Injury indicators will be layer played additively on top. Hold poses will animate the arms alone, and override the base animation. Emotes are animations that are injected via code, probably via some sort of function in the HumanoidAnimatorController script, and will only properly show if the current set of true bools allow it. (modifié)

If we want an actions layer, we can do that as well, for things like swing or push button or pick up, these can technically be done in the Emote layer, but if not, we would need custom animations for swinging a weapon in the upright position, as well as in the prone and seated positions, and everything else we need an action for, which could become a lot (modifié)

@cosmiccoincidence cosmiccoincidence pinned this issue Nov 18, 2023
@cosmiccoincidence cosmiccoincidence added the High Priority Life or death people, lets go! label Nov 19, 2023
@cosmiccoincidence
Copy link
Member

Relevant info and comments which may be helpful: #937

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bounty Tasks with a monetary reward. Bounty: 60 dollars 💰 Value of the bounty. Do not put this tag without the bounty tag. Difficulty: hard 🌵 Things are getting spiky ! Feature A new system or other feature. High Priority Life or death people, lets go! Movement Tasks related to character movement.
Projects
Status: 📋 Backlog
Development

No branches or pull requests

2 participants