Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
loop-animation
with bitECS may not work correctly if multipleloop-animation
components use the same animation name to refer toglTF.animation(s)
.Root issue
Mozilla Hubs
loop-animation
component has a problem in the spec. Aloop-animation
component can refer toglTF.animations
with animation names but the glTF specification allows non-unique names inglTF.animations
so if there are multipleglTF.animations
that have the same name no one can know whatglTF.animations
aloop-animation
component using that names refers to.Refer to #6153 for details.
Solution
Preprocesses glTF content before parsing to avoid the problem by adding a glTF loader plugin that converts name based animation reference in
loop-animation
component to index based.Note
The old
loop-animation
component handler (without bitECS) seems to assume that multipleglTF.animations
that have the same name have the same animation data and loop-animation refers to the firstglTF.animation
of the ones having the same name. The plugin follows the assumption for the compatibility, not sure if it is the best approach.With this commit we may remove name based animation reference processing codes from the
loop-animation
handlers but until we are confident for the change we may keep them.Change
loop-animation
component to index based.Another approach: #6153