KhronosGroup / KhronosGroup/glTF

Animating morph targets individually

Open
#1,675 7 comments 4 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
7.8k
Forks
1.2k
Avg merge
17h 26m
Merged PRs (30d)
5

Description

The animation spec currently allows a `channel.path` value of `"weights"`, for a sampler that must provide keyframe values for all available morph targets on the mesh. It would be useful to provide a mechanism of animating the weights of a single target, or perhaps an arbitrary subset, for two reasons:

1. **Filesize**: If only one target needs to be animated for an effect, providing 0s for other targets is wasted space.
2. **Composability**: Animation like facial expressions may be composed from multiple targets. For example, consider an animation that moves the character's mouth, and another that animates the eyebrows. Ideally those animations could be played together or separately, but playing them together may have unwanted effects if the eye animation includes weight=0 for the mouth targets.

I mentioned this in https://github.com/KhronosGroup/glTF/pull/1301, as I think that extension (if it moves forward) would be a good place to address this feature. Filing a new bug, though, just so that it's tracked for reference.

Contributor guide

Open the contributing guide

Research direction

Start by reading the animation specification's current channel.path value of "weights" and the related discussion in pull request #1301. Define how single-target or subset morph-weight animation should be represented, including composability and filesize implications; done means the proposed behavior is clearly specified and agreed upon.

Written by the indexing model from the issue text.

Assessment

Domain
computer-graphics
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.