motionrender 0.0.0-stage → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +61 -2
  3. package/blocks/badge.json +68 -0
  4. package/blocks/big-stat.json +240 -0
  5. package/blocks/cta-end.json +283 -0
  6. package/blocks/feature-list.json +286 -0
  7. package/blocks/footage.json +43 -0
  8. package/blocks/fx-background-swap.json +170 -0
  9. package/blocks/fx-before-after.json +212 -0
  10. package/blocks/fx-captions.json +34 -0
  11. package/blocks/fx-chat.json +368 -0
  12. package/blocks/fx-checklist.json +609 -0
  13. package/blocks/fx-clone-wall.json +181 -0
  14. package/blocks/fx-color-pop.json +92 -0
  15. package/blocks/fx-command-bridge.json +358 -0
  16. package/blocks/fx-counter-hero.json +206 -0
  17. package/blocks/fx-cta-card.json +337 -0
  18. package/blocks/fx-day-to-night.json +174 -0
  19. package/blocks/fx-duo-title.json +245 -0
  20. package/blocks/fx-duotone.json +95 -0
  21. package/blocks/fx-extruded-title.json +309 -0
  22. package/blocks/fx-gallery.json +239 -0
  23. package/blocks/fx-glass-cards.json +921 -0
  24. package/blocks/fx-glitch-title.json +373 -0
  25. package/blocks/fx-grade-look.json +91 -0
  26. package/blocks/fx-highlighter.json +53 -0
  27. package/blocks/fx-icon-orbit.json +2694 -0
  28. package/blocks/fx-lens-flare.json +325 -0
  29. package/blocks/fx-letterbox.json +105 -0
  30. package/blocks/fx-light-leak.json +140 -0
  31. package/blocks/fx-map-journey.json +443 -0
  32. package/blocks/fx-neon-outline.json +743 -0
  33. package/blocks/fx-notifications.json +456 -0
  34. package/blocks/fx-progress-ring.json +143 -0
  35. package/blocks/fx-pull-out.json +68 -0
  36. package/blocks/fx-punch-in.json +81 -0
  37. package/blocks/fx-rgb-flash.json +166 -0
  38. package/blocks/fx-shake-hit.json +120 -0
  39. package/blocks/fx-split-reveal.json +110 -0
  40. package/blocks/fx-spotlight.json +1383 -0
  41. package/blocks/fx-stats-split.json +500 -0
  42. package/blocks/fx-step-tracker.json +528 -0
  43. package/blocks/fx-sticker-freeze.json +584 -0
  44. package/blocks/fx-strike-rewrite.json +79 -0
  45. package/blocks/fx-ticker.json +179 -0
  46. package/blocks/fx-timeline.json +1287 -0
  47. package/blocks/fx-tracked-label.json +167 -0
  48. package/blocks/fx-typewriter-quote.json +164 -0
  49. package/blocks/handle.json +43 -0
  50. package/blocks/icon-row.json +404 -0
  51. package/blocks/image-caption.json +248 -0
  52. package/blocks/lower-third.json +106 -0
  53. package/blocks/phone-mockup.json +459 -0
  54. package/blocks/progress-bar.json +51 -0
  55. package/blocks/quote.json +347 -0
  56. package/blocks/section-title.json +240 -0
  57. package/blocks/split-screen.json +283 -0
  58. package/blocks/stat-grid.json +315 -0
  59. package/blocks/steps.json +266 -0
  60. package/blocks/title-hero.json +287 -0
  61. package/dist/builder.d.ts +1 -0
  62. package/dist/builder.js +169 -0
  63. package/dist/cli.js +9301 -0
  64. package/dist/fonts/LICENSE-Inter.txt +93 -0
  65. package/dist/fonts/inter-cyrillic-ext-opsz-italic.woff2 +0 -0
  66. package/dist/fonts/inter-cyrillic-ext-opsz-normal.woff2 +0 -0
  67. package/dist/fonts/inter-cyrillic-opsz-italic.woff2 +0 -0
  68. package/dist/fonts/inter-cyrillic-opsz-normal.woff2 +0 -0
  69. package/dist/fonts/inter-greek-ext-opsz-italic.woff2 +0 -0
  70. package/dist/fonts/inter-greek-ext-opsz-normal.woff2 +0 -0
  71. package/dist/fonts/inter-greek-opsz-italic.woff2 +0 -0
  72. package/dist/fonts/inter-greek-opsz-normal.woff2 +0 -0
  73. package/dist/fonts/inter-latin-ext-opsz-italic.woff2 +0 -0
  74. package/dist/fonts/inter-latin-ext-opsz-normal.woff2 +0 -0
  75. package/dist/fonts/inter-latin-opsz-italic.woff2 +0 -0
  76. package/dist/fonts/inter-latin-opsz-normal.woff2 +0 -0
  77. package/dist/fonts/inter-vietnamese-opsz-italic.woff2 +0 -0
  78. package/dist/fonts/inter-vietnamese-opsz-normal.woff2 +0 -0
  79. package/dist/index.d.ts +2 -0
  80. package/dist/index.js +2330 -0
  81. package/dist/player.d.ts +1 -0
  82. package/dist/player.js +80 -0
  83. package/dist/react.d.ts +1 -0
  84. package/dist/react.js +140 -0
  85. package/dist/runtime/canvas-runtime.js +261 -0
  86. package/dist/runtime/lottie_light_canvas.min.js +1 -0
  87. package/dist/runtime/text-layout.js +50 -0
  88. package/dist/sfx/click.wav +0 -0
  89. package/dist/sfx/ding.wav +0 -0
  90. package/dist/sfx/pop.wav +0 -0
  91. package/dist/sfx/riser.wav +0 -0
  92. package/dist/sfx/thump.wav +0 -0
  93. package/dist/sfx/tick.wav +0 -0
  94. package/dist/sfx/whoosh.wav +0 -0
  95. package/dist/types/packages/ai/src/assets.d.ts +26 -0
  96. package/dist/types/packages/ai/src/batch.d.ts +19 -0
  97. package/dist/types/packages/ai/src/compose.d.ts +34 -0
  98. package/dist/types/packages/ai/src/history.d.ts +37 -0
  99. package/dist/types/packages/ai/src/image.d.ts +19 -0
  100. package/dist/types/packages/ai/src/index.d.ts +13 -0
  101. package/dist/types/packages/ai/src/json.d.ts +2 -0
  102. package/dist/types/packages/ai/src/narrate.d.ts +63 -0
  103. package/dist/types/packages/ai/src/patch.d.ts +15 -0
  104. package/dist/types/packages/ai/src/project.d.ts +27 -0
  105. package/dist/types/packages/ai/src/prompt.d.ts +30 -0
  106. package/dist/types/packages/ai/src/providers.d.ts +109 -0
  107. package/dist/types/packages/ai/src/template.d.ts +80 -0
  108. package/dist/types/packages/ai/src/voiceover.d.ts +49 -0
  109. package/dist/types/packages/animation/src/index.d.ts +27 -0
  110. package/dist/types/packages/assets/src/cache.d.ts +26 -0
  111. package/dist/types/packages/assets/src/index.d.ts +8 -0
  112. package/dist/types/packages/builder/src/index.d.ts +270 -0
  113. package/dist/types/packages/cli/src/ai-studio-page.d.ts +1 -0
  114. package/dist/types/packages/cli/src/ai-studio.d.ts +35 -0
  115. package/dist/types/packages/cli/src/ai.d.ts +3 -0
  116. package/dist/types/packages/cli/src/args.d.ts +9 -0
  117. package/dist/types/packages/cli/src/blocks-cli.d.ts +3 -0
  118. package/dist/types/packages/cli/src/blocks.d.ts +50 -0
  119. package/dist/types/packages/cli/src/build.d.ts +1 -0
  120. package/dist/types/packages/cli/src/dev-page.d.ts +1 -0
  121. package/dist/types/packages/cli/src/dev.d.ts +13 -0
  122. package/dist/types/packages/cli/src/index.d.ts +2 -0
  123. package/dist/types/packages/cli/src/init.d.ts +10 -0
  124. package/dist/types/packages/cli/src/serve.d.ts +2 -0
  125. package/dist/types/packages/cli/src/studio.d.ts +36 -0
  126. package/dist/types/packages/cli/src/templates.d.ts +63 -0
  127. package/dist/types/packages/cli/src/thumbnail.d.ts +20 -0
  128. package/dist/types/packages/cli/src/track.d.ts +35 -0
  129. package/dist/types/packages/cli/src/worker.d.ts +13 -0
  130. package/dist/types/packages/contracts/src/index.d.ts +377 -0
  131. package/dist/types/packages/core/src/audio.d.ts +14 -0
  132. package/dist/types/packages/core/src/distributed.d.ts +50 -0
  133. package/dist/types/packages/core/src/index.d.ts +63 -0
  134. package/dist/types/packages/core/src/media.d.ts +11 -0
  135. package/dist/types/packages/core/src/review.d.ts +29 -0
  136. package/dist/types/packages/ffmpeg/src/index.d.ts +68 -0
  137. package/dist/types/packages/graphics/src/fonts.d.ts +3 -0
  138. package/dist/types/packages/graphics/src/index.d.ts +121 -0
  139. package/dist/types/packages/graphics/src/runtime.d.ts +10 -0
  140. package/dist/types/packages/jobs/src/env.d.ts +78 -0
  141. package/dist/types/packages/jobs/src/handlers.d.ts +17 -0
  142. package/dist/types/packages/jobs/src/index.d.ts +5 -0
  143. package/dist/types/packages/jobs/src/input.d.ts +18 -0
  144. package/dist/types/packages/jobs/src/queue.d.ts +70 -0
  145. package/dist/types/packages/jobs/src/redis.d.ts +42 -0
  146. package/dist/types/packages/player/src/bundle.d.ts +4 -0
  147. package/dist/types/packages/player/src/canvas-runtime.d.ts +11 -0
  148. package/dist/types/packages/player/src/index.d.ts +29 -0
  149. package/dist/types/packages/react/src/index.d.ts +76 -0
  150. package/dist/types/packages/renderer/src/index.d.ts +35 -0
  151. package/dist/types/packages/renderer/src/pool.d.ts +7 -0
  152. package/dist/types/packages/renderer/src/video.d.ts +9 -0
  153. package/dist/types/packages/schema/src/captions.d.ts +24 -0
  154. package/dist/types/packages/schema/src/expression.d.ts +1 -0
  155. package/dist/types/packages/schema/src/index.d.ts +1213 -0
  156. package/dist/types/packages/schema/src/variables.d.ts +115 -0
  157. package/dist/types/packages/storage/src/index.d.ts +78 -0
  158. package/dist/types/packages/timeline/src/index.d.ts +104 -0
  159. package/package.json +78 -4
  160. package/skills/ove/SKILL.md +356 -0
  161. package/skills/ove-ai-compose/SKILL.md +36 -0
  162. package/skills/ove-batch-videos/SKILL.md +23 -0
  163. package/skills/ove-code-video/SKILL.md +68 -0
  164. package/skills/ove-effects/SKILL.md +65 -0
  165. package/skills/ove-make-reel/SKILL.md +30 -0
  166. package/skills/ove-voiceover-captions/SKILL.md +31 -0
  167. package/studio/assets/index-CzOvWv9w.css +1 -0
  168. package/studio/assets/index-J_fvKgng.js +11 -0
  169. package/studio/index.html +16 -0
  170. package/templates/case-study/composition.json +358 -0
  171. package/templates/case-study/template.json +8 -0
  172. package/templates/event-invite/composition.json +245 -0
  173. package/templates/event-invite/template.json +8 -0
  174. package/templates/explainer-square/composition.json +1335 -0
  175. package/templates/explainer-square/template.json +13 -0
  176. package/templates/keynote-wide/composition.json +1458 -0
  177. package/templates/keynote-wide/template.json +13 -0
  178. package/templates/launch-wide/composition.json +1306 -0
  179. package/templates/launch-wide/template.json +13 -0
  180. package/templates/product-card/composition.json +196 -0
  181. package/templates/product-card/data.example.json +5 -0
  182. package/templates/product-card/template.json +8 -0
  183. package/templates/product-wide/composition.json +1609 -0
  184. package/templates/product-wide/template.json +14 -0
  185. package/templates/quote-card/composition.json +123 -0
  186. package/templates/quote-card/template.json +8 -0
  187. package/templates/sale-promo/composition.json +290 -0
  188. package/templates/sale-promo/template.json +8 -0
  189. package/templates/showcase-tall/composition.json +1646 -0
  190. package/templates/showcase-tall/template.json +14 -0
  191. package/templates/slideshow/composition.json +167 -0
  192. package/templates/slideshow/template.json +8 -0
  193. package/templates/social-reel/composition.json +252 -0
  194. package/templates/social-reel/template.json +8 -0
  195. package/templates/starter/assets/logo.svg +4 -0
  196. package/templates/starter/composition.json +84 -0
  197. package/templates/story-tall/composition.json +1379 -0
  198. package/templates/story-tall/template.json +13 -0
  199. package/themes/espresso.json +15 -0
  200. package/themes/midnight.json +15 -0
  201. package/themes/neon.json +15 -0
  202. package/themes/paper.json +15 -0
  203. package/themes/signal.json +15 -0
