Add a basic animation system#232
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Objective
Introduces a foundational implementation for animation playback. It adds support for defining animation clips, associating them with entities, and driving arbitrary targets which are updated over time through animation clips.
Technical Detail
The following are new concepts introduced:
AnimationClip: Represents a collection of time-based animation data.Acts as the container for one or more AnimationTracks.AnimationTrack: Defines a timeline of keyframes for a single effector type.Supports multiple effector categories:AnimationEffector: Defines the way that anAnimationTrackaffects an entity, component or resource.AnimationPlayer: Component responsible for playback control of a multiple animation clips.AnimationTarget: Component which marks an entity to be animated by anAnimationPlayer.The following animation effectors have been implemented to test the animation system:
Position2DAnimationEffector: Affects the position of a 2d entity.Orientation2DAnimationEffector: Affects the orientation of a 2d entity.Scale2DAnimationEffector: Affects the scale of a 2d entity.Position3DAnimationEffector: Affects the position of a 3d entity.Orientation3DAnimationEffector: Affects the orientation of a 3d entity.Scale3DAnimationEffector: Affects the scale of a 3d entity.Future work:
Solution
N/A
Showcase
See the demo added.
Migration guide
N/A
Checklist