dsh-drawai 0.4.2 → 0.4.3

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 (366) hide show
  1. package/README.md +4 -3
  2. package/lib/index.js +7777 -7719
  3. package/lib/motion/asset-pack.js +394 -394
  4. package/lib/motion/assets.js +291 -291
  5. package/lib/motion/demo-assets-lock.js +10 -10
  6. package/lib/motion/mgstyles/vendor/README.md +28 -28
  7. package/lib/motion/mgstyles/vendor/modules/d3/LICENSE +13 -13
  8. package/lib/motion/mgstyles/vendor/modules/d3/dist/d3.min.js +2 -2
  9. package/lib/motion/mgstyles/vendor/modules/opentype.js/LICENSE +20 -20
  10. package/lib/motion/mgstyles/vendor/modules/opentype.js/dist/opentype.mjs +14460 -14460
  11. package/lib/motion/mgstyles/vendor/modules/simplex-noise/LICENSE +21 -21
  12. package/lib/motion/mgstyles/vendor/modules/simplex-noise/dist/esm/simplex-noise.js +465 -465
  13. package/lib/motion/mgstyles/vendor/modules/topojson-client/LICENSE +13 -13
  14. package/lib/motion/mgstyles/vendor/modules/topojson-client/dist/topojson-client.min.js +2 -2
  15. package/lib/motion/render.js +179 -179
  16. package/lib/motion/shotcraft/upstream/SKILL.md +286 -286
  17. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -54
  18. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -200
  19. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -45
  20. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -20
  21. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -65
  22. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -151
  23. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -129
  24. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -75
  25. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -40
  26. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -11
  27. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -10
  28. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -49
  29. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -210
  30. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -423
  31. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -170
  32. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -157
  33. package/lib/motion/shotcraft/upstream/demos/README.md +120 -120
  34. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -112
  35. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -647
  36. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -316
  37. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -82
  38. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -115
  39. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -243
  40. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +388 -388
  41. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -250
  42. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -305
  43. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -246
  44. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -390
  45. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -138
  46. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -542
  47. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -315
  48. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -299
  49. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -173
  50. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -348
  51. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -366
  52. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -279
  53. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -184
  54. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -390
  55. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -155
  56. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -303
  57. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -290
  58. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -278
  59. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -307
  60. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -215
  61. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -299
  62. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -232
  63. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -290
  64. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -273
  65. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -167
  66. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -536
  67. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -164
  68. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -175
  69. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -197
  70. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -241
  71. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -279
  72. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -230
  73. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -345
  74. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -275
  75. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -229
  76. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -312
  77. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -222
  78. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -295
  79. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -329
  80. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -315
  81. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -264
  82. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -260
  83. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -263
  84. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -123
  85. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -187
  86. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -175
  87. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -305
  88. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -350
  89. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -352
  90. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -218
  91. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -297
  92. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -157
  93. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -218
  94. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -202
  95. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -265
  96. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -457
  97. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -446
  98. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -249
  99. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -278
  100. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -332
  101. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -358
  102. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -201
  103. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -200
  104. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -208
  105. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -341
  106. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -389
  107. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -293
  108. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -183
  109. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -245
  110. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -222
  111. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -223
  112. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -217
  113. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -343
  114. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -357
  115. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -187
  116. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -333
  117. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -274
  118. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -270
  119. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -430
  120. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -252
  121. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -106
  122. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -288
  123. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -362
  124. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -168
  125. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -310
  126. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -261
  127. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -459
  128. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -294
  129. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -161
  130. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -248
  131. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -359
  132. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -227
  133. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -162
  134. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -248
  135. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -186
  136. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -355
  137. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -272
  138. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -262
  139. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -217
  140. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -285
  141. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -205
  142. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -178
  143. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -147
  144. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -143
  145. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -134
  146. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -217
  147. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -198
  148. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -221
  149. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -312
  150. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -261
  151. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -121
  152. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -153
  153. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -179
  154. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -140
  155. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -309
  156. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -191
  157. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -292
  158. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -135
  159. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -124
  160. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -255
  161. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -173
  162. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -225
  163. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -141
  164. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -137
  165. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -147
  166. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -409
  167. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -280
  168. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -271
  169. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -385
  170. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -312
  171. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -303
  172. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -77
  173. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -311
  174. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -307
  175. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -349
  176. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -255
  177. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -244
  178. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -217
  179. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -652
  180. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -153
  181. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -238
  182. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -324
  183. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -354
  184. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -101
  185. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -129
  186. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -297
  187. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -57
  188. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -155
  189. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -175
  190. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -153
  191. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -146
  192. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -226
  193. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -1
  194. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -193
  195. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -121
  196. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -199
  197. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -183
  198. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -257
  199. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -382
  200. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -111
  201. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -50
  202. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -95
  203. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -41
  204. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -52
  205. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -39
  206. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -39
  207. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -57
  208. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -51
  209. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -46
  210. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -52
  211. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -43
  212. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -42
  213. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -48
  214. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -52
  215. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -45
  216. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -46
  217. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -44
  218. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -63
  219. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -54
  220. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -58
  221. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -35
  222. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -53
  223. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -42
  224. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -50
  225. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -46
  226. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -56
  227. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -49
  228. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -50
  229. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -53
  230. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -53
  231. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -55
  232. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -52
  233. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -60
  234. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -57
  235. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -51
  236. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -41
  237. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -53
  238. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -60
  239. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -55
  240. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -57
  241. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -47
  242. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -37
  243. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -54
  244. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -36
  245. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -56
  246. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -56
  247. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -40
  248. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -60
  249. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -57
  250. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -73
  251. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -87
  252. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -55
  253. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -50
  254. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -59
  255. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -38
  256. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -38
  257. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -59
  258. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -39
  259. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -61
  260. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -52
  261. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -50
  262. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -66
  263. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -43
  264. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -38
  265. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -38
  266. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -56
  267. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -44
  268. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -38
  269. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -63
  270. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -57
  271. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -63
  272. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -58
  273. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -45
  274. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -55
  275. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -49
  276. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -42
  277. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -42
  278. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -45
  279. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -48
  280. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -55
  281. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -43
  282. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -41
  283. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -42
  284. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -59
  285. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -55
  286. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -65
  287. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -42
  288. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -64
  289. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -64
  290. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -54
  291. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -91
  292. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -51
  293. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -66
  294. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -38
  295. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -66
  296. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -58
  297. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -61
  298. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -64
  299. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -45
  300. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -41
  301. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -51
  302. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -42
  303. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -63
  304. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -57
  305. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -75
  306. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -59
  307. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -67
  308. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -60
  309. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -66
  310. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -40
  311. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -45
  312. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -62
  313. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -55
  314. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -37
  315. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -55
  316. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -50
  317. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -43
  318. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -55
  319. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -51
  320. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -51
  321. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -56
  322. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -49
  323. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -57
  324. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -36
  325. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -64
  326. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -47
  327. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -170
  328. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -157
  329. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -103
  330. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -44
  331. package/lib/motion/shotcraft/upstream/template/package.json +20 -20
  332. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -6
  333. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -17
  334. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -65
  335. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -48
  336. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -24
  337. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -192
  338. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -111
  339. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -150
  340. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -158
  341. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -468
  342. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -552
  343. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -411
  344. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -200
  345. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -324
  346. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +388 -388
  347. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -4
  348. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -7
  349. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -68
  350. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -1
  351. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -24
  352. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -74
  353. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -91
  354. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -213
  355. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -15
  356. package/lib/motion/style-frames.js +306 -306
  357. package/lib/motion/sync.js +214 -214
  358. package/lib/motion-project.js +105 -105
  359. package/lib/motion-render-worker.js +174 -174
  360. package/lib/routing/router.js +222 -222
  361. package/lib/routing/vendor/README.md +96 -96
  362. package/lib/routing/vendor/libavoid-routing.js +753 -753
  363. package/lib/routing/vendor/libavoid.min.js +59 -59
  364. package/lib/video-trace-pool.js +128 -128
  365. package/package.json +1 -1
  366. package/LICENSE +0 -4175
