Checking Keyframe curve type
-
I'm creating a python script to export keyframe data. When doing this I want to check to make sure that the keyframes are on either a position or a rotation track and ignore all others. I'm a little lost on how to do that check. I'm currently building this in xpresso with a python node and hoping to later convert it to a plug in. Here is my current code with comments.
import c4d import math def main(): # Get a list of all the animation tracks for the object track = Object.GetCTracks() #iterate through the list of tracks for x in track: #---Here I would like to check if this is rotation/position track or something that should be ignored ---- print x #---- When x is printed I receive <c4d.CTrack object called 'Position . Y/Track' with ID 5350 at 0x0000025FC3AE2770> so I can see its position but I don't know how to sort that out -----
I think what I'm looking for is a GetTrackName or something along those lines?
Edit a_block: Added code tags
-
Hello and welcome,
what exactly do you mean with "export keyframe data"? Do you want to write data into a file? The best way to develop such code would be in a Python script that you can edit and execute in the Script Manager. A XPresso Python node is meant to contain code that is executed as part of XPresso to define the behavior of the XPresso network. A XPresso Python node should not be used to modify the scene or to perform I/O operations.
A CTrack object stores the DescID of the associated parameter. You can access that DescID with GetDescriptionID().
Alternatively you can use BaseList2D.FindCTrack() to search for the CTrack associated with a certain parameter DescID. You find an example on GitHub.
You find general information on how to use CTrack and DescID also in the C++ documentation:
best wishes,
Sebastian