- Qt 6.7
- Qt 3D
- QML Types
- Qt3D.Animation
- KeyframeAnimation
- Qt 6.7.2 Reference Documentation

# KeyframeAnimation QML Type

A type implementing simple keyframe animation to a Transform. More...

Import Statement: | import Qt3D.Animation 2.7
Inherits: | AbstractAnimation

- List of all members, including inherited members

## Properties

- easing : EasingCurve
- endMode : enumeration
- framePositions : list<real>
- keyframes : list<Transform>
- startMode : enumeration
- target : Transform
- targetName : string

## Detailed Description

A KeyframeAnimation type implements simple keyframe animation that can be used to animate Transform. The keyframes consists of multiple timed Qt3D.Core::Transforms, which are interpolated and applied to the target Transform. EasingCurve is used between keyframes to control the interpolator. RepeatMode can be set for when the position set to the KeyframeAnimation is less or or greater than the values defined in the keyframe positions.

## Property Documentation

easing : EasingCurve

Holds the easing curve of the interpolator between keyframes.

endMode : enumeration

Holds the repeat mode for the position values greater than the last frame position.

- None
- Constant
- Repeat

framePositions : list<real>

Holds the positions of the keyframes. Each position in the list specifies the position of the corresponding keyframe. The values must be in an ascending order. Values can be positive or negative and do not have any predefined unit.

keyframes : list<Transform>

Holds the list of keyframes in the keyframe animation.

startMode : enumeration

Holds the repeat mode for the position values less than the first frame position.

- None
- Constant
- Repeat

target : Transform

Holds the target Transform the animation is applied to.

targetName : string

Holds the name of the target transform. This is a convenience property making it easier to match the target transform to the keyframe animation. The name is usually same as the name of the parent entity of the target transform, but does not have to be.