Skip to main content
benp1711322
Inspiring
February 9, 2019
Answered

GetKeyframeTemporalEase - how to use it & what does it mean?

  • February 9, 2019
  • 1 reply
  • 684 views

I am trying to copy/paste keyframes from one parameter to another (types slider, color & points only). To do this, I have a struct with keyframe properties, which I hope to populate/'copy' per keyframe into a vector of keyframes, which I then use to 'paste'. 

I am having difficulty understanding AEGP_GetKeyframeTemporalEase, the only guidance on which in the SDK guide is this,

Retrieves the AEGP_KeyframeEases associated with the specified dimension of the stream’s value at the time of the keyframe. dimensionL ranges from 0 to (temporal_dimensionality -1).

AEGP_GetKeyframeTemporalEase (AEGP_StreamRefH streamH, AEGP_KeyframeIndexkey_index, A_long dimensionL, AEGP_KeyframeEase *in_easeP0, AEGP_KeyframeEase *out_easeP0);

NOTE: the returned ease values must be multiplied by layer height to match the values displayed in the After Effects UI.

This is somewhat confusing.

  • What is 'the specified dimension of the stream’s value', and how is it specified?

  • What is dimensionL? The KF streams (slider, color & point) each seem only to have a 'temporal dimensionality' of 1, which leaves a range of 0 to 0.

  • How is ease value related to layer height? Is this only a concern for 'displaying' the values (where?), which i do not need to worry about when only copying keyframes from one to another?

Finally, is there an easier way of doing this, perhaps by just copying keyframe type/object?

This topic has been closed for replies.
Correct answer shachar carmi

i don't know all the answers, but i'll try my best.

the "dimension" refers to the separate X, Y and Z axis for properties where

the control of said axis can be individual of the others. for example, the

user can have the position and scale axis animate using different "ease"

settings.

some properties are multi-dimensional, but animate as one uniform property.

(such as color)

i haven't a clue in regards to the "ui height" you mentioned.

you can emulate copy and paste using a "collection" to set the selected

keyframes, and AEGP_DoCommand to execute command and paste.

you can also to the whole process in javascript, invoking the process from

the C API using AEGP_ExecuteScript().

1 reply

shachar carmiCommunity ExpertCorrect answer
Community Expert
February 9, 2019

i don't know all the answers, but i'll try my best.

the "dimension" refers to the separate X, Y and Z axis for properties where

the control of said axis can be individual of the others. for example, the

user can have the position and scale axis animate using different "ease"

settings.

some properties are multi-dimensional, but animate as one uniform property.

(such as color)

i haven't a clue in regards to the "ui height" you mentioned.

you can emulate copy and paste using a "collection" to set the selected

keyframes, and AEGP_DoCommand to execute command and paste.

you can also to the whole process in javascript, invoking the process from

the C API using AEGP_ExecuteScript().

benp1711322
Inspiring
February 17, 2019

Thank you again, Shachar!

In the end, it wasn't to difficult to do a copy/paste in the SDK. I was just dreading it, because of the ambiguities and distractions in the guide. I took the temporal thing literally and ignored the guide's comment about layer height. The keyframes copy with eases etc just fine now.