sketch_animators.py
1 from DreamTalk.animation.abstract_animators import ProtoAnimator 2 import c4d 3 4 5 class Draw(ProtoAnimator): 6 7 def __init__(self, *objs, drawing=1, category="constructive", **kwargs): 8 self.set_values(drawing) 9 return super().__init__(self, *objs, category=category, **kwargs) 10 11 def specify_desc_ids(self): 12 self.desc_ids = { 13 "drawing": c4d.DescID(c4d.DescLevel(c4d.OUTLINEMAT_ANIMATE_STROKE_SPEED_COMPLETE, c4d.DTYPE_REAL, 0)) 14 } 15 16 def set_values(self, drawing): 17 self.values = [drawing] 18 19 def set_initial_values(self): 20 for obj in self.objs: 21 obj.sketch_material.obj[c4d.OUTLINEMAT_ANIMATE_AUTODRAW] = True 22 obj.sketch_material.obj[c4d.OUTLINEMAT_ANIMATE_STROKE_SPEED_TYPE] = 2 23 obj.sketch_material.obj[c4d.OUTLINEMAT_ANIMATE_STROKE_SPEED_COMPLETE] = 0 24 25 def specify_xpression(self): 26 self.parameter_name = "DrawCompletion" 27 self.interpolate = True 28 29 30 class UnDraw(Draw): 31 32 def __init__(self, *objs, drawing=0, **kwargs): 33 return super().__init__(self, *objs, drawing=drawing, category="destructive", **kwargs)