Setting value of keyframe not working
-
On 05/10/2015 at 13:06, xxxxxxxx wrote:
I have an Alembic object that has animation on it. I don't want to adjust that.
I want to be able to keyframe the "Start of Animation" option that's in the Object tab.
I can add a track, get the curve, and add a key with no errors popping up, I just can't get the value to go to anything else beside "1 F"
I think my issue is that the CKey.SetValue requires a curve and a float and the end result needs to be a baseTime object.
Here's a snippet of the code I have currently.
doc = c4d.documents.GetActiveDocument() sel = doc.GetActiveObject() startFrame = 200 track = c4d.CTrack( sel, c4d.DescID( c4d.ALEMBIC_START_DELAY )) sel.InsertTrackSorted( track ) curve = track.GetCurve() fKey = c4d.CKey() track.FillKey( doc, sel, fKey ) fKey.SetTime( curve, c4d.BaseTime( startFrame, fps)) fKey.SetValue( curve, startFrame ) curve.InsertKey( fKey ) c4d.EventAdd()
This code doesn't generate errors, it just doesn't add the new value of 200.
What am I missing or doing wrong? -
On 06/10/2015 at 04:48, xxxxxxxx wrote:
Hi Herbie,
the CTrack needs to be set up correctly with the datatype:
track = c4d.CTrack(sel, c4d.DescID(c4d.DescLevel(c4d.ALEMBIC_START_DELAY, c4d.DTYPE_TIME))
And as the keyframe is of type Basetime, you need to use SetGeData() to set the value:
fKey.SetGeData(curve, c4d.BaseTime(startFrame, fps))
There's also another thread Questions regarding Keys/CKey, which may provide you some additional infos.
-
On 06/10/2015 at 10:25, xxxxxxxx wrote:
Aww yes! This helps tremendously. There's no doubt I will use this all of the time now.
Thank you!