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

Implement Animation Blend Shape Tracks #53865

Merged
merged 1 commit into from
Oct 16, 2021

Conversation

reduz
Copy link
Member

@reduz reduz commented Oct 15, 2021

  • New track type BLEND_SHAPE
  • Blend shapes are imported via this new track type
  • Processing is more optimized (no longer relies on variants)
  • Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes)
  • Promo: Fixed a small bug in gizmo updating in Node3D that affected performance

Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.

@reduz reduz requested review from a team as code owners October 15, 2021 22:13
@reduz reduz force-pushed the implement-blend-shape-tracks branch from a5dcc44 to a703df2 Compare October 15, 2021 22:28
@reduz reduz requested a review from a team as a code owner October 15, 2021 22:28
@reduz reduz force-pushed the implement-blend-shape-tracks branch from a703df2 to 913b37f Compare October 15, 2021 22:29
@fire
Copy link
Member

fire commented Oct 15, 2021

editor/animation_track_editor.cpp Show resolved Hide resolved
<method name="get_active_material" qualifiers="const">
<return type="Material" />
<argument index="0" name="surface" type="int" />
<description>
Returns the [Material] that will be used by the [Mesh] when drawing. This can return the [member GeometryInstance3D.material_override], the surface override [Material] defined in this [MeshInstance3D], or the surface [Material] defined in the [Mesh]. For example, if [member GeometryInstance3D.material_override] is used, all surfaces will return the override material.
</description>
</method>
<method name="get_blend_shape_count" qualifiers="const">
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

set_blend_shape_name() would match set bone name.

@reduz
Copy link
Member Author

reduz commented Oct 16, 2021

@fire It does not seem to work, but it seems like this is a problem of the importer, not so much a problem of the code I added.

@fire
Copy link
Member

fire commented Oct 16, 2021

diff.txt

Other diffs.

* New track type BLEND_SHAPE
* Blend shapes are imported via this new track type
* Processing is more optimized (no longer relies on variants)
* Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes)
* Promo: Fixed a small bug in gizmo updating in Node3D that affected performance

Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
@reduz reduz force-pushed the implement-blend-shape-tracks branch from 92989ba to ae1c016 Compare October 16, 2021 11:36
@reduz
Copy link
Member Author

reduz commented Oct 16, 2021

@fire Pushed changes, please try the PR again.

Copy link
Member

@fire fire left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tiger sample's blend shape plays. The gltf2 morph target sample plays blends too.

@akien-mga akien-mga merged commit a4e1a07 into godotengine:master Oct 16, 2021
@akien-mga
Copy link
Member

Thanks!

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

Successfully merging this pull request may close these issues.

4 participants