/ animation / sketch_animators.py
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)