Display tag keyframe [SOLVED]
-
On 16/06/2016 at 19:34, xxxxxxxx wrote:
Pulling my hair out trying to keyframe the current visibility % for a display tag on the currently active object in C4D R15 using Python
I'm trying to keyframe it at 0%, change it to 100% a few seconds later and then keyframe that.
Can someone help please with some tips or example code? I can make keyframes, move around the timeline, etc without issue just stuck on how to do display tag keyframe specifically.
-
On 16/06/2016 at 22:05, xxxxxxxx wrote:
#This script creates the visibility track on the display tag #Then adds two keys to the track's curve import c4d def main() : obj = doc.GetActiveObject() if not obj: return False tag = obj.GetTag(5613) #Get the display tag if not tag: return False tag[c4d.DISPLAYTAG_AFFECT_VISIBILITY] = True if not tag.FindCTrack(c4d.DescID(c4d.DescLevel(c4d.DISPLAYTAG_VISIBILITY))) : visTrack = c4d.CTrack(tag, c4d.DescID(c4d.DescLevel(c4d.DISPLAYTAG_VISIBILITY))) tag.InsertTrackSorted(visTrack) curve = visTrack.GetCurve() ckey = curve.AddKey(c4d.BaseTime(0.0))['key'] #Creates a key at frame 0 ckey.SetValue(curve, 0.4) #40% ckey = curve.AddKey(c4d.BaseTime(1.0))['key'] #Creates a key at frame 30 ckey.SetValue(curve, 1.0) #100% c4d.EventAdd() c4d.DrawViews(c4d.DRAWFLAGS_FORCEFULLREDRAW) #Update the viewport and the red dot icon if __name__=='__main__': main()
-ScottA
-
On 17/06/2016 at 01:24, xxxxxxxx wrote:
Hello,
as you can see in Scott's example animation data is stored in a animation track represented by the class CTrack. For each animated parameter the host object stores a CTrack object. This CTrack can be obtained with FindCTrack(), if no Ctrack exsists one can be created and then added to the host object using InsertTrackSorted().
A CTrack contains a CCurve and that CCurve contains the actual animation keyframes. These keyframes are represented by CKey objects. You can add a new key to a curve using AddKey().
Best wishes,
Sebastian -
On 17/06/2016 at 08:46, xxxxxxxx wrote:
Thank you Scott for the demonstration and Sebastian for the explanation! It finally works