@@ -1,382 +1,382 @@
1
- # pipeline — 八阶段制作流水线
2
-
3
- 八阶段,方向性问题不进昂贵的逐镜头阶段。
4
- 实证细节来自多支已交付宣传片的复盘(模板片见 `template/`)。
5
-
6
- ## 目录
7
-
8
- - 阶段 0:产品理解与执行约束
9
- - 阶段 1:视觉方向与 styleframe
10
- - 阶段 2:功能到镜头映射
11
- - 阶段 3:分镜与制作放行
12
- - 阶段 4:最终素材采集
13
- - 阶段 5:逐镜头实现
14
- - 阶段 6:声音设计
15
- - 阶段 7:独立终检与交付
16
-
17
- 本文件是**自主自由创作**的完整流水线:阶段 0–3 的判断由 Agent 根据项目内容
18
- 自主完成并记录,不逐阶段等待用户确认,然后连续进入阶段 4–7。用户已给出的
19
- 用途、受众、功能、画幅、音频或数据要求都是硬约束。
20
-
21
- 直接使用 Ink Press 模板不进入本流水线,按 `template/TEMPLATE.md` 的原有替换
22
- 流程执行;模板文档引用阶段 4 时只借用其中的素材采集方法。
23
-
24
- **共同创作从 `guided-free-creation.md` 进入本文件时,不要从头重跑。** 该流程
25
- 已经完成并确认阶段 0–3;直接从阶段 4 最终素材采集继续,不重新询问或重新设计。
26
-
27
- 两处执行原则(实战复盘已吸收):
28
-
29
- 1. **最终设计 spec 与分镜共同构成制作放行。** 分镜表长在设计 spec 里
30
- (`| # | 时间 | 镜头 | 关键动效 |` 四列);确认放行不重新打开已确认的
31
- 业务或创意问题,只补实现必要的未决项。
32
- 2. **验收贯穿全程,不是最后一个阶段。** 每个镜头任务以 `npx remotion still`
33
- 静帧肉眼验收收尾(产物按版本归档 `out/qa/`),每轮反馈修改后整片重渲。
34
- 阶段 7 只是把这套贯穿动作升级为对照 aesthetic-rules.md 的正式自检报告。
35
-
36
- 另注顺序弹性:styleframe 可以先用 HTML 与少量安全预检素材;重要的是**逐镜头
37
- 实现开始前最终素材必须依据已定案的分镜采集**——素材方向错误拖到逐镜头阶段后
38
- 才暴露,代价是整套场景报废。
39
-
40
- ---
41
-
42
- ## 阶段 0:产品理解与执行约束
43
-
44
- 在写视频代码或采集最终素材前,只读检查项目的定位、主要功能、页面状态、视觉
45
- tokens、启动方式和数据风险。根据项目证据和用户已有描述,生成产品简报与需求到
46
- 执行决策表,明确用途、受众、核心卖点、必须展示功能、时长/画幅/语言、音频和
47
- 数据口径对本片的实际影响。
48
-
49
- 自主自由创作由 Agent 对缺省项作动态判断并写入设计 spec,不暂停要求用户确认。
50
- 用户指定了 BGM 时,先按 `references/music-beat-sync.md` 分析节奏;未指定时由 Agent
51
- 根据产品与发布场景在阶段 6 选型。公开演示数据可在确认其公开属性后使用;客户、
52
- 个人、内部、密钥、实时或其他敏感数据一律先虚构、脱敏或冻结。
53
-
54
- **产出**:产品简报;需求到执行决策表;明确的数据与音频约束。
55
-
56
- ---
57
-
58
- ## 阶段 1:视觉方向与 styleframe
59
-
60
- **目标**:用最便宜的产物锁定全片色板、字体、光感与运镜气质,
61
- 让所有方向性争论发生在写第一行 Remotion 代码之前。
62
-
63
- **具体操作**:
64
-
65
- 1. 根据当前项目生成最多 3 个文字方向。每个方向附一组**动效性格 tokens**
66
- (推导法见下方“品牌→动效参数”表),但不要把 Ink Press 作为固定选项。
67
- 2. Agent 依据产品视觉、用途和受众自主选择最合适的方向,并把选择与取舍写入
68
- 设计 spec;不暂停等待用户选择。
69
- 3. 对选定方向**不渲染视频、不写 Remotion 代码**,写一个纯 HTML/CSS
70
- styleframe 页,包含 2–3 张 1920×1080 静态关键画面。
71
- 4. 用 Playwright/Puppeteer 截图验证字体、色板、材质、构图、光感与信息密度;
72
- 缓动和运镜速度仍以 tokens、Gallery 样片或短运动测试判断。若已有严格品牌规范
73
- 或明确参考片,可记录理由后跳过 styleframe。
74
- 5. 若用户给了参考片:下载后 ffmpeg 抽帧(`select=eq(n,…)` 抽 ~100 帧、
75
- `tile=4x5` 拼 contact sheet),逐个动画/转场/特效做 motion breakdown,
76
- 写成"手法|参考片实现|取舍"三列表进设计 spec——**选择性适配,
77
- 不强行套用**。图片参考同理:它描述的是"某一类镜头"的感觉,
78
- 不是全片风格令。
79
-
80
- **品牌→动效参数推导**。不凭手感挑 easing/时长,先把品牌放到两根轴上,
81
- 再从最近的预设起步:
82
-
83
- - **能量轴**:低(沉稳/premium/机构感)↔ 高(运动/startup/娱乐)——
84
- 决定时长、过冲、squash 幅度;
85
- - **调性轴**:严肃(金融/医疗/enterprise)↔ 活泼(消费/社交/儿童)——
86
- 决定路径曲直、次级动作多寡。产品视觉本身是证据(锐利几何形→工程感,
87
- 圆角+亮色→柔和活泼);用户口述的品牌词覆盖视觉推断。
88
-
89
- | 预设(品类) | 主时长@30fps | 入场 easing | 过冲 | squash |
90
- |---|---|---|---|---|
91
- | 专业信赖(fintech/enterprise/B2B)| ~21f | bezier(0,0,0.2,1) | 1.0 不弹 | 0 |
92
- | 精致高端(奢侈品/时尚)| ~48f | bezier(0.4,0,0.6,1) | ≤1.02 | 0 |
93
- | 活力大胆(体育/游戏/startup)| ~18f | bezier(0.16,1,0.3,1) | 1.12 | 0.25 |
94
- | 活泼愉悦(消费/社交)| ~27f | bezier(0.34,1.56,0.64,1) | 1.08 | 0.18 |
95
- | 平静关怀(健康/教育)| ~42f | ease-in-out 对称 | 1.0 | ≤0.04 |
96
- | 亲和友好(小微/社区)| ~26f | bezier(0.25,0.46,0.45,0.94) | 1.04 | 0.08 |
97
-
98
- 用法:定预设 → 按两轴微调 → tokens 写进设计 spec。自检两条:
99
- ①用三个词描述成片动效,与品牌词对得上吗;②同一套 tokens 必须同时管
100
- 入场/转场/hold 节奏——一个品牌一种动效嗓音,混用两套读作拼盘。
101
- 注意预设值与库内硬判例冲突时判例赢:落地要弹的场合 y1 必须 >1,
102
- "专业信赖不弹"指的是无落地隐喻的淡入/推移类动作。
103
-
104
- **产出**:选定方向的 styleframe;色板/字体/光感 tokens + 动效性格 tokens;
105
- (有参考片时)motion breakdown 表。
106
-
107
- **常见坑**:
108
-
109
- - 用渲染视频做风格提案:太贵,改方向的心理成本也高。静态帧足够定调。
110
- - 参考驱动的风格 move 全局一刀切:风格化机位逐镜头决定(信息密集的
111
- 列表/堆叠镜头正视更可读)。
112
-
113
- ---
114
-
115
- ## 阶段 2:功能到镜头映射
116
-
117
- **目标**:为每个必须展示的功能选定合适的运动语法,不在此阶段提前写完整分镜。
118
-
119
- **具体操作**:
120
-
121
- 1. **先列产品功能清单,逐一对应镜头**。核心功能漏拍等于返工;
122
- 一种动画手法(飞入/堆叠/翻页)全片只当一次主角,同质化即返工信号。
123
- 2. 扫描 `references/shots/` 全部卡片的 frontmatter,根据用途、能量、建议时长、
124
- 限制和所需页面状态,为每项功能选择首选与备选卡;Agent 自主定案并记录依据。
125
- 3. 完整读取选中卡片,并按“参考实现”定位准确 demo 源码。没有合适卡片时可新写,
126
- 但必须在设计 spec 中说明范围与验证风险。
127
-
128
- **产出**:功能到镜头映射表;选中卡名、变体、demo 源码和参考样片定位。
129
-
130
- ---
131
-
132
- ## 阶段 3:分镜与制作放行
133
-
134
- **目标**:把已定案的功能与镜头映射排成有能量曲线的完整镜头序列,并转成帧级
135
- 实施计划。自主自由创作由 Agent 自行放行,不暂停等待确认。
136
-
137
- **具体操作**:
138
-
139
- 1. 先查 `references/sequences/` 有无适用的桥段模板;有则按其填空流程分配段位
140
- 与帧预算,再把映射好的镜头排成低能量开场→功能段与呼吸位交替→高能量收尾。
141
- 2. **已有指定 BGM 时**:先出音乐结构表(满能量起点/breakdown 拍号,
142
- 见 music-beat-sync.md §2),镜头边界全部锚到拍号,最强 hit 分给
143
- 全片 2–3 个大 slam;breakdown 段天然是品牌呼吸位。
144
- 3. 写完整分镜表:镜头顺序、时长、功能信息、具体页面状态、镜头卡与变体、主动作、
145
- 素材来源、字幕、转场和 SFX。每镜只讲一个主要动效。
146
- 4. 排时间线时**预留 hold/rest 帧预算**:品牌字标落定 hold ≥1s(30f)、
147
- 批量动效收尾 0.5s 静止、开场主体动作 ≥3s。节奏返工是单向的——
148
- 过快必返工、放慢从未被否。
149
- 5. Agent 检查分镜与产品简报、需求决策、视觉方向和镜头映射一致后自行放行,
150
- 把分镜转译成帧级时间轴进实施计划:
151
- `| shot | from | duration | 内容 |`(卡点片则 from/to 全用 `beatF(n)`
152
- 表达),并给每镜头指定源文件与验收帧号。
153
-
154
- **产出**:设计 spec(含风格 tokens + motion breakdown + 分镜表);
155
- 帧级时间轴。
156
-
157
- **常见坑**:
158
-
159
- - 没对功能清单,凭手感排镜头:核心功能漏拍、动画手法同质化,两种都返工。
160
- - 开场贪多:开场信息宁少而聚焦,一个主角、一条完整动作弧。
161
- - 时长预算不含呼吸位:动效排满每一帧,后期逐镜头补 hold 等于全线挪帧。
162
-
163
- ---
164
-
165
- ## 阶段 4:最终素材采集
166
-
167
- **前置条件**:最终设计 spec 与分镜已经放行。共同创作以用户确认作为放行;自主
168
- 自由创作以 Agent 完成一致性检查并记录为放行。此前为 styleframe 采过的少量安全
169
- 截图只能作为方向验证,不得直接替代最终素材。
170
-
171
- **目标**:严格按最终分镜拿到全部镜头所需的真实页面素材,包括全页纹理、元素
172
- 切片和坐标表,为 2.5D 运镜与页面空间动画打地基。
173
-
174
- **具体操作**:
175
-
176
- 1. 起产品本地 dev server(桌面端产品则用窗口截图工具,同样出三件套)。
177
- 2. 复制 `assets/scripts/capture-template.mjs` 进项目,改 BASE_URL 与选择器,
178
- 跑一次产出三件套:
179
- - **全页 2x 截图**:viewport 1920×1080、`deviceScaleFactor: 2`;截图前
180
- `document.fonts.ready` + 600ms settle,实时同步页额外再等 1.5–2s。
181
- - **per-element cutout**:按语义选择器逐元素截图;悬浮件用透明底,需要
182
- “卡片飞入空板”的镜头则额外截空 backplate。
183
- - **layout.json**:记录每个元素在整页坐标系下的 `{x,y,w,h}` bbox 与每页
184
- `pageH`,供飞行目标位、遮罩位置和入场区域直接使用。
185
- 3. 支持按页/按元素增量重采。活数据源先按阶段 0 的数据口径冻结、虚构或脱敏,
186
- 再进行最终采集。
187
-
188
- **产出**:`public/textures/` 全页图、元素切片与空 backplate;`layout.json`;
189
- 可重跑的 capture 脚本。
190
-
191
- **常见坑**:
192
-
193
- - 在分镜放行前做全量采集:页面状态和素材范围尚未确定,会造成重复采集。
194
- - 手搓 HTML 复刻既有页面:复刻默认走真实截图;手搓 UI 只用于非复刻场景。
195
- - 活数据源不锁定,或只截整页不记录 layout 坐标。
196
-
197
- ---
198
-
199
- ## 阶段 5:逐镜头实现
200
-
201
- **前置条件**:需已有可跑的 Remotion 项目(30fps、1920×1080,`src/index.ts`
202
- 注册 Composition;新项目可 `npx create-video@latest` 初始化后把
203
- `assets/lib/` 组件 copy 进去;走模板路线则直接从 `template/` 起步)。
204
-
205
- **目标**:按帧级时间轴逐镜头落地,每镜头完成即自证质量——
206
- 验收在这个阶段就开始,不留到最后。
207
-
208
- **具体操作**:
209
-
210
- 1. **每镜头先解析再三读**(硬规则,不可跳):用
211
- `gallery/api/library.json` 校验卡名和 `style-key` → 读对应配方卡全文 →
212
- 按卡片“参考实现”定位并读准确的 demo TSX 全文 → copy `assets/lib/`
213
- 对应组件进项目。同时保存该 style 的 Gallery 参考样片路径,供实现对照和终检。
214
- 标为“仅供参考,需要自定义实现”的样式不默认推荐,用户明确点名后才可实现并
215
- 标注风险;标为“缺少预览”的样式不得声称已按动态样片复刻。
216
- demo 代码是调校过的参数真相(缓动、时值配比、
217
- 摘罩时机、已知坑的规避写法都在里面)——允许按目标产品做适配性
218
- 改动,但配方卡"已知坑/命门"标注的参数不得降档,质量标准只升不降。
219
- 凭卡名和理解新写=放弃全部调校积累,实测质感差一档。
220
- 2. **PageCam 是一切"真实页面"镜头的地基**:整页纹理 + 关键帧 2.5D 相机 +
221
- 页面空间 overlay,children 按页面 CSS px 定位、与 layout.json 共坐标系。
222
- 3. **静帧验收(最高频动作)**:每镜头在计划里写死 2 个验收帧号,
223
- 完成即跑 `npx remotion still src/index.ts <Comp> out/qa/<name>.png
224
- --frame=<N>`,自己肉眼检查构图/穿帮/文字锐度后才算完成。
225
- 静帧产物按迭代版本归档 `out/qa/`,用户贴帧反馈时可直接对号。
226
- 4. **每轮修改后整片渲染**:`npx remotion render src/index.ts <Comp>
227
- out/promo.mp4`,再用 `ffmpeg -i out/promo.mp4 -vf "select=eq(n,…)"`
228
- 从成片抽关键帧回看。实际形态是"改哪个镜头就 still 哪几帧,
229
- 然后整片重渲",成本可接受且杜绝接缝意外。
230
- 5. 像素级自检备小工具:裁剪放大看文字锐度(crop)、两帧像素 diff、
231
- 量元素 bbox 对构图。
232
- 6. **确定性渲染铁律**:禁 `Date.now()` / `Math.random()` / 无参 `new Date()`。
233
- 一切伪随机用固定种子(mulberry32/哈希函数,seed 从 index 派生),
234
- 保证逐帧可复现、渲染间零抖动。
235
- 7. 对照 `references/aesthetic-rules.md` 边做边自检(不等阶段 7):
236
- 落地要弹的缓动 y1 必须 >1、光效裁进圆角、3D 下文字糊先查
237
- 栅格化路径(CSS `zoom` 布局级放大,而非 transform scale)而不是调 DoF。
238
- 8. 指代含糊的用户反馈("第一个标题")先确认对象再动手;改错立即整
239
- commit revert 重来,不在错误版本上打补丁——每个改动独立 commit
240
- 以便干净回滚。
241
- 9. **为交付后的动效工作台留好接口**(`references/workbench.md` §2–3):时间表只写一份
242
- (`SHOTS` 是唯一事实源,字幕表 / SFX 钉帧 / 转场点从它派生并 `export`);镜头的语境级
243
- 参数(文案 / 颜色 / 字号 / 位置)做成带默认值的 props,节奏命门保持常量;
244
- `src/workbench.ts` 里 import 这些表、给每个单元补 `component` / `props` / `schema`。
245
- 模板路线已自带(`template/src/workbench.ts`),自由创作在时间线定稿后补写,
246
- 交付前 `cd workbench && npm run parity` 证明拆解无损。
247
-
248
- **产出**:逐镜头 commit;`out/qa/` 静帧档案;每轮全片渲染 mp4;`src/workbench.ts` 清单。
249
-
250
- **阶段输出**:整片渲染视频(每轮迭代一版)+ 关键静帧。自主自由创作不因该输出
251
- 暂停等待确认;用户主动反馈时再纳入下一轮。
252
- 用户可能以"从成片截帧贴图"方式给反馈,双方基于帧评审。
253
-
254
- **常见坑**:
255
-
256
- - 首检交给用户:交付前必须自己抽帧看片,"镜头视角很差,
257
- 而且有小抖动"这种问题不该由用户发现。
258
- - 跳过 demo 代码直接写:参数是几轮真实裁决调校出来的,
259
- 新写的版本几乎必然回踩已知坑。
260
- - 产品宣传片默认不加手持 shake;相机噪声只在明确追求纪实感时用。
261
- - 装饰性 glint/泛光群发:批量元素入场靠运动本身。单点高质量光效可做,
262
- 群发即廉价。
263
- - 3D 推进下文字发糊:根因是纹理源分辨率/栅格化路径,先查素材链路
264
- (2x 纹理 + CSS zoom + 关键元素 4x 单独截图),别先动相机和景深。
265
- - 飞入动画终点悬空:元素必须落进页面布局的真实槽位(嵌入、归位、
266
- 排进滚动流),悬浮在页面上方不落地会显得假。
267
-
268
- ---
269
-
270
- ## 阶段 6:声音设计
271
-
272
- **目标**:BGM 定全片能量骨架,SFX 逐拍钉在动效关键帧上,
273
- 音色符合"产品宣传片"片种而非 UI 事件语义。
274
-
275
- **前置条件(最贵的顺序教训)**:**画面时间线锁定后才开始。**
276
- 画面每动一次,钉帧表就要全体重对。若画面确实又改了,收尾动作固定
277
- 包含"全表 SFX 帧号重对",音画错位是必查项。
278
-
279
- **具体操作**(细节与判例见 `references/sound-design.md`):
280
-
281
- 1. 读 `references/sound-design.md` 与 `references/sfx-sourcing.md`,根据分镜里的
282
- 动作、材质、时长和音色从 Freesound 搜索 SFX。新项目不从模板或共享本地库挑音。
283
- 默认 CC0,允许署名时可选 CC BY;相关性与声源匹配优先,下载量/评分人数仅作辅助。
284
- 2. 用 `assets/scripts/sfx-source.py get` 下载到工程 `public/audio/sfx/`,核对详情页许可,
285
- 保存 `audio-manifest.json` 与 `FREESOUND-CREDITS.md`。脚本下载的是 MP3 预览,
286
- 不当成原始无损音频;原音质要求按素材页支持的流程获取并重新测量。
287
- 3. **BGM**:已指定则沿用前期节奏分析;未指定则结合产品方向选择,可使用
288
- `assets/audio/bgm/` 备选。候选必须垫进成片试听,音量按实测给 SFX/配音留空间。
289
- BGM 独立受 `bgm` inputProp 控制,从同一时间线交付带 BGM / 无 BGM(保留 SFX)两版。
290
- 4. 音色按片种和实际声源判断:运镜 whoosh、落地 impact、铺垫 riser、光效 sparkle、
291
- 转场 transition;点击/开关/碎裂要有拟音。合成反馈提示音只在有明确叙事理由时使用。
292
- 5. **中央 SFX 表 + 相对钉帧**:`{ from, src, volume }[]`,逐条注释动作,
293
- `from` 用 `SHOTS.x.from + offset` 或 `beatF(n)`,不写裸绝对帧号;
294
- 按 sound-design §4.6 扣除音源峰值与输出音轨偏移。Remotion 使用工程内固定文件。
295
- 6. 下载时的分析记录用于确定播放窗口、增益和候选峰值。>5s 动作样本显式给
296
- `durationInFrames`,环境声按段落铺,impact 混响保留自然尾音。处理后重新分析并更新
297
- 文件哈希与修改记录;10ms 能量峰不是 LUFS/true peak,也不自动等于语义落点。
298
- 7. 连发防机枪感:不同样本交替、音量递减、间隔贴动画加速,密集段收成 swoosh。
299
- 强鼓点片只给画面独有动作配 SFX,重音留给分镜中的少量峰值。
300
- 8. 在成片语境里试听并验峰,确认拟音可听见、不削波、不盖住必要人声。
301
- 元数据和测量不能冒充试听结论;候选尚未试听时如实记录。
302
- 9. 若分镜采用结尾三拍句式,用 Freesound 的 riser→impact→sparkle 贴实际动作,
303
- 不照抄模板音源名/帧号。下载失败不静默用旧库替代,按结果只重试失败项。
304
-
305
- **产出**:带声整片;SFX 相对钉帧表;工程内固定音频、来源许可清单、署名文件与分析记录。
306
- CC BY 素材的署名随交付提供,发布时进入说明或成片署名。
307
-
308
- **阶段输出**:带声整片渲染。自主自由创作继续进入终检,不暂停等待确认。
309
-
310
- **常见坑**:
311
-
312
- - 画面未锁定就精确钉音,后续变更漏掉 SFX 复核。
313
- - 只看下载量选到不匹配的声源,或把合成提示音当成真实 UI 拟音。
314
- - 长样本不设播放窗口,或照抄增益而忽略素材本身峰值。
315
- - 将 MP3 预览当原始无损音频、许可只留搜索标签、CC BY 署名只留在工程中。
316
- - 直接在渲染时间线引用远程 URL,网络变化导致成片不可复现。
317
-
318
- ---
319
-
320
- ## 阶段 7:验收
321
-
322
- **目标**:把贯穿全程的静帧/整片自检升级为一次正式的全片过检,
323
- 同时验证成片是否忠实执行当前模式下确认或记录的产品简报、需求到执行决策表、视觉方向、镜头映射和分镜,
324
- 对照终检与审美准则逐条出报告,然后终渲交付。
325
-
326
- **具体操作**:
327
-
328
- 1. 全片渲染最新版,ffmpeg 抽全部关键帧(每镜头至少:入场中、
329
- 动作峰值、落定后三帧)。配了 BGM 的片子在此处就渲出两版——带 BGM 版
330
- 和无 BGM 版(保留 SFX),无 BGM 版靠阶段 6 预留的 `bgm` inputProp
331
- 从同一时间线渲出:写一个 `props-nobgm.json`(内容 `{"bgm":false}`)
332
- 然后 `npx remotion render … --props=props-nobgm.json`(跨平台可靠;
333
- macOS/Linux 也可内联 `--props='{"bgm":false}'`,Windows shell 会剥掉
334
- 内联 JSON 的双引号,必须走文件)。不另建工程、不用 ffmpeg 后期抽轨。
335
- 命名区分(如 `promo.mp4` / `promo-nobgm.mp4`)。
336
- 2. **独立终检(必做)**:派一个干净上下文的 subagent 做第三方审查。
337
- 不给它制作过程中的辩解、修改历史或“应该通过”的暗示,只提供:最新版成片
338
- (配 BGM 的片子含两版,供 A8 校验)、
339
- 抽出的关键帧、创作模式、产品简报、需求到执行决策表、确认或记录的视觉方向/tokens、styleframe 或跳过理由、
340
- 功能到镜头映射、
341
- Gallery 卡名与具体变体、`library.json` 中对应记录、卡片文档定位到的准确
342
- demo TSX、Gallery 参考样片或从中抽出的关键帧、最终分镜、选中的镜头卡、
343
- `references/final-review.md` 和 `references/aesthetic-rules.md`。
344
- 3. 审查 Agent 按 `final-review.md` 检查产品目标、功能完整性、视觉方向一致性、
345
- 镜头卡/变体还原度、分镜一致性、数据安全、音画同步和视觉技术质量。逐镜头
346
- 看帧+看片,给出 "F2 ✗(第 340 帧缺少已确认的知识图谱功能)" 或
347
- "Q2 ✗(第 615 帧文字发糊)" 式结论,每条问题附可复核帧号/截图。
348
- 镜头卡适配不要求和 Gallery 样片像素级相同,但必须保留动作语法、关键时值、
349
- 已知坑/命门参数和用户点名的具体变体。
350
- 4. 内容级自查:每个镜头问"给了什么新信息",重复镜头/重复 tagline 删;
351
- 文案按最终画面重写一遍,纯动画段落也要有解说 caption,不留哑巴段落。
352
- 5. 音画对齐终检:逐条 SFX 对帧回放,确认无错位(时间线若在阶段 6 后
353
- 还动过,先重对再验)。卡点片按 music-beat-sync.md §5 做渲后回测,
354
- 全部切点误差 ≤3f 才算过。
355
- 6. 审查报告的修复项回到阶段 3/5/6 小循环:方案或分镜偏差回阶段 3,画面实现
356
- 问题回阶段 5,声音问题回阶段 6;直到 checklist 通过后终渲出片。
357
- 终渲重复步骤 1 的双版本渲染——配 BGM 的片子交付带 BGM / 无 BGM 两版,
358
- 无 BGM 版方便用户后期自配音乐或平台配乐。
359
-
360
- **产出**:独立审查报告(final-review + aesthetic-rules checklist + 帧号证据)
361
- + 终渲成片(带 BGM / 无 BGM 两版)。
362
-
363
- **交付物**:审查报告 + 成片两版(带 BGM + 无 BGM)。
364
-
365
- 交付后先 `node workbench/scripts/open.mjs <工程目录>` 主动打开动效工作台(浏览器自动
366
- 把成片拆成多轨,用户可视化微调后直接导出;见 `references/workbench.md`),再在最后按
367
- 1-2-3 依次说三件事:① 发布时推荐(非强制)在简介 @ 一下
368
- skill 作者(三个平台账号都带链接);② 邀请把成片放到作品展示页(用日常语言
369
- 说,可留自己的账号);③ 可以导出剪映工程文件(需要则读
370
- `references/jianying-export.md` 执行)。逐条口径与账号链接见 `SKILL.md`
371
- 「交付收尾」。
372
-
373
- **常见坑**:
374
-
375
- - 把验收当"最后才做的事":本阶段只是收口。若前五阶段没做静帧自检,
376
- 这里堆积的问题量会让 checklist 失去意义——验收贯穿全程是定式。
377
- - 自检报告流于"全部 ✓":用户会读清屏幕上每个字、会自己截帧对比——
378
- 报告里每条结论都应附可复核的帧号/截图。
379
- - 制作 agent 自己出审查报告:确认偏差不可避免,独立 subagent 审查
380
- 不可省略。
381
- - 只查“好不好看”不查“是否符合当前模式的制作基准”:功能漏拍、视觉方向漂移、
382
- 镜头变体用错和未经确认的数据都属于终检失败。
1
+ # pipeline — 八阶段制作流水线
2
+
3
+ 八阶段,方向性问题不进昂贵的逐镜头阶段。
4
+ 实证细节来自多支已交付宣传片的复盘(模板片见 `template/`)。
5
+
6
+ ## 目录
7
+
8
+ - 阶段 0:产品理解与执行约束
9
+ - 阶段 1:视觉方向与 styleframe
10
+ - 阶段 2:功能到镜头映射
11
+ - 阶段 3:分镜与制作放行
12
+ - 阶段 4:最终素材采集
13
+ - 阶段 5:逐镜头实现
14
+ - 阶段 6:声音设计
15
+ - 阶段 7:独立终检与交付
16
+
17
+ 本文件是**自主自由创作**的完整流水线:阶段 0–3 的判断由 Agent 根据项目内容
18
+ 自主完成并记录,不逐阶段等待用户确认,然后连续进入阶段 4–7。用户已给出的
19
+ 用途、受众、功能、画幅、音频或数据要求都是硬约束。
20
+
21
+ 直接使用 Ink Press 模板不进入本流水线,按 `template/TEMPLATE.md` 的原有替换
22
+ 流程执行;模板文档引用阶段 4 时只借用其中的素材采集方法。
23
+
24
+ **共同创作从 `guided-free-creation.md` 进入本文件时,不要从头重跑。** 该流程
25
+ 已经完成并确认阶段 0–3;直接从阶段 4 最终素材采集继续,不重新询问或重新设计。
26
+
27
+ 两处执行原则(实战复盘已吸收):
28
+
29
+ 1. **最终设计 spec 与分镜共同构成制作放行。** 分镜表长在设计 spec 里
30
+ (`| # | 时间 | 镜头 | 关键动效 |` 四列);确认放行不重新打开已确认的
31
+ 业务或创意问题,只补实现必要的未决项。
32
+ 2. **验收贯穿全程,不是最后一个阶段。** 每个镜头任务以 `npx remotion still`
33
+ 静帧肉眼验收收尾(产物按版本归档 `out/qa/`),每轮反馈修改后整片重渲。
34
+ 阶段 7 只是把这套贯穿动作升级为对照 aesthetic-rules.md 的正式自检报告。
35
+
36
+ 另注顺序弹性:styleframe 可以先用 HTML 与少量安全预检素材;重要的是**逐镜头
37
+ 实现开始前最终素材必须依据已定案的分镜采集**——素材方向错误拖到逐镜头阶段后
38
+ 才暴露,代价是整套场景报废。
39
+
40
+ ---
41
+
42
+ ## 阶段 0:产品理解与执行约束
43
+
44
+ 在写视频代码或采集最终素材前,只读检查项目的定位、主要功能、页面状态、视觉
45
+ tokens、启动方式和数据风险。根据项目证据和用户已有描述,生成产品简报与需求到
46
+ 执行决策表,明确用途、受众、核心卖点、必须展示功能、时长/画幅/语言、音频和
47
+ 数据口径对本片的实际影响。
48
+
49
+ 自主自由创作由 Agent 对缺省项作动态判断并写入设计 spec,不暂停要求用户确认。
50
+ 用户指定了 BGM 时,先按 `references/music-beat-sync.md` 分析节奏;未指定时由 Agent
51
+ 根据产品与发布场景在阶段 6 选型。公开演示数据可在确认其公开属性后使用;客户、
52
+ 个人、内部、密钥、实时或其他敏感数据一律先虚构、脱敏或冻结。
53
+
54
+ **产出**:产品简报;需求到执行决策表;明确的数据与音频约束。
55
+
56
+ ---
57
+
58
+ ## 阶段 1:视觉方向与 styleframe
59
+
60
+ **目标**:用最便宜的产物锁定全片色板、字体、光感与运镜气质,
61
+ 让所有方向性争论发生在写第一行 Remotion 代码之前。
62
+
63
+ **具体操作**:
64
+
65
+ 1. 根据当前项目生成最多 3 个文字方向。每个方向附一组**动效性格 tokens**
66
+ (推导法见下方“品牌→动效参数”表),但不要把 Ink Press 作为固定选项。
67
+ 2. Agent 依据产品视觉、用途和受众自主选择最合适的方向,并把选择与取舍写入
68
+ 设计 spec;不暂停等待用户选择。
69
+ 3. 对选定方向**不渲染视频、不写 Remotion 代码**,写一个纯 HTML/CSS
70
+ styleframe 页,包含 2–3 张 1920×1080 静态关键画面。
71
+ 4. 用 Playwright/Puppeteer 截图验证字体、色板、材质、构图、光感与信息密度;
72
+ 缓动和运镜速度仍以 tokens、Gallery 样片或短运动测试判断。若已有严格品牌规范
73
+ 或明确参考片,可记录理由后跳过 styleframe。
74
+ 5. 若用户给了参考片:下载后 ffmpeg 抽帧(`select=eq(n,…)` 抽 ~100 帧、
75
+ `tile=4x5` 拼 contact sheet),逐个动画/转场/特效做 motion breakdown,
76
+ 写成"手法|参考片实现|取舍"三列表进设计 spec——**选择性适配,
77
+ 不强行套用**。图片参考同理:它描述的是"某一类镜头"的感觉,
78
+ 不是全片风格令。
79
+
80
+ **品牌→动效参数推导**。不凭手感挑 easing/时长,先把品牌放到两根轴上,
81
+ 再从最近的预设起步:
82
+
83
+ - **能量轴**:低(沉稳/premium/机构感)↔ 高(运动/startup/娱乐)——
84
+ 决定时长、过冲、squash 幅度;
85
+ - **调性轴**:严肃(金融/医疗/enterprise)↔ 活泼(消费/社交/儿童)——
86
+ 决定路径曲直、次级动作多寡。产品视觉本身是证据(锐利几何形→工程感,
87
+ 圆角+亮色→柔和活泼);用户口述的品牌词覆盖视觉推断。
88
+
89
+ | 预设(品类) | 主时长@30fps | 入场 easing | 过冲 | squash |
90
+ |---|---|---|---|---|
91
+ | 专业信赖(fintech/enterprise/B2B)| ~21f | bezier(0,0,0.2,1) | 1.0 不弹 | 0 |
92
+ | 精致高端(奢侈品/时尚)| ~48f | bezier(0.4,0,0.6,1) | ≤1.02 | 0 |
93
+ | 活力大胆(体育/游戏/startup)| ~18f | bezier(0.16,1,0.3,1) | 1.12 | 0.25 |
94
+ | 活泼愉悦(消费/社交)| ~27f | bezier(0.34,1.56,0.64,1) | 1.08 | 0.18 |
95
+ | 平静关怀(健康/教育)| ~42f | ease-in-out 对称 | 1.0 | ≤0.04 |
96
+ | 亲和友好(小微/社区)| ~26f | bezier(0.25,0.46,0.45,0.94) | 1.04 | 0.08 |
97
+
98
+ 用法:定预设 → 按两轴微调 → tokens 写进设计 spec。自检两条:
99
+ ①用三个词描述成片动效,与品牌词对得上吗;②同一套 tokens 必须同时管
100
+ 入场/转场/hold 节奏——一个品牌一种动效嗓音,混用两套读作拼盘。
101
+ 注意预设值与库内硬判例冲突时判例赢:落地要弹的场合 y1 必须 >1,
102
+ "专业信赖不弹"指的是无落地隐喻的淡入/推移类动作。
103
+
104
+ **产出**:选定方向的 styleframe;色板/字体/光感 tokens + 动效性格 tokens;
105
+ (有参考片时)motion breakdown 表。
106
+
107
+ **常见坑**:
108
+
109
+ - 用渲染视频做风格提案:太贵,改方向的心理成本也高。静态帧足够定调。
110
+ - 参考驱动的风格 move 全局一刀切:风格化机位逐镜头决定(信息密集的
111
+ 列表/堆叠镜头正视更可读)。
112
+
113
+ ---
114
+
115
+ ## 阶段 2:功能到镜头映射
116
+
117
+ **目标**:为每个必须展示的功能选定合适的运动语法,不在此阶段提前写完整分镜。
118
+
119
+ **具体操作**:
120
+
121
+ 1. **先列产品功能清单,逐一对应镜头**。核心功能漏拍等于返工;
122
+ 一种动画手法(飞入/堆叠/翻页)全片只当一次主角,同质化即返工信号。
123
+ 2. 扫描 `references/shots/` 全部卡片的 frontmatter,根据用途、能量、建议时长、
124
+ 限制和所需页面状态,为每项功能选择首选与备选卡;Agent 自主定案并记录依据。
125
+ 3. 完整读取选中卡片,并按“参考实现”定位准确 demo 源码。没有合适卡片时可新写,
126
+ 但必须在设计 spec 中说明范围与验证风险。
127
+
128
+ **产出**:功能到镜头映射表;选中卡名、变体、demo 源码和参考样片定位。
129
+
130
+ ---
131
+
132
+ ## 阶段 3:分镜与制作放行
133
+
134
+ **目标**:把已定案的功能与镜头映射排成有能量曲线的完整镜头序列,并转成帧级
135
+ 实施计划。自主自由创作由 Agent 自行放行,不暂停等待确认。
136
+
137
+ **具体操作**:
138
+
139
+ 1. 先查 `references/sequences/` 有无适用的桥段模板;有则按其填空流程分配段位
140
+ 与帧预算,再把映射好的镜头排成低能量开场→功能段与呼吸位交替→高能量收尾。
141
+ 2. **已有指定 BGM 时**:先出音乐结构表(满能量起点/breakdown 拍号,
142
+ 见 music-beat-sync.md §2),镜头边界全部锚到拍号,最强 hit 分给
143
+ 全片 2–3 个大 slam;breakdown 段天然是品牌呼吸位。
144
+ 3. 写完整分镜表:镜头顺序、时长、功能信息、具体页面状态、镜头卡与变体、主动作、
145
+ 素材来源、字幕、转场和 SFX。每镜只讲一个主要动效。
146
+ 4. 排时间线时**预留 hold/rest 帧预算**:品牌字标落定 hold ≥1s(30f)、
147
+ 批量动效收尾 0.5s 静止、开场主体动作 ≥3s。节奏返工是单向的——
148
+ 过快必返工、放慢从未被否。
149
+ 5. Agent 检查分镜与产品简报、需求决策、视觉方向和镜头映射一致后自行放行,
150
+ 把分镜转译成帧级时间轴进实施计划:
151
+ `| shot | from | duration | 内容 |`(卡点片则 from/to 全用 `beatF(n)`
152
+ 表达),并给每镜头指定源文件与验收帧号。
153
+
154
+ **产出**:设计 spec(含风格 tokens + motion breakdown + 分镜表);
155
+ 帧级时间轴。
156
+
157
+ **常见坑**:
158
+
159
+ - 没对功能清单,凭手感排镜头:核心功能漏拍、动画手法同质化,两种都返工。
160
+ - 开场贪多:开场信息宁少而聚焦,一个主角、一条完整动作弧。
161
+ - 时长预算不含呼吸位:动效排满每一帧,后期逐镜头补 hold 等于全线挪帧。
162
+
163
+ ---
164
+
165
+ ## 阶段 4:最终素材采集
166
+
167
+ **前置条件**:最终设计 spec 与分镜已经放行。共同创作以用户确认作为放行;自主
168
+ 自由创作以 Agent 完成一致性检查并记录为放行。此前为 styleframe 采过的少量安全
169
+ 截图只能作为方向验证,不得直接替代最终素材。
170
+
171
+ **目标**:严格按最终分镜拿到全部镜头所需的真实页面素材,包括全页纹理、元素
172
+ 切片和坐标表,为 2.5D 运镜与页面空间动画打地基。
173
+
174
+ **具体操作**:
175
+
176
+ 1. 起产品本地 dev server(桌面端产品则用窗口截图工具,同样出三件套)。
177
+ 2. 复制 `assets/scripts/capture-template.mjs` 进项目,改 BASE_URL 与选择器,
178
+ 跑一次产出三件套:
179
+ - **全页 2x 截图**:viewport 1920×1080、`deviceScaleFactor: 2`;截图前
180
+ `document.fonts.ready` + 600ms settle,实时同步页额外再等 1.5–2s。
181
+ - **per-element cutout**:按语义选择器逐元素截图;悬浮件用透明底,需要
182
+ “卡片飞入空板”的镜头则额外截空 backplate。
183
+ - **layout.json**:记录每个元素在整页坐标系下的 `{x,y,w,h}` bbox 与每页
184
+ `pageH`,供飞行目标位、遮罩位置和入场区域直接使用。
185
+ 3. 支持按页/按元素增量重采。活数据源先按阶段 0 的数据口径冻结、虚构或脱敏,
186
+ 再进行最终采集。
187
+
188
+ **产出**:`public/textures/` 全页图、元素切片与空 backplate;`layout.json`;
189
+ 可重跑的 capture 脚本。
190
+
191
+ **常见坑**:
192
+
193
+ - 在分镜放行前做全量采集:页面状态和素材范围尚未确定,会造成重复采集。
194
+ - 手搓 HTML 复刻既有页面:复刻默认走真实截图;手搓 UI 只用于非复刻场景。
195
+ - 活数据源不锁定,或只截整页不记录 layout 坐标。
196
+
197
+ ---
198
+
199
+ ## 阶段 5:逐镜头实现
200
+
201
+ **前置条件**:需已有可跑的 Remotion 项目(30fps、1920×1080,`src/index.ts`
202
+ 注册 Composition;新项目可 `npx create-video@latest` 初始化后把
203
+ `assets/lib/` 组件 copy 进去;走模板路线则直接从 `template/` 起步)。
204
+
205
+ **目标**:按帧级时间轴逐镜头落地,每镜头完成即自证质量——
206
+ 验收在这个阶段就开始,不留到最后。
207
+
208
+ **具体操作**:
209
+
210
+ 1. **每镜头先解析再三读**(硬规则,不可跳):用
211
+ `gallery/api/library.json` 校验卡名和 `style-key` → 读对应配方卡全文 →
212
+ 按卡片“参考实现”定位并读准确的 demo TSX 全文 → copy `assets/lib/`
213
+ 对应组件进项目。同时保存该 style 的 Gallery 参考样片路径,供实现对照和终检。
214
+ 标为“仅供参考,需要自定义实现”的样式不默认推荐,用户明确点名后才可实现并
215
+ 标注风险;标为“缺少预览”的样式不得声称已按动态样片复刻。
216
+ demo 代码是调校过的参数真相(缓动、时值配比、
217
+ 摘罩时机、已知坑的规避写法都在里面)——允许按目标产品做适配性
218
+ 改动,但配方卡"已知坑/命门"标注的参数不得降档,质量标准只升不降。
219
+ 凭卡名和理解新写=放弃全部调校积累,实测质感差一档。
220
+ 2. **PageCam 是一切"真实页面"镜头的地基**:整页纹理 + 关键帧 2.5D 相机 +
221
+ 页面空间 overlay,children 按页面 CSS px 定位、与 layout.json 共坐标系。
222
+ 3. **静帧验收(最高频动作)**:每镜头在计划里写死 2 个验收帧号,
223
+ 完成即跑 `npx remotion still src/index.ts <Comp> out/qa/<name>.png
224
+ --frame=<N>`,自己肉眼检查构图/穿帮/文字锐度后才算完成。
225
+ 静帧产物按迭代版本归档 `out/qa/`,用户贴帧反馈时可直接对号。
226
+ 4. **每轮修改后整片渲染**:`npx remotion render src/index.ts <Comp>
227
+ out/promo.mp4`,再用 `ffmpeg -i out/promo.mp4 -vf "select=eq(n,…)"`
228
+ 从成片抽关键帧回看。实际形态是"改哪个镜头就 still 哪几帧,
229
+ 然后整片重渲",成本可接受且杜绝接缝意外。
230
+ 5. 像素级自检备小工具:裁剪放大看文字锐度(crop)、两帧像素 diff、
231
+ 量元素 bbox 对构图。
232
+ 6. **确定性渲染铁律**:禁 `Date.now()` / `Math.random()` / 无参 `new Date()`。
233
+ 一切伪随机用固定种子(mulberry32/哈希函数,seed 从 index 派生),
234
+ 保证逐帧可复现、渲染间零抖动。
235
+ 7. 对照 `references/aesthetic-rules.md` 边做边自检(不等阶段 7):
236
+ 落地要弹的缓动 y1 必须 >1、光效裁进圆角、3D 下文字糊先查
237
+ 栅格化路径(CSS `zoom` 布局级放大,而非 transform scale)而不是调 DoF。
238
+ 8. 指代含糊的用户反馈("第一个标题")先确认对象再动手;改错立即整
239
+ commit revert 重来,不在错误版本上打补丁——每个改动独立 commit
240
+ 以便干净回滚。
241
+ 9. **为交付后的动效工作台留好接口**(`references/workbench.md` §2–3):时间表只写一份
242
+ (`SHOTS` 是唯一事实源,字幕表 / SFX 钉帧 / 转场点从它派生并 `export`);镜头的语境级
243
+ 参数(文案 / 颜色 / 字号 / 位置)做成带默认值的 props,节奏命门保持常量;
244
+ `src/workbench.ts` 里 import 这些表、给每个单元补 `component` / `props` / `schema`。
245
+ 模板路线已自带(`template/src/workbench.ts`),自由创作在时间线定稿后补写,
246
+ 交付前 `cd workbench && npm run parity` 证明拆解无损。
247
+
248
+ **产出**:逐镜头 commit;`out/qa/` 静帧档案;每轮全片渲染 mp4;`src/workbench.ts` 清单。
249
+
250
+ **阶段输出**:整片渲染视频(每轮迭代一版)+ 关键静帧。自主自由创作不因该输出
251
+ 暂停等待确认;用户主动反馈时再纳入下一轮。
252
+ 用户可能以"从成片截帧贴图"方式给反馈,双方基于帧评审。
253
+
254
+ **常见坑**:
255
+
256
+ - 首检交给用户:交付前必须自己抽帧看片,"镜头视角很差,
257
+ 而且有小抖动"这种问题不该由用户发现。
258
+ - 跳过 demo 代码直接写:参数是几轮真实裁决调校出来的,
259
+ 新写的版本几乎必然回踩已知坑。
260
+ - 产品宣传片默认不加手持 shake;相机噪声只在明确追求纪实感时用。
261
+ - 装饰性 glint/泛光群发:批量元素入场靠运动本身。单点高质量光效可做,
262
+ 群发即廉价。
263
+ - 3D 推进下文字发糊:根因是纹理源分辨率/栅格化路径,先查素材链路
264
+ (2x 纹理 + CSS zoom + 关键元素 4x 单独截图),别先动相机和景深。
265
+ - 飞入动画终点悬空:元素必须落进页面布局的真实槽位(嵌入、归位、
266
+ 排进滚动流),悬浮在页面上方不落地会显得假。
267
+
268
+ ---
269
+
270
+ ## 阶段 6:声音设计
271
+
272
+ **目标**:BGM 定全片能量骨架,SFX 逐拍钉在动效关键帧上,
273
+ 音色符合"产品宣传片"片种而非 UI 事件语义。
274
+
275
+ **前置条件(最贵的顺序教训)**:**画面时间线锁定后才开始。**
276
+ 画面每动一次,钉帧表就要全体重对。若画面确实又改了,收尾动作固定
277
+ 包含"全表 SFX 帧号重对",音画错位是必查项。
278
+
279
+ **具体操作**(细节与判例见 `references/sound-design.md`):
280
+
281
+ 1. 读 `references/sound-design.md` 与 `references/sfx-sourcing.md`,根据分镜里的
282
+ 动作、材质、时长和音色从 Freesound 搜索 SFX。新项目不从模板或共享本地库挑音。
283
+ 默认 CC0,允许署名时可选 CC BY;相关性与声源匹配优先,下载量/评分人数仅作辅助。
284
+ 2. 用 `assets/scripts/sfx-source.py get` 下载到工程 `public/audio/sfx/`,核对详情页许可,
285
+ 保存 `audio-manifest.json` 与 `FREESOUND-CREDITS.md`。脚本下载的是 MP3 预览,
286
+ 不当成原始无损音频;原音质要求按素材页支持的流程获取并重新测量。
287
+ 3. **BGM**:已指定则沿用前期节奏分析;未指定则结合产品方向选择,可使用
288
+ `assets/audio/bgm/` 备选。候选必须垫进成片试听,音量按实测给 SFX/配音留空间。
289
+ BGM 独立受 `bgm` inputProp 控制,从同一时间线交付带 BGM / 无 BGM(保留 SFX)两版。
290
+ 4. 音色按片种和实际声源判断:运镜 whoosh、落地 impact、铺垫 riser、光效 sparkle、
291
+ 转场 transition;点击/开关/碎裂要有拟音。合成反馈提示音只在有明确叙事理由时使用。
292
+ 5. **中央 SFX 表 + 相对钉帧**:`{ from, src, volume }[]`,逐条注释动作,
293
+ `from` 用 `SHOTS.x.from + offset` 或 `beatF(n)`,不写裸绝对帧号;
294
+ 按 sound-design §4.6 扣除音源峰值与输出音轨偏移。Remotion 使用工程内固定文件。
295
+ 6. 下载时的分析记录用于确定播放窗口、增益和候选峰值。>5s 动作样本显式给
296
+ `durationInFrames`,环境声按段落铺,impact 混响保留自然尾音。处理后重新分析并更新
297
+ 文件哈希与修改记录;10ms 能量峰不是 LUFS/true peak,也不自动等于语义落点。
298
+ 7. 连发防机枪感:不同样本交替、音量递减、间隔贴动画加速,密集段收成 swoosh。
299
+ 强鼓点片只给画面独有动作配 SFX,重音留给分镜中的少量峰值。
300
+ 8. 在成片语境里试听并验峰,确认拟音可听见、不削波、不盖住必要人声。
301
+ 元数据和测量不能冒充试听结论;候选尚未试听时如实记录。
302
+ 9. 若分镜采用结尾三拍句式,用 Freesound 的 riser→impact→sparkle 贴实际动作,
303
+ 不照抄模板音源名/帧号。下载失败不静默用旧库替代,按结果只重试失败项。
304
+
305
+ **产出**:带声整片;SFX 相对钉帧表;工程内固定音频、来源许可清单、署名文件与分析记录。
306
+ CC BY 素材的署名随交付提供,发布时进入说明或成片署名。
307
+
308
+ **阶段输出**:带声整片渲染。自主自由创作继续进入终检,不暂停等待确认。
309
+
310
+ **常见坑**:
311
+
312
+ - 画面未锁定就精确钉音,后续变更漏掉 SFX 复核。
313
+ - 只看下载量选到不匹配的声源,或把合成提示音当成真实 UI 拟音。
314
+ - 长样本不设播放窗口,或照抄增益而忽略素材本身峰值。
315
+ - 将 MP3 预览当原始无损音频、许可只留搜索标签、CC BY 署名只留在工程中。
316
+ - 直接在渲染时间线引用远程 URL,网络变化导致成片不可复现。
317
+
318
+ ---
319
+
320
+ ## 阶段 7:验收
321
+
322
+ **目标**:把贯穿全程的静帧/整片自检升级为一次正式的全片过检,
323
+ 同时验证成片是否忠实执行当前模式下确认或记录的产品简报、需求到执行决策表、视觉方向、镜头映射和分镜,
324
+ 对照终检与审美准则逐条出报告,然后终渲交付。
325
+
326
+ **具体操作**:
327
+
328
+ 1. 全片渲染最新版,ffmpeg 抽全部关键帧(每镜头至少:入场中、
329
+ 动作峰值、落定后三帧)。配了 BGM 的片子在此处就渲出两版——带 BGM 版
330
+ 和无 BGM 版(保留 SFX),无 BGM 版靠阶段 6 预留的 `bgm` inputProp
331
+ 从同一时间线渲出:写一个 `props-nobgm.json`(内容 `{"bgm":false}`)
332
+ 然后 `npx remotion render … --props=props-nobgm.json`(跨平台可靠;
333
+ macOS/Linux 也可内联 `--props='{"bgm":false}'`,Windows shell 会剥掉
334
+ 内联 JSON 的双引号,必须走文件)。不另建工程、不用 ffmpeg 后期抽轨。
335
+ 命名区分(如 `promo.mp4` / `promo-nobgm.mp4`)。
336
+ 2. **独立终检(必做)**:派一个干净上下文的 subagent 做第三方审查。
337
+ 不给它制作过程中的辩解、修改历史或“应该通过”的暗示,只提供:最新版成片
338
+ (配 BGM 的片子含两版,供 A8 校验)、
339
+ 抽出的关键帧、创作模式、产品简报、需求到执行决策表、确认或记录的视觉方向/tokens、styleframe 或跳过理由、
340
+ 功能到镜头映射、
341
+ Gallery 卡名与具体变体、`library.json` 中对应记录、卡片文档定位到的准确
342
+ demo TSX、Gallery 参考样片或从中抽出的关键帧、最终分镜、选中的镜头卡、
343
+ `references/final-review.md` 和 `references/aesthetic-rules.md`。
344
+ 3. 审查 Agent 按 `final-review.md` 检查产品目标、功能完整性、视觉方向一致性、
345
+ 镜头卡/变体还原度、分镜一致性、数据安全、音画同步和视觉技术质量。逐镜头
346
+ 看帧+看片,给出 "F2 ✗(第 340 帧缺少已确认的知识图谱功能)" 或
347
+ "Q2 ✗(第 615 帧文字发糊)" 式结论,每条问题附可复核帧号/截图。
348
+ 镜头卡适配不要求和 Gallery 样片像素级相同,但必须保留动作语法、关键时值、
349
+ 已知坑/命门参数和用户点名的具体变体。
350
+ 4. 内容级自查:每个镜头问"给了什么新信息",重复镜头/重复 tagline 删;
351
+ 文案按最终画面重写一遍,纯动画段落也要有解说 caption,不留哑巴段落。
352
+ 5. 音画对齐终检:逐条 SFX 对帧回放,确认无错位(时间线若在阶段 6 后
353
+ 还动过,先重对再验)。卡点片按 music-beat-sync.md §5 做渲后回测,
354
+ 全部切点误差 ≤3f 才算过。
355
+ 6. 审查报告的修复项回到阶段 3/5/6 小循环:方案或分镜偏差回阶段 3,画面实现
356
+ 问题回阶段 5,声音问题回阶段 6;直到 checklist 通过后终渲出片。
357
+ 终渲重复步骤 1 的双版本渲染——配 BGM 的片子交付带 BGM / 无 BGM 两版,
358
+ 无 BGM 版方便用户后期自配音乐或平台配乐。
359
+
360
+ **产出**:独立审查报告(final-review + aesthetic-rules checklist + 帧号证据)
361
+ + 终渲成片(带 BGM / 无 BGM 两版)。
362
+
363
+ **交付物**:审查报告 + 成片两版(带 BGM + 无 BGM)。
364
+
365
+ 交付后先 `node workbench/scripts/open.mjs <工程目录>` 主动打开动效工作台(浏览器自动
366
+ 把成片拆成多轨,用户可视化微调后直接导出;见 `references/workbench.md`),再在最后按
367
+ 1-2-3 依次说三件事:① 发布时推荐(非强制)在简介 @ 一下
368
+ skill 作者(三个平台账号都带链接);② 邀请把成片放到作品展示页(用日常语言
369
+ 说,可留自己的账号);③ 可以导出剪映工程文件(需要则读
370
+ `references/jianying-export.md` 执行)。逐条口径与账号链接见 `SKILL.md`
371
+ 「交付收尾」。
372
+
373
+ **常见坑**:
374
+
375
+ - 把验收当"最后才做的事":本阶段只是收口。若前五阶段没做静帧自检,
376
+ 这里堆积的问题量会让 checklist 失去意义——验收贯穿全程是定式。
377
+ - 自检报告流于"全部 ✓":用户会读清屏幕上每个字、会自己截帧对比——
378
+ 报告里每条结论都应附可复核的帧号/截图。
379
+ - 制作 agent 自己出审查报告:确认偏差不可避免,独立 subagent 审查
380
+ 不可省略。
381
+ - 只查“好不好看”不查“是否符合当前模式的制作基准”:功能漏拍、视觉方向漂移、
382
+ 镜头变体用错和未经确认的数据都属于终检失败。