KhronosGroup / KhronosGroup/glTF
Animating morph targets individually
- 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
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