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

Baking matching RESET pose to allow transfer animations between corresponding rigs #2961

Closed
fire opened this issue Jul 8, 2021 · 1 comment

Comments

@fire
Copy link
Member

fire commented Jul 8, 2021

Describe the project you are working on

3D Game Project

Describe the problem or limitation you are having in your project

Given an engineering team has made a reference character and you want 10 animators to create animations.

Currently, some tech artist needs to combine the 10 files into one exported gltf2 to import into Godot Engine. With this feature
I can directly import it into Godot Engine and not need this tech artist's time.

Fixes: godotengine/godot#50212

We are NOT retargeting between different rigs in the RESET baker stage.

We are NOT defining how to generate the RESET animation in this proposal.

A separate proposal will be done for saving the "Blender edit" as a RESET animation KhronosGroup/glTF-Blender-IO#941

Problem extended

We want to transfer animations between exact scenes with the same matching RESET animation.

We can import unlimited motion capture animations to use if we can enforce a certain T-POSE and ensure the rigs are corresponding.

Multiple different specifications exist on bone rolls on specific bone names. If the skeleton matches one of them, we can use that set of rig animations.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

We bake the RESET animation and then set it to identity so that rigs with corresponding RESET animation can have their animations transferred.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Bake RESET animation

  1. Import a new scene with animations.
  2. A RESET animation from the imported scene will automatically be baked to the skeleton.
  3. Key all RESET animation frames to identity.

Bake a specific frame

  1. Pick an animation frame time and click
  2. First bake any existing RESET animation.
  3. Bake the RESET animation
  4. Ensure that a RESET animation track exists and is set to identity transform

RESET Animation Generators

  1. Make a tool that can take a human character and make it T-pose (A-pose?) and then save it to the RESET animation.
  2. Enforce bone rolls on the rig and then save it to the RESET animation.
  3. Root motion centering (move to the origin) tool and then save it as the RESET animation.
  4. Filter the RESET axes when baking per animation.

Reference

If this enhancement will not be used often, can it be worked around with a few lines of script?

This is a confusing problem and hard to explain. So the code to solve it is non-obvious to propose and non-trivial to discover.

Is there a reason why this should be core and not an add-on in the asset library?

Animations are a core feature of Godot Engine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants