Group { inputs 0 tile_color 0x131313ff label Lines note_font "Verdana Bold" note_font_size 16 postage_stamp true addUserKnob {20 User l cm_perspective_lines} addUserKnob {12 Center l "Center Point"} Center {835 1635} addUserKnob {3 LinThickness l "Line Thickness"} LinThickness 1 addUserKnob {41 multiply T Grade1.multiply} addUserKnob {6 HorizonCheckBox l "Disable Horizon Line" +STARTLINE} addUserKnob {26 "" +STARTLINE} addUserKnob {6 boolean l crop +STARTLINE} boolean true addUserKnob {41 reset l "Reset Format" -STARTLINE T Crop1.reset} addUserKnob {26 ""} addUserKnob {26 aboutTXT l "" +STARTLINE T "Perspective Lines v1.0 - (c) 2020 - Chris McCrowe - www.chrismccrowe.com"} } Roto { inputs 0 output alpha cliptype none curves {{{v x3f99999a} {f 0} {n {layer Root {f 2097152} {t x44648000 x44428000} {a pt1x 0 pt1y 0 pt2x 0 pt2y 0 pt3x 0 pt3y 0 pt4x 0 pt4y 0 ptex00 0 ptex01 0 ptex02 0 ptex03 0 ptex10 0 ptex11 0 ptex12 0 ptex13 0 ptex20 0 ptex21 0 ptex22 0 ptex23 0 ptex30 0 ptex31 0 ptex32 0 ptex33 0 ptof1x 0 ptof1y 0 ptof2x 0 ptof2y 0 ptof3x 0 ptof3y 0 ptof4x 0 ptof4y 0 pterr 0 ptrefset 0 ptmot x40800000 ptref 0} {curvegroup OpenSpline1 1049088 bezier {{cc {f 1056800} {px x447a4000 {0 0} {{a osw {{x447a4000 1}} osf {{x447a4000 0}}} {=0 x419fffe2} {=Perspective.Center.y x44338001}} {0 0} {0 0} {{a osw {{x447a4000 1}} osf {{x447a4000 0}}} {=root.format.r x44e40000} {=Perspective.Center.y x44444000}} {0 0}}} idem} {tx x447a4000 x44628000 x443fe000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x447a4000 ltm x447a4000 tt x41200000}}}}}} toolbox {selectAll { { selectAll str 1 ssx 1 ssy 1 sf 1 } { createBezier str 1 ssx 1 ssy 1 sf 1 sb 1 tt 4 } { createBezierCusped str 1 ssx 1 ssy 1 sf 1 sb 1 } { createBSpline str 1 ssx 1 ssy 1 sf 1 sb 1 } { createEllipse str 1 ssx 1 ssy 1 sf 1 sb 1 } { createRectangle str 1 ssx 1 ssy 1 sf 1 sb 1 } { createRectangleCusped str 1 ssx 1 ssy 1 sf 1 sb 1 } { createOpenSpline str 1 ssx 1 ssy 1 sf 1 tt 10 } { brush str 1 ssx 1 ssy 1 sf 1 sb 1 } { eraser src 2 str 1 ssx 1 ssy 1 sf 1 sb 1 } { clone src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { reveal src 3 str 1 ssx 1 ssy 1 sf 1 sb 1 } { dodge src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { burn src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { blur src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { sharpen src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { smear src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } } } toolbar_brush_hardness 0.200000003 toolbar_openspline_width 1 toolbar_source_transform_scale {1 1} toolbar_source_transform_center {320 240} colorOverlay {0 0 0 0} lifetime_type "all frames" lifetime_start 1001 lifetime_end 1001 motionblur_shutter_offset_type centred openspline_width 1 name HorizonRoto xpos -290 ypos -370 } Dilate { size 2 name Dilate2 xpos -290 ypos -318 } Shuffle { in alpha name ALPHA1 tile_color 0xff note_font "Verdana Bold" note_font_size 21 xpos -290 ypos -261 postage_stamp true } Text2 { font_size_toolbar 30 font_width_toolbar 100 font_height_toolbar 100 message HORIZON old_message {{72 79 82 73 90 79 78} } box {0 1525 67 {Perspective.Center.y}} transforms {{0 2} } font_size_values {{0 30 1 30 2 30 3 30 4 30 5 30 6 30 0 20 1 20 2 20 3 20 4 20 5 20 6 20} } cursor_position 7 font {{ Arial : Regular : arial.ttf : 0 }} font_size 30 center {914 778} cursor_initialised true autofit_bbox false initial_cursor_position {{0 1556} } group_animations {{0} imported: 0 selected: items: "root transform/"} animation_layers {{1 11 914 778 0 0 1 1 0 0 0 0} } name Text1 xpos -290 ypos -167 } Grade { multiply {1 0 0 1} name Grade2 xpos -290 ypos -110 } Roto { inputs 0 output alpha cliptype none curves {{{v x3f99999a} {f 0} {n {layer Root {f 2097664} {t x44648000 x44428000} {a pt1x 0 pt1y 0 pt2x 0 pt2y 0 pt3x 0 pt3y 0 pt4x 0 pt4y 0 ptex00 0 ptex01 0 ptex02 0 ptex03 0 ptex10 0 ptex11 0 ptex12 0 ptex13 0 ptex20 0 ptex21 0 ptex22 0 ptex23 0 ptex30 0 ptex31 0 ptex32 0 ptex33 0 ptof1x 0 ptof1y 0 ptof2x 0 ptof2y 0 ptof3x 0 ptof3y 0 ptof4x 0 ptof4y 0 pterr 0 ptrefset 0 ptmot x40800000 ptref 0} {curvegroup OpenSpline26 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=0 x430b3335} {=root.format.t*.2 x43440000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44660000} {=Perspective.Center.y x443a0000}} {0 0}}} idem} {tx x44854000 x43e60000 x43fe0000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline25 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=0 x429999a0} {=root.format.t*.37 x43f2428d}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44660000} {=Perspective.Center.y x443d0000}} {0 0}}} idem} {tx x44854000 x43e48000 x44260000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline24 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=0 x42b199a0} {=root.format.t*.5 x441c199a}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44650000} {=Perspective.Center.y x443c0000}} {0 0}}} idem} {tx x44854000 x43df8000 x443c0000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline23 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=0 x4299999c} {=root.format.t*.65 x4451a667}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44670000} {=Perspective.Center.y x443a0000}} {0 0}}} idem} {tx x44854000 x43e38000 x44628000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline22 1049088 bezier {{cc {f 1056800}} {cc {f 1056800}}} {tx x44854000 0} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline21 1049088 bezier {{cc {f 1056800}} {cc {f 1056800}}} {tx x44854000 0} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline20 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=0 x42b66664} {=root.format.t*.8 x44779999}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44651333} {=Perspective.Center.y x443a0000}} {0 0}}} idem} {tx x44854000 x43e50000 x44810000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline19 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=0 xc345a66d} {=root.format.t x449cd000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44640000} {=Perspective.Center.y x443c0000}} {0 0}}} idem} {tx x44854000 x43e30000 x448e8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline18 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.t*.2 x43166667} {=root.format.t x44c0d333}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44670000} {=Perspective.Center.y x443b0000}} {0 0}}} idem} {tx x44854000 x4420c000 x448f8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline17 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.35 x440bd999} {=root.format.t x44c35666}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44698000} {=Perspective.Center.y x44390000}} {0 0}}} idem} {tx x44854000 x444e0000 x448f0000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline16 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 xbf800000}}} {=root.format.r*.5 x4448dccd} {=root.format.t x44ca0999}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44690000} {=Perspective.Center.y x44380000}} {0 0}}} idem} {tx x44854000 x446d0000 x448ec000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline15 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.65 x4470efff} {=root.format.t x44c28000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44698000} {=Perspective.Center.y x44390000}} {0 0}}} idem} {tx x44854000 x4484c000 x448f8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline14 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.8 x44991199} {=root.format.t x44c0d334}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x446a8000} {=Perspective.Center.y x443e0000}} {0 0}}} idem} {tx x44854000 x4497a000 x448f8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline13 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44d1a800} {=root.format.t x44c42ccd}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x446a6cce} {=Perspective.Center.y x44390000}} {0 0}}} idem} {tx x44854000 x44ac6000 x448e8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline12 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44e3c000} {=root.format.t*.8 x44a38000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44688000} {=Perspective.Center.y x443c0000}} {0 0}}} idem} {tx x44854000 x44ac0000 x4480c000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline11 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44e5d333} {=root.format.t*.5 x4420e666}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44668000} {=Perspective.Center.y x44390000}} {0 0}}} idem} {tx x44854000 x44ab8000 x445a8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline10 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44e48000} {=root.format.t*.5 x44360000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44670000} {=Perspective.Center.y x443d0000}} {0 0}}} idem} {tx x44854000 x44ac0000 x44398000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline9 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44e44000} {=root.format.t*.37 x43fa0000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44670000} {=Perspective.Center.y x443a0000}} {0 0}}} idem} {tx x44854000 x44abe000 x441b8000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline8 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44e34000} {=root.format.r*.2 x433c0000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44678000} {=Perspective.Center.y x44390000}} {0 0}}} idem} {tx x44854000 x44ab8000 x43e80000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline7 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r x44d34802} {=0 xc3934004}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44680000} {=Perspective.Center.y x44390000}} {0 0}}} idem} {tx x44854000 x44ac6000 x43b80000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline6 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.8 x44b74000} {=0 0}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44668000} {=Perspective.Center.y x44370000}} {0 0}}} idem} {tx x44854000 x44954000 x43b70000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline5 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.65 x448f8000} {=0 xc0800000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44650000} {=Perspective.Center.y x44340000}} {0 0}}} idem} {tx x44854000 x44810000 x43b30000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline4 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.5 x443d8000} {=0 xc23ffff1}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44660000} {=Perspective.Center.y x44380000}} {0 0}}} idem} {tx x44854000 x44638000 x43b70000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline3 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.35 x43ec0000} {=0 xc1000000}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44668000} {=Perspective.Center.y x44360000}} {0 0}}} idem} {tx x44854000 x442e4000 x43b40000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline2 1049088 bezier {{cc {f 1056800} {px x44854000 {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=root.format.r*.2 x4433c000} {=0 xc388ccce}} {0 0} {0 0} {{a osw {{x44854000 1}} osf {{x44854000 0}}} {=Perspective.Center.x x44668000} {=Perspective.Center.y x44340000}} {0 0}}} idem} {tx x44854000 x44104000 x43b40000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x44854000 ltm x44854000 tt x41200000}} {curvegroup OpenSpline1 1049088 bezier {{cc {f 1056800} {px {x447a4000 x44854000} {{{0 -}} {{0 -}}} {{a osw {{x447a4000 1 -} {x44854000}} osf {{x447a4000 0 -} {x44854000}}} {=0 {x41133340 x43533335}} {=0 {x4194ccd0 xc2533340}}} {{{0 -}} {{0 -}}} {{{0 -}} {{0 -}}} {{a osw {{x447a4000 1 -} {x44854000}} osf {{x447a4000 0 -} {x44854000}}} {=Perspective.Center.x {x449d2002 x44c1d996}} {=Perspective.Center.y {x430e0008 x4439a47c}}} {{{0 -}} {{0 -}}}}} {cc {f 1056800} {px {x447a4000 x44854000} {{0} {0}} {{a osw {{x447a4000 1} {x44854000}} osf {{x447a4000 0} {x44854000}}} {0} {0}} {{0} {0}} {{0} {0}} {{a osw {{x447a4000 1} {x44854000}} osf {{x447a4000 0} {x44854000}}} {0} {0}} {{0} {0}}}}} {tx x447a4000 x43ef0000 x43c80000} {a osbe 0 osee 0 osw 1 osf 0 str 1 ltn x447a4000 ltm x447a4000 tt x41200000}}}}}} toolbox {selectAll { { selectAll str 1 ssx 1 ssy 1 sf 1 } { createBezier str 1 ssx 1 ssy 1 sf 1 sb 1 tt 4 } { createBezierCusped str 1 ssx 1 ssy 1 sf 1 sb 1 tt 5 } { createBSpline str 1 ssx 1 ssy 1 sf 1 sb 1 } { createEllipse str 1 ssx 1 ssy 1 sf 1 sb 1 } { createRectangle str 1 ssx 1 ssy 1 sf 1 sb 1 } { createRectangleCusped str 1 ssx 1 ssy 1 sf 1 sb 1 } { createOpenSpline str 1 ssx 1 ssy 1 sf 1 tt 10 } { brush str 1 ssx 1 ssy 1 sf 1 sb 1 } { eraser src 2 str 1 ssx 1 ssy 1 sf 1 sb 1 } { clone src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { reveal src 3 str 1 ssx 1 ssy 1 sf 1 sb 1 } { dodge src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { burn src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { blur src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { sharpen src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } { smear src 1 str 1 ssx 1 ssy 1 sf 1 sb 1 } } } toolbar_brush_hardness 0.200000003 toolbar_openspline_width 1 toolbar_source_transform_scale {1 1} toolbar_source_transform_center {320 240} colorOverlay {0 0 0 0} lifetime_type "all frames" lifetime_start 1001 lifetime_end 1001 motionblur_shutter_offset_type centred openspline_width 1 name PerspectiveRoto xpos -97 ypos -413 } Dilate { size {{parent.LinThickness-1}} name Dilate1 xpos -97 ypos -357 } Shuffle { in alpha name ALPHA tile_color 0xff note_font "Verdana Bold" note_font_size 21 xpos -97 ypos -299 postage_stamp true } Grade { multiply {0 0.1 5 1} name Grade1 xpos -97 ypos -176 } Merge2 { inputs 2 name Merge1 xpos -97 ypos -110 disable {{parent.HorizonCheckBox}} } Crop { box {0 0 4096 3112} crop false name Crop1 xpos -97 ypos -73 disable {{parent.boolean-1}} } set N48468400 [stack 0] Output { name Output1 xpos -97 ypos -27 } push $N48468400 Viewer { frame 1064 frame_range 1001-1100 name Viewer1 xpos 89 ypos 56 } end_group