@@ -0,0 +1,584 @@
1
+ {
2
+ "id": "fx-sticker-freeze",
3
+ "name": "Sticker freeze",
4
+ "category": "effect",
5
+ "kind": "scene",
6
+ "durationFrames": 150,
7
+ "transition": {
8
+ "type": "fade",
9
+ "durationFrames": 12
10
+ },
11
+ "description": "The footage plays, then freezes on a chosen frame: the picture dims to grey and the speaker is lifted out as a sticker with a thick white outline and a shadow that pops into place. Needs a matte of the speaker.",
12
+ "params": {
13
+ "footage": {
14
+ "type": "string",
15
+ "default": "",
16
+ "description": "Your video (asset id or relative path)"
17
+ },
18
+ "matte": {
19
+ "type": "string",
20
+ "default": "",
21
+ "description": "A matte video or picture of the speaker: white where the speaker is. Make it with rembg, Robust Video Matting or an editor."
22
+ },
23
+ "at": {
24
+ "type": "number",
25
+ "default": 45,
26
+ "description": "The frame to freeze on"
27
+ }
28
+ },
29
+ "layers": [
30
+ {
31
+ "id": "bg",
32
+ "type": "rect",
33
+ "x": 0,
34
+ "y": 0,
35
+ "width": "{{canvas.width}}",
36
+ "height": "{{canvas.height}}",
37
+ "fill": "{{bg}}"
38
+ },
39
+ {
40
+ "if": "{{footage}}",
41
+ "id": "play",
42
+ "type": "video",
43
+ "src": "{{footage}}",
44
+ "objectFit": "cover",
45
+ "x": 0,
46
+ "y": 0,
47
+ "width": "{{canvas.width}}",
48
+ "height": "{{canvas.height}}",
49
+ "endFrame": "{{at}}"
50
+ },
51
+ {
52
+ "if": "{{footage}}",
53
+ "id": "hold",
54
+ "type": "video",
55
+ "src": "{{footage}}",
56
+ "objectFit": "cover",
57
+ "x": 0,
58
+ "y": 0,
59
+ "width": "{{canvas.width}}",
60
+ "height": "{{canvas.height}}",
61
+ "startFrame": "{{at}}",
62
+ "trimStart": "{{at}}",
63
+ "playbackRate": 0.001,
64
+ "filter": "grayscale(1) brightness(0.55)",
65
+ "animations": [
66
+ {
67
+ "property": "opacity",
68
+ "keyframes": [
69
+ {
70
+ "frame": 0,
71
+ "value": 0
72
+ },
73
+ {
74
+ "frame": 6,
75
+ "value": 1
76
+ }
77
+ ]
78
+ }
79
+ ]
80
+ },
81
+ {
82
+ "if": "{{footage && matte}}",
83
+ "id": "sticker",
84
+ "type": "group",
85
+ "x": 0,
86
+ "y": 0,
87
+ "startFrame": "{{at}}",
88
+ "originX": "center",
89
+ "originY": "center",
90
+ "shadow": {
91
+ "color": "#000000cc",
92
+ "blur": 40,
93
+ "offsetX": 0,
94
+ "offsetY": 24
95
+ },
96
+ "animations": [
97
+ {
98
+ "property": "scale",
99
+ "keyframes": [
100
+ {
101
+ "frame": 0,
102
+ "value": 0.9,
103
+ "easing": "pop"
104
+ },
105
+ {
106
+ "frame": 18,
107
+ "value": 1
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "property": "rotation",
113
+ "keyframes": [
114
+ {
115
+ "frame": 0,
116
+ "value": -3,
117
+ "easing": "land"
118
+ },
119
+ {
120
+ "frame": 18,
121
+ "value": 0
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "property": "opacity",
127
+ "keyframes": [
128
+ {
129
+ "frame": 0,
130
+ "value": 0
131
+ },
132
+ {
133
+ "frame": 4,
134
+ "value": 1
135
+ }
136
+ ]
137
+ }
138
+ ],
139
+ "children": [
140
+ {
141
+ "id": "outline",
142
+ "type": "group",
143
+ "x": 0,
144
+ "y": 0,
145
+ "width": "{{canvas.width}}",
146
+ "height": "{{canvas.height}}",
147
+ "blur": 1,
148
+ "children": [
149
+ {
150
+ "id": "outline-0",
151
+ "type": "group",
152
+ "x": "{{round(min(canvas.width, canvas.height) * 0.01600)}}",
153
+ "y": "{{round(min(canvas.width, canvas.height) * 0.00000)}}",
154
+ "width": "{{canvas.width}}",
155
+ "height": "{{canvas.height}}",
156
+ "children": [
157
+ {
158
+ "id": "outline-fill-0",
159
+ "type": "rect",
160
+ "x": 0,
161
+ "y": 0,
162
+ "width": "{{canvas.width}}",
163
+ "height": "{{canvas.height}}",
164
+ "fill": "#ffffff",
165
+ "matte": {
166
+ "src": "{{matte}}",
167
+ "mode": "luma",
168
+ "trimStart": "{{at}}",
169
+ "playbackRate": 0.001
170
+ }
171
+ }
172
+ ]
173
+ },
174
+ {
175
+ "id": "outline-1",
176
+ "type": "group",
177
+ "x": "{{round(min(canvas.width, canvas.height) * 0.01478)}}",
178
+ "y": "{{round(min(canvas.width, canvas.height) * 0.00612)}}",
179
+ "width": "{{canvas.width}}",
180
+ "height": "{{canvas.height}}",
181
+ "children": [
182
+ {
183
+ "id": "outline-fill-1",
184
+ "type": "rect",
185
+ "x": 0,
186
+ "y": 0,
187
+ "width": "{{canvas.width}}",
188
+ "height": "{{canvas.height}}",
189
+ "fill": "#ffffff",
190
+ "matte": {
191
+ "src": "{{matte}}",
192
+ "mode": "luma",
193
+ "trimStart": "{{at}}",
194
+ "playbackRate": 0.001
195
+ }
196
+ }
197
+ ]
198
+ },
199
+ {
200
+ "id": "outline-2",
201
+ "type": "group",
202
+ "x": "{{round(min(canvas.width, canvas.height) * 0.01131)}}",
203
+ "y": "{{round(min(canvas.width, canvas.height) * 0.01131)}}",
204
+ "width": "{{canvas.width}}",
205
+ "height": "{{canvas.height}}",
206
+ "children": [
207
+ {
208
+ "id": "outline-fill-2",
209
+ "type": "rect",
210
+ "x": 0,
211
+ "y": 0,
212
+ "width": "{{canvas.width}}",
213
+ "height": "{{canvas.height}}",
214
+ "fill": "#ffffff",
215
+ "matte": {
216
+ "src": "{{matte}}",
217
+ "mode": "luma",
218
+ "trimStart": "{{at}}",
219
+ "playbackRate": 0.001
220
+ }
221
+ }
222
+ ]
223
+ },
224
+ {
225
+ "id": "outline-3",
226
+ "type": "group",
227
+ "x": "{{round(min(canvas.width, canvas.height) * 0.00612)}}",
228
+ "y": "{{round(min(canvas.width, canvas.height) * 0.01478)}}",
229
+ "width": "{{canvas.width}}",
230
+ "height": "{{canvas.height}}",
231
+ "children": [
232
+ {
233
+ "id": "outline-fill-3",
234
+ "type": "rect",
235
+ "x": 0,
236
+ "y": 0,
237
+ "width": "{{canvas.width}}",
238
+ "height": "{{canvas.height}}",
239
+ "fill": "#ffffff",
240
+ "matte": {
241
+ "src": "{{matte}}",
242
+ "mode": "luma",
243
+ "trimStart": "{{at}}",
244
+ "playbackRate": 0.001
245
+ }
246
+ }
247
+ ]
248
+ },
249
+ {
250
+ "id": "outline-4",
251
+ "type": "group",
252
+ "x": "{{round(min(canvas.width, canvas.height) * 0.00000)}}",
253
+ "y": "{{round(min(canvas.width, canvas.height) * 0.01600)}}",
254
+ "width": "{{canvas.width}}",
255
+ "height": "{{canvas.height}}",
256
+ "children": [
257
+ {
258
+ "id": "outline-fill-4",
259
+ "type": "rect",
260
+ "x": 0,
261
+ "y": 0,
262
+ "width": "{{canvas.width}}",
263
+ "height": "{{canvas.height}}",
264
+ "fill": "#ffffff",
265
+ "matte": {
266
+ "src": "{{matte}}",
267
+ "mode": "luma",
268
+ "trimStart": "{{at}}",
269
+ "playbackRate": 0.001
270
+ }
271
+ }
272
+ ]
273
+ },
274
+ {
275
+ "id": "outline-5",
276
+ "type": "group",
277
+ "x": "{{round(min(canvas.width, canvas.height) * -0.00612)}}",
278
+ "y": "{{round(min(canvas.width, canvas.height) * 0.01478)}}",
279
+ "width": "{{canvas.width}}",
280
+ "height": "{{canvas.height}}",
281
+ "children": [
282
+ {
283
+ "id": "outline-fill-5",
284
+ "type": "rect",
285
+ "x": 0,
286
+ "y": 0,
287
+ "width": "{{canvas.width}}",
288
+ "height": "{{canvas.height}}",
289
+ "fill": "#ffffff",
290
+ "matte": {
291
+ "src": "{{matte}}",
292
+ "mode": "luma",
293
+ "trimStart": "{{at}}",
294
+ "playbackRate": 0.001
295
+ }
296
+ }
297
+ ]
298
+ },
299
+ {
300
+ "id": "outline-6",
301
+ "type": "group",
302
+ "x": "{{round(min(canvas.width, canvas.height) * -0.01131)}}",
303
+ "y": "{{round(min(canvas.width, canvas.height) * 0.01131)}}",
304
+ "width": "{{canvas.width}}",
305
+ "height": "{{canvas.height}}",
306
+ "children": [
307
+ {
308
+ "id": "outline-fill-6",
309
+ "type": "rect",
310
+ "x": 0,
311
+ "y": 0,
312
+ "width": "{{canvas.width}}",
313
+ "height": "{{canvas.height}}",
314
+ "fill": "#ffffff",
315
+ "matte": {
316
+ "src": "{{matte}}",
317
+ "mode": "luma",
318
+ "trimStart": "{{at}}",
319
+ "playbackRate": 0.001
320
+ }
321
+ }
322
+ ]
323
+ },
324
+ {
325
+ "id": "outline-7",
326
+ "type": "group",
327
+ "x": "{{round(min(canvas.width, canvas.height) * -0.01478)}}",
328
+ "y": "{{round(min(canvas.width, canvas.height) * 0.00612)}}",
329
+ "width": "{{canvas.width}}",
330
+ "height": "{{canvas.height}}",
331
+ "children": [
332
+ {
333
+ "id": "outline-fill-7",
334
+ "type": "rect",
335
+ "x": 0,
336
+ "y": 0,
337
+ "width": "{{canvas.width}}",
338
+ "height": "{{canvas.height}}",
339
+ "fill": "#ffffff",
340
+ "matte": {
341
+ "src": "{{matte}}",
342
+ "mode": "luma",
343
+ "trimStart": "{{at}}",
344
+ "playbackRate": 0.001
345
+ }
346
+ }
347
+ ]
348
+ },
349
+ {
350
+ "id": "outline-8",
351
+ "type": "group",
352
+ "x": "{{round(min(canvas.width, canvas.height) * -0.01600)}}",
353
+ "y": "{{round(min(canvas.width, canvas.height) * 0.00000)}}",
354
+ "width": "{{canvas.width}}",
355
+ "height": "{{canvas.height}}",
356
+ "children": [
357
+ {
358
+ "id": "outline-fill-8",
359
+ "type": "rect",
360
+ "x": 0,
361
+ "y": 0,
362
+ "width": "{{canvas.width}}",
363
+ "height": "{{canvas.height}}",
364
+ "fill": "#ffffff",
365
+ "matte": {
366
+ "src": "{{matte}}",
367
+ "mode": "luma",
368
+ "trimStart": "{{at}}",
369
+ "playbackRate": 0.001
370
+ }
371
+ }
372
+ ]
373
+ },
374
+ {
375
+ "id": "outline-9",
376
+ "type": "group",
377
+ "x": "{{round(min(canvas.width, canvas.height) * -0.01478)}}",
378
+ "y": "{{round(min(canvas.width, canvas.height) * -0.00612)}}",
379
+ "width": "{{canvas.width}}",
380
+ "height": "{{canvas.height}}",
381
+ "children": [
382
+ {
383
+ "id": "outline-fill-9",
384
+ "type": "rect",
385
+ "x": 0,
386
+ "y": 0,
387
+ "width": "{{canvas.width}}",
388
+ "height": "{{canvas.height}}",
389
+ "fill": "#ffffff",
390
+ "matte": {
391
+ "src": "{{matte}}",
392
+ "mode": "luma",
393
+ "trimStart": "{{at}}",
394
+ "playbackRate": 0.001
395
+ }
396
+ }
397
+ ]
398
+ },
399
+ {
400
+ "id": "outline-10",
401
+ "type": "group",
402
+ "x": "{{round(min(canvas.width, canvas.height) * -0.01131)}}",
403
+ "y": "{{round(min(canvas.width, canvas.height) * -0.01131)}}",
404
+ "width": "{{canvas.width}}",
405
+ "height": "{{canvas.height}}",
406
+ "children": [
407
+ {
408
+ "id": "outline-fill-10",
409
+ "type": "rect",
410
+ "x": 0,
411
+ "y": 0,
412
+ "width": "{{canvas.width}}",
413
+ "height": "{{canvas.height}}",
414
+ "fill": "#ffffff",
415
+ "matte": {
416
+ "src": "{{matte}}",
417
+ "mode": "luma",
418
+ "trimStart": "{{at}}",
419
+ "playbackRate": 0.001
420
+ }
421
+ }
422
+ ]
423
+ },
424
+ {
425
+ "id": "outline-11",
426
+ "type": "group",
427
+ "x": "{{round(min(canvas.width, canvas.height) * -0.00612)}}",
428
+ "y": "{{round(min(canvas.width, canvas.height) * -0.01478)}}",
429
+ "width": "{{canvas.width}}",
430
+ "height": "{{canvas.height}}",
431
+ "children": [
432
+ {
433
+ "id": "outline-fill-11",
434
+ "type": "rect",
435
+ "x": 0,
436
+ "y": 0,
437
+ "width": "{{canvas.width}}",
438
+ "height": "{{canvas.height}}",
439
+ "fill": "#ffffff",
440
+ "matte": {
441
+ "src": "{{matte}}",
442
+ "mode": "luma",
443
+ "trimStart": "{{at}}",
444
+ "playbackRate": 0.001
445
+ }
446
+ }
447
+ ]
448
+ },
449
+ {
450
+ "id": "outline-12",
451
+ "type": "group",
452
+ "x": "{{round(min(canvas.width, canvas.height) * -0.00000)}}",
453
+ "y": "{{round(min(canvas.width, canvas.height) * -0.01600)}}",
454
+ "width": "{{canvas.width}}",
455
+ "height": "{{canvas.height}}",
456
+ "children": [
457
+ {
458
+ "id": "outline-fill-12",
459
+ "type": "rect",
460
+ "x": 0,
461
+ "y": 0,
462
+ "width": "{{canvas.width}}",
463
+ "height": "{{canvas.height}}",
464
+ "fill": "#ffffff",
465
+ "matte": {
466
+ "src": "{{matte}}",
467
+ "mode": "luma",
468
+ "trimStart": "{{at}}",
469
+ "playbackRate": 0.001
470
+ }
471
+ }
472
+ ]
473
+ },
474
+ {
475
+ "id": "outline-13",
476
+ "type": "group",
477
+ "x": "{{round(min(canvas.width, canvas.height) * 0.00612)}}",
478
+ "y": "{{round(min(canvas.width, canvas.height) * -0.01478)}}",
479
+ "width": "{{canvas.width}}",
480
+ "height": "{{canvas.height}}",
481
+ "children": [
482
+ {
483
+ "id": "outline-fill-13",
484
+ "type": "rect",
485
+ "x": 0,
486
+ "y": 0,
487
+ "width": "{{canvas.width}}",
488
+ "height": "{{canvas.height}}",
489
+ "fill": "#ffffff",
490
+ "matte": {
491
+ "src": "{{matte}}",
492
+ "mode": "luma",
493
+ "trimStart": "{{at}}",
494
+ "playbackRate": 0.001
495
+ }
496
+ }
497
+ ]
498
+ },
499
+ {
500
+ "id": "outline-14",
501
+ "type": "group",
502
+ "x": "{{round(min(canvas.width, canvas.height) * 0.01131)}}",
503
+ "y": "{{round(min(canvas.width, canvas.height) * -0.01131)}}",
504
+ "width": "{{canvas.width}}",
505
+ "height": "{{canvas.height}}",
506
+ "children": [
507
+ {
508
+ "id": "outline-fill-14",
509
+ "type": "rect",
510
+ "x": 0,
511
+ "y": 0,
512
+ "width": "{{canvas.width}}",
513
+ "height": "{{canvas.height}}",
514
+ "fill": "#ffffff",
515
+ "matte": {
516
+ "src": "{{matte}}",
517
+ "mode": "luma",
518
+ "trimStart": "{{at}}",
519
+ "playbackRate": 0.001
520
+ }
521
+ }
522
+ ]
523
+ },
524
+ {
525
+ "id": "outline-15",
526
+ "type": "group",
527
+ "x": "{{round(min(canvas.width, canvas.height) * 0.01478)}}",
528
+ "y": "{{round(min(canvas.width, canvas.height) * -0.00612)}}",
529
+ "width": "{{canvas.width}}",
530
+ "height": "{{canvas.height}}",
531
+ "children": [
532
+ {
533
+ "id": "outline-fill-15",
534
+ "type": "rect",
535
+ "x": 0,
536
+ "y": 0,
537
+ "width": "{{canvas.width}}",
538
+ "height": "{{canvas.height}}",
539
+ "fill": "#ffffff",
540
+ "matte": {
541
+ "src": "{{matte}}",
542
+ "mode": "luma",
543
+ "trimStart": "{{at}}",
544
+ "playbackRate": 0.001
545
+ }
546
+ }
547
+ ]
548
+ }
549
+ ]
550
+ },
551
+ {
552
+ "id": "cutout",
553
+ "type": "video",
554
+ "src": "{{footage}}",
555
+ "objectFit": "cover",
556
+ "x": 0,
557
+ "y": 0,
558
+ "width": "{{canvas.width}}",
559
+ "height": "{{canvas.height}}",
560
+ "trimStart": "{{at}}",
561
+ "playbackRate": 0.001,
562
+ "matte": {
563
+ "src": "{{matte}}",
564
+ "mode": "luma"
565
+ }
566
+ }
567
+ ]
568
+ },
569
+ {
570
+ "id": "sfx-1",
571
+ "type": "audio",
572
+ "src": "sfx:click",
573
+ "startFrame": "{{at}}",
574
+ "volume": 0.4
575
+ },
576
+ {
577
+ "id": "sfx-2",
578
+ "type": "audio",
579
+ "src": "sfx:pop",
580
+ "startFrame": "{{at + 4}}",
581
+ "volume": 0.35
582
+ }
583
+ ]
584
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "id": "fx-strike-rewrite",
3
+ "name": "Strike and rewrite",
4
+ "category": "effect",
5
+ "kind": "overlay",
6
+ "durationFrames": 120,
7
+ "description": "An old statement in white, struck through in red, with the corrected statement rising in beneath it in the accent colour.",
8
+ "params": {
9
+ "old": {
10
+ "type": "string",
11
+ "default": "Edit every frame by hand"
12
+ },
13
+ "corrected": {
14
+ "type": "string",
15
+ "default": "Describe the video once"
16
+ }
17
+ },
18
+ "layers": [
19
+ {
20
+ "id": "rewrite",
21
+ "type": "html",
22
+ "html": "<div class='o'>{{old}}</div><div class='n'>{{corrected}}</div>",
23
+ "css": ".o{position:relative;display:inline-block;font:700 {{round(min(canvas.width, canvas.height) * 0.055)}}px Inter;color:#fff}.o::after{content:'';position:absolute;left:-2%;top:54%;height:{{round(min(canvas.width, canvas.height) * 0.008)}}px;width:calc(var(--s) * 104%);background:#ff4d4d;border-radius:4px}.n{margin-top:{{round(min(canvas.width, canvas.height) * 0.025)}}px;font:800 {{round(min(canvas.width, canvas.height) * 0.065)}}px Inter;color:var(--accent2);opacity:var(--r);transform:translateY(calc((1 - var(--r)) * 30px))}",
24
+ "vars": {
25
+ "--s": 0,
26
+ "--r": 0,
27
+ "--accent2": "{{accent2}}"
28
+ },
29
+ "animations": [
30
+ {
31
+ "property": "--s",
32
+ "keyframes": [
33
+ {
34
+ "frame": 24,
35
+ "value": 0
36
+ },
37
+ {
38
+ "frame": 44,
39
+ "value": 1,
40
+ "easing": "land"
41
+ }
42
+ ]
43
+ },
44
+ {
45
+ "property": "--r",
46
+ "keyframes": [
47
+ {
48
+ "frame": 52,
49
+ "value": 0
50
+ },
51
+ {
52
+ "frame": 72,
53
+ "value": 1,
54
+ "easing": "land"
55
+ }
56
+ ]
57
+ }
58
+ ],
59
+ "x": "{{round(canvas.width * 0.06)}}",
60
+ "y": "{{round(canvas.height * 0.5)}}",
61
+ "width": "{{round(canvas.width * 0.88)}}",
62
+ "height": "{{round(min(canvas.width, canvas.height) * 0.3)}}"
63
+ },
64
+ {
65
+ "id": "sfx-1",
66
+ "type": "audio",
67
+ "src": "sfx:tick",
68
+ "startFrame": 24,
69
+ "volume": 0.35
70
+ },
71
+ {
72
+ "id": "sfx-2",
73
+ "type": "audio",
74
+ "src": "sfx:ding",
75
+ "startFrame": 52,
76
+ "volume": 0.3
77
+ }
78
+ ]
79
+ }