5f1108ce46
Unlike all other Skottie effects, motion blur requires sampling at multiple points on the timeline. To support this: 1) Introduce MotionBlurEffect - a custom SG render node which can drive the timeline of its subtree using an sksg::Animator. 2) Introduce MotionBlurController to swap for a regular LayerController when needed. MotionBlurController dispatches time ticks to MotionBlurEffect instead of directly to the layer animators. The actual motion blur impl is based on https://skia-review.googlesource.com/c/skia/+/221416. Motion blur requires Lottie files exported with this BodyMovin patch: https://github.com/bodymovin/bodymovin-extension/pull/15 Change-Id: I075e101ea91ec9aa300bac35ee810fd539f1aced Reviewed-on: https://skia-review.googlesource.com/c/skia/+/225416 Reviewed-by: Mike Reed <reed@google.com> Commit-Queue: Florin Malita <fmalita@chromium.org>
1 line
2.1 KiB
JSON
1 line
2.1 KiB
JSON
{"v":"5.5.5","fr":30,"ip":0,"op":60,"w":500,"h":500,"nm":"motion blur - phase 360","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"wire","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":59.5,"s":[720]}],"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":18,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":243,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"st","c":{"a":0,"k":[0,1,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":0.3,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false}],"ip":0,"op":60,"st":0,"cp":true,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"blur","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":59.5,"s":[720]}],"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"sr","sy":1,"d":1,"pt":{"a":0,"k":4,"ix":3},"p":{"a":0,"k":[0,0],"ix":4},"r":{"a":0,"k":0,"ix":5},"ir":{"a":0,"k":18,"ix":6},"is":{"a":0,"k":0,"ix":8},"or":{"a":0,"k":243,"ix":7},"os":{"a":0,"k":0,"ix":9},"ix":1,"nm":"Polystar Path 1","mn":"ADBE Vector Shape - Star","hd":false},{"ty":"fl","c":{"a":0,"k":[0,0,0,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false}],"ip":0,"op":60,"st":0,"cp":true,"mb":true,"bm":0},{"ddd":0,"ind":3,"ty":1,"nm":"White Solid 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[250,250,0],"ix":2},"a":{"a":0,"k":[250,250,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"sw":500,"sh":500,"sc":"#ffffff","ip":0,"op":60,"st":0,"cp":false,"bm":0}],"markers":[],"mb":{"sa":720,"sp":360,"spf":16,"asl":32}} |