;; Crossfade with Zoom Transition ;; ;; Macro for transitioning between two frames with a zoom effect. ;; Active frame zooms out while next frame zooms in. ;; ;; Required context: ;; - zoom effect must be loaded ;; - blend effect must be loaded ;; ;; Parameters: ;; active-frame: current frame ;; next-frame: frame to transition to ;; fade-amt: transition progress (0 = all active, 1 = all next) ;; ;; Usage: ;; (include :path "../templates/crossfade-zoom.sexp") ;; ... ;; (crossfade-zoom active-frame next-frame 0.5) (defmacro crossfade-zoom (active-frame next-frame fade-amt) (let [active-zoom (+ 1.0 fade-amt) active-zoomed (zoom active-frame :amount active-zoom) next-zoom (+ 0.1 (* fade-amt 0.9)) next-zoomed (zoom next-frame :amount next-zoom)] (blend active-zoomed next-zoomed :opacity fade-amt)))