rect = shapes.add_shape(objects.Rect()) rect.size.add_keyframe(0, Point(100, 100)) rect.size.add_keyframe(30, Point(50, 120)) rect.size.add_keyframe(60, Point(100, 100)) rect.position.add_keyframe(0, Point(110, 110)) rect.position.add_keyframe(20, Point(80, 110)) rect.position.add_keyframe(40, Point(110, 110)) rrect = shapes.add_shape(objects.Rect()) rrect.size.value = Point(100, 100) rrect.position.value = Point(440, 110) rrect.rounded.add_keyframe(0, 0) rrect.rounded.add_keyframe(30, 30) rrect.rounded.add_keyframe(60, 0) fill = shapes.add_shape(objects.Fill(Color(1, 1, 0))) stroke = shapes.add_shape(objects.Stroke(Color(0, 0, 0), 5)) beziers = layer.add_shape(objects.Group()) beziers.transform.position.value = Point(0, 130) beziers.add_shape(rect.to_bezier()) beziers.add_shape(rrect.to_bezier()) beziers.add_shape(circle.to_bezier()) beziers.add_shape(star.to_bezier()) fill = beziers.add_shape(objects.Fill(Color(0, 0, 1))) stroke = beziers.add_shape(objects.Stroke(Color(1, 1, 1), 5)) script.script_main(an)
#!/usr/bin/env python3 import sys import os sys.path.insert( 0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "lib")) from lottie.utils import script from lottie import objects from lottie.parsers.svg import parse_svg_file from lottie import Point, Color an = parse_svg_file( os.path.join(os.path.dirname(os.path.abspath(__file__)), "blep.svg")) layer = an.insert_layer(0, objects.ShapeLayer()) r = layer.add_shape(objects.Rect()) r.position.value = Point(256, 256) r.size.value = Point(512, 512) gf = layer.add_shape( objects.GradientFill([(0, Color(1, 1, 1)), (1, Color(0, 0, 0))])) gf.start_point.value = Point(256, 256) gf.end_point.value = Point(256, 64) an.layers[-1].matte_mode = objects.MatteMode.Luma script.script_main(an)
import sys import os sys.path.insert( 0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "lib")) from lottie.utils import script from lottie import objects from lottie.parsers.svg import parse_svg_file from lottie import Point, Color last_frame = 120 an = parse_svg_file( os.path.join(os.path.dirname(os.path.abspath(__file__)), "blep.svg"), 0, last_frame) gaussian = objects.effects.GaussianBlurEffect() an.layers[0].effects = [ #objects.effects.TritoneEffect(Color(1, 0, 0), Color(0, 1, 0), Color(0, 0, 1)), #objects.effects.FillEffect(color=Color(1, 0, 0), opacity=0.5) objects.effects.DropShadowEffect(Color(0, 0, 0), 128, 135, 10, 7), objects.effects.TintEffect(Color(0, 0, 0), Color(0, 1, 0), 90), gaussian, ] gaussian.sigma.add_keyframe(last_frame / 2, 0) gaussian.sigma.add_keyframe(last_frame * 3 / 4, 25) gaussian.sigma.add_keyframe(last_frame, 0) script.script_main(an)
sys.path.insert( 0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "lib")) from lottie.utils import script from lottie import objects from lottie.objects import easing from lottie import Point, Color, Size an = objects.Animation(180) layer = objects.ShapeLayer() an.add_layer(layer) easings = [ (easing.Linear(), Color(1, 1, 1)), (easing.Jump(), Color(0, 0, 0)), (easing.EaseOut(1), Color(1, 0, 0)), (easing.EaseOut(1 / 2), Color(1 / 2, 0, 0)), (easing.EaseOut(1 / 3), Color(1 / 3, 0, 0)), (easing.EaseOut(1 / 5), Color(1 / 5, 0, 0)), (easing.EaseOut(1 / 10), Color(1 / 19, 0, 0)), (easing.EaseIn(1), Color(0, 1, 0)), (easing.EaseIn(1 / 2), Color(0, 1 / 2, 0)), (easing.EaseIn(1 / 3), Color(0, 1 / 3, 0)), (easing.EaseIn(1 / 5), Color(0, 1 / 5, 0)), (easing.EaseIn(1 / 10), Color(0, 1 / 10, 0)), (easing.Sigmoid(1), Color(0, 0, 1)), (easing.Sigmoid(1 / 2), Color(0, 0, 1 / 2)), (easing.Sigmoid(1 / 3), Color(0, 0, 1 / 3)), (easing.Sigmoid(1 / 5), Color(0, 0, 1 / 5)),
os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "lib" )) from lottie.utils import script from lottie import objects from lottie.objects import easing from lottie import Point, Color, Size, PolarVector from lottie.utils import animation as anutils last_frame = 120 an = objects.Animation(last_frame) layer = objects.ShapeLayer() an.insert_layer(0, layer) color1 = Color(1, 0.98, 0.282) color2 = Color(1, 0.341, 0.016) color3 = Color(0.698, 0.114, 0.02) particle_start = Point(256, 256) particle_size = Point(20, 20) particle_end = Point(256, -particle_size.y*2) start_len_min = 0 start_len_max = 128 opacity_start = 100 opacity_end = 20 def particle(): g = layer.add_shape(objects.Group()) b = g.add_shape(objects.Ellipse()) fill = objects.Fill()
)) from lottie.utils import script from lottie import objects from lottie import Point, Color an = objects.Animation(59) layer = objects.ShapeLayer() an.add_layer(layer) g1 = layer.add_shape(objects.Group()) circle = g1.add_shape(objects.Ellipse()) circle.size.value = Point(100, 100) circle.position.value = Point(200, 100) g1.add_shape(objects.Fill(Color(1, 0, 0))) g1.add_shape(objects.Stroke(Color(0, 0, 0), 5)) g2 = layer.add_shape(objects.Group()) star = g2.add_shape(objects.Star()) star.inner_radius.value = 20 star.outer_radius.value = 50 star.position.value = Point(300, 100) g2.add_shape(objects.Fill(Color(0, 1, 0))) g2.add_shape(objects.Stroke(Color(0, 0, 0), 5)) g3 = layer.add_shape(objects.Group()) rect = g3.add_shape(objects.Rect()) rect.size.value = Point(100, 100) rect.position.value = Point(100, 100) g3.add_shape(objects.Fill(Color(0, 0, 1)))
os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "lib" )) from lottie.utils import script from lottie import objects from lottie.utils.animation import spring_pull from lottie import Point, Color an = objects.Animation(100) layer = objects.ShapeLayer() an.add_layer(layer) settings = [ (Color(1, 1, 0), 128, 7), (Color(1, 0, 0), 256, 15), (Color(0, .5, 1), 384, 30), ] for color, x, falloff in settings: group = layer.add_shape(objects.Group()) ball = group.add_shape(objects.Ellipse()) ball.size.value = Point(100, 100) group.add_shape(objects.Fill(color)) group.transform.position.value = Point(x, -100) spring_pull(group.transform.position, Point(x, 256), 0, 60, falloff, 7) group.transform.position.add_keyframe(85, Point(x, -100)) script.script_main(an)
an = objects.Animation(last_frame) base = an.add_layer(objects.NullLayer()) base.transform.anchor_point.value = base.transform.position.value = Point(256, 256) base.transform.rotation.add_keyframe(0, 0) base.transform.rotation.add_keyframe(last_frame, 360) star_layer = objects.ShapeLayer() base.add_child(star_layer) star = star_layer.add_shape(objects.Star()) star.inner_radius.value = 20 star.outer_radius.value = 50 star.position.value = Point(50, 50) star_layer.add_shape(objects.Fill(Color(1, 1, 0))) star_layer.add_shape(objects.Stroke(Color(0, 0, 0), 5)) star_layer.transform.anchor_point = star.position star_layer.transform.position.value = Point(50, 256) star_layer.transform.rotation.add_keyframe(0, 0) star_layer.transform.rotation.add_keyframe(last_frame, -360) circle_layer = objects.ShapeLayer() an.add_layer(circle_layer) circle_layer.parent = base circle = circle_layer.add_shape(objects.Ellipse()) circle.size.value = NVector(100, 100) circle_layer.add_shape(objects.Fill(Color(1, 0, 0))) circle_layer.add_shape(objects.Stroke(Color(0, 0, 0), 5)) circle_layer.transform.position.add_keyframe(0, Point(256, 512-50))
an = objects.Animation(59) layer = objects.ShapeLayer() an.add_layer(layer) g1 = layer.add_shape(objects.Group()) circle = g1.add_shape(objects.Ellipse()) circle.size.value = Point(100, 100) circle.position.value = Point(128, 156) fill = g1.add_shape(objects.GradientFill()) fill.start_point.value = Point(100, 0) fill.end_point.value = Point(200, 0) fill.colors.set_stops([(0, Color(1, 0, 0)), (1, Color(1, 1, 0))]) stroke = g1.add_shape(objects.GradientStroke(5)) stroke.start_point.value = Point(100, 0) stroke.end_point.value = Point(200, 0) stroke.colors.add_keyframe(0, [(0, Color(1, 0, 0)), (1, Color(1, 1, 0))]) stroke.colors.add_keyframe(10, [(0, Color(1, 1, 0)), (1, Color(0, 1, 0))]) stroke.colors.add_keyframe(30, [(0, Color(1, 0, 1)), (1, Color(0, 0, 1))]) stroke.colors.add_keyframe(59, [(0, Color(1, 0, 0)), (1, Color(1, 1, 0))]) stroke.colors.count = 2 stroke.width.value = 10 g2 = layer.add_shape(objects.Group()) circle = g2.add_shape(objects.Ellipse()) circle.size.value = Point(200, 200)
rot_time = 45 an = objects.Animation(rot_time*4) layer = objects.ShapeLayer() an.add_layer(layer) def add_shape(shape, color, parent): g = parent.add_shape(objects.Group()) s = g.add_shape(shape) g.add_shape(objects.Fill(color)) return s face1 = add_shape(objects.Ellipse(), Color(1, 1, 0), layer) face2 = add_shape(objects.Ellipse(), Color(0, 1, 0), layer) side = layer.add_shape(objects.Group()) side1 = add_shape(objects.Ellipse(), Color(1, 0, 0), side) side2 = add_shape(objects.Ellipse(), Color(1, 0, 0), side) sider = add_shape(objects.Rect(), Color(1, 0, 0), side) width = 10 face1.size.add_keyframe(rot_time*0, Point(256, 256), easing.EaseIn()) face1.size.add_keyframe(rot_time*1, Point(0, 256)) face1.size.add_keyframe(rot_time*2, Point(0, 256)) face1.size.add_keyframe(rot_time*3, Point(0, 256), easing.EaseOut()) face1.size.add_keyframe(rot_time*4, Point(256, 256))
an = objects.Animation(last_frame) layer = objects.ShapeLayer() an.add_layer(layer) layer.auto_orient = True group = layer.add_shape(objects.Group()) star = objects.Star() star.inner_radius.value = 20 star.outer_radius.value = 50 star.position.value = Point(0, 0) group.add_shape(star) group.add_shape(objects.Ellipse(NVector(0, 35), NVector(16, 16))) layer.add_shape(objects.Fill(Color(1, 1, 0))) tl = 120 layer.transform.position.add_keyframe(last_frame / 4 * 0, Point(+50, 256), out_tan=NVector(0, -tl), in_tan=NVector(-tl, 0)) layer.transform.position.add_keyframe(last_frame / 4 * 1, Point(256, +50), out_tan=NVector(+tl, 0), in_tan=NVector(0, -tl)) layer.transform.position.add_keyframe(last_frame / 4 * 2, Point(462, 256), out_tan=NVector(0, +tl), in_tan=NVector(+tl, 0)) layer.transform.position.add_keyframe(last_frame / 4 * 3,
#!/usr/bin/env python3 """ @note Text layers are not supported by telegram """ import sys import os sys.path.insert( 0, os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "lib")) from lottie.utils import script from lottie import objects from lottie import Color, Point an = objects.Animation(120) an.fonts = objects.text.FontList() an.fonts.append(objects.text.Font("sans", name="sans")) layer = objects.TextLayer() an.add_layer(layer) layer.data.add_keyframe( 0, objects.text.TextDocument("Text", 200, Color(1, 0, 0), "sans")) layer.data.add_keyframe( 60, objects.text.TextDocument("Here", 200, Color(0, 1, 0), "sans")) layer.transform.position.value = Point(30, 200) script.script_main(an)