hyper-animator-codex 0.7.1 → 0.8.0

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 (318) hide show
  1. package/README.md +51 -3
  2. package/bin/hyper-animator-codex.mjs +1 -1
  3. package/lib/minimax-config.mjs +3 -3
  4. package/package.json +1 -1
  5. package/skills/hyper-animator-codex/SKILL.md +58 -20
  6. package/skills/hyper-animator-codex/agents/openai.yaml +2 -2
  7. package/skills/hyper-animator-codex/contracts/shot-plan.schema.json +214 -0
  8. package/skills/hyper-animator-codex/contracts/workflow-policy.json +85 -0
  9. package/skills/hyper-animator-codex/references/HyperFrames-AI-Generation-Patterns-codex.md +788 -0
  10. package/skills/hyper-animator-codex/references/beat-sync-workflow.md +7 -0
  11. package/skills/hyper-animator-codex/references/examples/shot-plan-dual-catalog.json +69 -0
  12. package/skills/hyper-animator-codex/references/hyperframes-agent-pseudocode.ts +1 -1
  13. package/skills/hyper-animator-codex/references/hyperframes-catalog-map.json +97 -230
  14. package/skills/hyper-animator-codex/references/hyperframes-intent-workflow.md +23 -7
  15. package/skills/hyper-animator-codex/references/minimax-music-workflow.md +24 -4
  16. package/skills/hyper-animator-codex/references/narration-audio-workflow.md +31 -1
  17. package/skills/hyper-animator-codex/references/shotcraft/LICENSE +202 -0
  18. package/skills/hyper-animator-codex/references/shotcraft/cards/ai-stream-response/README.md +46 -0
  19. package/skills/hyper-animator-codex/references/shotcraft/cards/autolayout-gap-dial/README.md +53 -0
  20. package/skills/hyper-animator-codex/references/shotcraft/cards/beat-cut-moves/README.md +54 -0
  21. package/skills/hyper-animator-codex/references/shotcraft/cards/beat-step-list-theme-cycle/README.md +59 -0
  22. package/skills/hyper-animator-codex/references/shotcraft/cards/before-after-slider-scrub/README.md +47 -0
  23. package/skills/hyper-animator-codex/references/shotcraft/cards/bottom-push-stack-wipe/README.md +58 -0
  24. package/skills/hyper-animator-codex/references/shotcraft/cards/brand-frame-snap/README.md +51 -0
  25. package/skills/hyper-animator-codex/references/shotcraft/cards/brand-ink-open/README.md +35 -0
  26. package/skills/hyper-animator-codex/references/shotcraft/cards/bubble-swarm-takeover/README.md +62 -0
  27. package/skills/hyper-animator-codex/references/shotcraft/cards/canvas-materialize-moves/README.md +55 -0
  28. package/skills/hyper-animator-codex/references/shotcraft/cards/card-flip-reveal/README.md +50 -0
  29. package/skills/hyper-animator-codex/references/shotcraft/cards/card-flock-tumble/README.md +54 -0
  30. package/skills/hyper-animator-codex/references/shotcraft/cards/cel-flash-stomp/README.md +54 -0
  31. package/skills/hyper-animator-codex/references/shotcraft/cards/chart-live-moves/README.md +51 -0
  32. package/skills/hyper-animator-codex/references/shotcraft/cards/circle-match-iris/README.md +53 -0
  33. package/skills/hyper-animator-codex/references/shotcraft/cards/cloner-depth-echo/README.md +38 -0
  34. package/skills/hyper-animator-codex/references/shotcraft/cards/collab-cursor-moves/README.md +48 -0
  35. package/skills/hyper-animator-codex/references/shotcraft/cards/color-block-step-wipe/README.md +54 -0
  36. package/skills/hyper-animator-codex/references/shotcraft/cards/command-palette-summon/README.md +45 -0
  37. package/skills/hyper-animator-codex/references/shotcraft/cards/crane-rise-reveal/README.md +47 -0
  38. package/skills/hyper-animator-codex/references/shotcraft/cards/crash-zoom-punch/README.md +38 -0
  39. package/skills/hyper-animator-codex/references/shotcraft/cards/dataviz-landscape-open/README.md +54 -0
  40. package/skills/hyper-animator-codex/references/shotcraft/cards/deck-deal-flyin/README.md +45 -0
  41. package/skills/hyper-animator-codex/references/shotcraft/cards/depth-layer-moves/README.md +40 -0
  42. package/skills/hyper-animator-codex/references/shotcraft/cards/document-typewriter-reveal/README.md +40 -0
  43. package/skills/hyper-animator-codex/references/shotcraft/cards/draw-svg-trace/README.md +50 -0
  44. package/skills/hyper-animator-codex/references/shotcraft/cards/edit-hook-moves/README.md +38 -0
  45. package/skills/hyper-animator-codex/references/shotcraft/cards/element-body-moves/README.md +49 -0
  46. package/skills/hyper-animator-codex/references/shotcraft/cards/fui-hud-moves/README.md +44 -0
  47. package/skills/hyper-animator-codex/references/shotcraft/cards/gauge-readout-moves/README.md +45 -0
  48. package/skills/hyper-animator-codex/references/shotcraft/cards/glow-flyline-moves/README.md +51 -0
  49. package/skills/hyper-animator-codex/references/shotcraft/cards/gradient-word-sweep/README.md +49 -0
  50. package/skills/hyper-animator-codex/references/shotcraft/cards/graze-face-tour/README.md +56 -0
  51. package/skills/hyper-animator-codex/references/shotcraft/cards/hashtag-to-pill-materialize/README.md +57 -0
  52. package/skills/hyper-animator-codex/references/shotcraft/cards/hires-rasterize-3d-text/README.md +34 -0
  53. package/skills/hyper-animator-codex/references/shotcraft/cards/icon-field-colorize/README.md +53 -0
  54. package/skills/hyper-animator-codex/references/shotcraft/cards/icon-performance-moves/README.md +46 -0
  55. package/skills/hyper-animator-codex/references/shotcraft/cards/impact-feedback/README.md +50 -0
  56. package/skills/hyper-animator-codex/references/shotcraft/cards/input-trigger-moves/README.md +49 -0
  57. package/skills/hyper-animator-codex/references/shotcraft/cards/integration-hub-map/README.md +54 -0
  58. package/skills/hyper-animator-codex/references/shotcraft/cards/letterspace-materialize/README.md +52 -0
  59. package/skills/hyper-animator-codex/references/shotcraft/cards/light-play-moves/README.md +49 -0
  60. package/skills/hyper-animator-codex/references/shotcraft/cards/line-boil/README.md +52 -0
  61. package/skills/hyper-animator-codex/references/shotcraft/cards/line-carry-transition/README.md +52 -0
  62. package/skills/hyper-animator-codex/references/shotcraft/cards/list-stack-press/README.md +43 -0
  63. package/skills/hyper-animator-codex/references/shotcraft/cards/magician-card-flourish/README.md +63 -0
  64. package/skills/hyper-animator-codex/references/shotcraft/cards/marker-underline-title/README.md +48 -0
  65. package/skills/hyper-animator-codex/references/shotcraft/cards/montage-rhythm-moves/README.md +55 -0
  66. package/skills/hyper-animator-codex/references/shotcraft/cards/morph-from-primitive/README.md +51 -0
  67. package/skills/hyper-animator-codex/references/shotcraft/cards/neon-frame-forerun/README.md +50 -0
  68. package/skills/hyper-animator-codex/references/shotcraft/cards/neon-frame-orbit-drop/README.md +50 -0
  69. package/skills/hyper-animator-codex/references/shotcraft/cards/neon-triple-marquee/README.md +55 -0
  70. package/skills/hyper-animator-codex/references/shotcraft/cards/odometer-digit-roll/README.md +54 -0
  71. package/skills/hyper-animator-codex/references/shotcraft/cards/outro-group-photo-launch/README.md +39 -0
  72. package/skills/hyper-animator-codex/references/shotcraft/cards/overhead-camera-moves/README.md +50 -0
  73. package/skills/hyper-animator-codex/references/shotcraft/cards/page-turn-transitions/README.md +48 -0
  74. package/skills/hyper-animator-codex/references/shotcraft/cards/page-waterfall-wall/README.md +52 -0
  75. package/skills/hyper-animator-codex/references/shotcraft/cards/panel-grid-moves/README.md +52 -0
  76. package/skills/hyper-animator-codex/references/shotcraft/cards/paper-craft-moves/README.md +46 -0
  77. package/skills/hyper-animator-codex/references/shotcraft/cards/paper-plane-messenger/README.md +62 -0
  78. package/skills/hyper-animator-codex/references/shotcraft/cards/paper-title-card/README.md +36 -0
  79. package/skills/hyper-animator-codex/references/shotcraft/cards/particle-celebrate-hits/README.md +42 -0
  80. package/skills/hyper-animator-codex/references/shotcraft/cards/particle-sand-fill/README.md +39 -0
  81. package/skills/hyper-animator-codex/references/shotcraft/cards/pill-slot-cycle/README.md +57 -0
  82. package/skills/hyper-animator-codex/references/shotcraft/cards/print-texture-transitions/README.md +40 -0
  83. package/skills/hyper-animator-codex/references/shotcraft/cards/rhythm-interrupt-moves/README.md +44 -0
  84. package/skills/hyper-animator-codex/references/shotcraft/cards/riso-print-hits/README.md +54 -0
  85. package/skills/hyper-animator-codex/references/shotcraft/cards/row-embed/README.md +36 -0
  86. package/skills/hyper-animator-codex/references/shotcraft/cards/runway-ground-skim/README.md +52 -0
  87. package/skills/hyper-animator-codex/references/shotcraft/cards/sakuga-timing-shift/README.md +50 -0
  88. package/skills/hyper-animator-codex/references/shotcraft/cards/scene-locked-title/README.md +43 -0
  89. package/skills/hyper-animator-codex/references/shotcraft/cards/scroll-brake-moves/README.md +45 -0
  90. package/skills/hyper-animator-codex/references/shotcraft/cards/segmented-thumb-hero/README.md +57 -0
  91. package/skills/hyper-animator-codex/references/shotcraft/cards/shot-transitions/README.md +60 -0
  92. package/skills/hyper-animator-codex/references/shotcraft/cards/skeleton-reveal/README.md +54 -0
  93. package/skills/hyper-animator-codex/references/shotcraft/cards/slam-entrance-moves/README.md +53 -0
  94. package/skills/hyper-animator-codex/references/shotcraft/cards/smear-multiples/README.md +49 -0
  95. package/skills/hyper-animator-codex/references/shotcraft/cards/space-camera-moves/README.md +53 -0
  96. package/skills/hyper-animator-codex/references/shotcraft/cards/spectrum-morph-ui/README.md +50 -0
  97. package/skills/hyper-animator-codex/references/shotcraft/cards/speed-ramp-freeze/README.md +42 -0
  98. package/skills/hyper-animator-codex/references/shotcraft/cards/split-flap-title/README.md +52 -0
  99. package/skills/hyper-animator-codex/references/shotcraft/cards/spotlight-hero-card/README.md +39 -0
  100. package/skills/hyper-animator-codex/references/shotcraft/cards/spotlight-sweep-moves/README.md +51 -0
  101. package/skills/hyper-animator-codex/references/shotcraft/cards/steep-tilt-glide/README.md +53 -0
  102. package/skills/hyper-animator-codex/references/shotcraft/cards/stroke-segment-build/README.md +43 -0
  103. package/skills/hyper-animator-codex/references/shotcraft/cards/tear-streak-transitions/README.md +43 -0
  104. package/skills/hyper-animator-codex/references/shotcraft/cards/tension-camera-moves/README.md +55 -0
  105. package/skills/hyper-animator-codex/references/shotcraft/cards/text-as-mask/README.md +50 -0
  106. package/skills/hyper-animator-codex/references/shotcraft/cards/text-column-converge/README.md +55 -0
  107. package/skills/hyper-animator-codex/references/shotcraft/cards/theme-switch-moves/README.md +44 -0
  108. package/skills/hyper-animator-codex/references/shotcraft/cards/timeline-travel/README.md +43 -0
  109. package/skills/hyper-animator-codex/references/shotcraft/cards/title-demote-to-label/README.md +58 -0
  110. package/skills/hyper-animator-codex/references/shotcraft/cards/trailer-grammar-moves/README.md +51 -0
  111. package/skills/hyper-animator-codex/references/shotcraft/cards/transition-hidden-cut/README.md +52 -0
  112. package/skills/hyper-animator-codex/references/shotcraft/cards/transition-travel/README.md +48 -0
  113. package/skills/hyper-animator-codex/references/shotcraft/cards/type-and-filter/README.md +37 -0
  114. package/skills/hyper-animator-codex/references/shotcraft/cards/type-assembly-moves/README.md +50 -0
  115. package/skills/hyper-animator-codex/references/shotcraft/cards/type-entrance-moves/README.md +46 -0
  116. package/skills/hyper-animator-codex/references/shotcraft/cards/type-rhythm-sync/README.md +47 -0
  117. package/skills/hyper-animator-codex/references/shotcraft/cards/typewriter-moves/README.md +50 -0
  118. package/skills/hyper-animator-codex/references/shotcraft/cards/ui-strip-away-outro/README.md +63 -0
  119. package/skills/hyper-animator-codex/references/shotcraft/cards/ui-to-brand-morph/README.md +52 -0
  120. package/skills/hyper-animator-codex/references/shotcraft/cards/voice-waveform-live/README.md +52 -0
  121. package/skills/hyper-animator-codex/references/shotcraft/cards/wall-reveal-moves/README.md +53 -0
  122. package/skills/hyper-animator-codex/references/shotcraft/cards/wipe-transitions/README.md +47 -0
  123. package/skills/hyper-animator-codex/references/shotcraft/cards/word-relay-filmstrip/README.md +50 -0
  124. package/skills/hyper-animator-codex/references/shotcraft/catalog.json +3946 -0
  125. package/skills/hyper-animator-codex/references/shotcraft/references/aesthetic-rules.md +157 -0
  126. package/skills/hyper-animator-codex/references/shotcraft/references/final-review.md +107 -0
  127. package/skills/hyper-animator-codex/references/shotcraft/references/guided-free-creation.md +197 -0
  128. package/skills/hyper-animator-codex/references/shotcraft/references/music-beat-sync.md +125 -0
  129. package/skills/hyper-animator-codex/references/shotcraft/references/pipeline.md +357 -0
  130. package/skills/hyper-animator-codex/references/shotcraft/references/sound-design.md +126 -0
  131. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/Caption.tsx +50 -0
  132. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/DigitRoll.tsx +45 -0
  133. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/FlashCut.tsx +20 -0
  134. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/FlatPanel.tsx +65 -0
  135. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/PageCam.tsx +151 -0
  136. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/VerticalTicker.tsx +129 -0
  137. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/camera.tsx +75 -0
  138. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/motion.ts +40 -0
  139. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/rand.ts +11 -0
  140. package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/shake.ts +10 -0
  141. package/skills/hyper-animator-codex/references/shotcraft/source/demos/_fixtures/Fixtures.tsx +83 -0
  142. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ai-stream-response/StreamResponse.tsx +146 -0
  143. package/skills/hyper-animator-codex/references/shotcraft/source/demos/autolayout-gap-dial/AutolayoutGapDial.tsx +174 -0
  144. package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-cut-moves/BeatCutAccelerando.tsx +77 -0
  145. package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-cut-moves/PaparazziFlash.tsx +115 -0
  146. package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +98 -0
  147. package/skills/hyper-animator-codex/references/shotcraft/source/demos/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +99 -0
  148. package/skills/hyper-animator-codex/references/shotcraft/source/demos/bottom-push-stack-wipe/BottomPushStackWipe.tsx +79 -0
  149. package/skills/hyper-animator-codex/references/shotcraft/source/demos/brand-frame-snap/BrandFrameSnap.tsx +110 -0
  150. package/skills/hyper-animator-codex/references/shotcraft/source/demos/bubble-swarm-takeover/BubbleSwarmTakeover.tsx +189 -0
  151. package/skills/hyper-animator-codex/references/shotcraft/source/demos/canvas-materialize-moves/DiagramCascadeBuild.tsx +172 -0
  152. package/skills/hyper-animator-codex/references/shotcraft/source/demos/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +254 -0
  153. package/skills/hyper-animator-codex/references/shotcraft/source/demos/card-flip-reveal/CardFlipReveal.tsx +139 -0
  154. package/skills/hyper-animator-codex/references/shotcraft/source/demos/card-flock-tumble/CardFlockTumble.tsx +382 -0
  155. package/skills/hyper-animator-codex/references/shotcraft/source/demos/cel-flash-stomp/CelFlashStomp.tsx +111 -0
  156. package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/AxisRescaleShockV2.tsx +282 -0
  157. package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/OscilloscopeStreamV2.tsx +227 -0
  158. package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx +248 -0
  159. package/skills/hyper-animator-codex/references/shotcraft/source/demos/circle-match-iris/CircleMatchIris.tsx +124 -0
  160. package/skills/hyper-animator-codex/references/shotcraft/source/demos/cloner-depth-echo/ClonerDepthEcho.tsx +90 -0
  161. package/skills/hyper-animator-codex/references/shotcraft/source/demos/collab-cursor-moves/CursorCastEnsemble.tsx +136 -0
  162. package/skills/hyper-animator-codex/references/shotcraft/source/demos/collab-cursor-moves/CursorDialogueDuet.tsx +145 -0
  163. package/skills/hyper-animator-codex/references/shotcraft/source/demos/color-block-step-wipe/ColorBlockStepWipe.tsx +157 -0
  164. package/skills/hyper-animator-codex/references/shotcraft/source/demos/command-palette-summon/CommandPaletteSummon.tsx +173 -0
  165. package/skills/hyper-animator-codex/references/shotcraft/source/demos/crane-rise-reveal/CraneRiseReveal.tsx +91 -0
  166. package/skills/hyper-animator-codex/references/shotcraft/source/demos/crash-zoom-punch/CrashImpactReal.tsx +63 -0
  167. package/skills/hyper-animator-codex/references/shotcraft/source/demos/crash-zoom-punch/CrashZoomReal.tsx +60 -0
  168. package/skills/hyper-animator-codex/references/shotcraft/source/demos/dataviz-landscape-open/DatavizLandscapeOpen.tsx +401 -0
  169. package/skills/hyper-animator-codex/references/shotcraft/source/demos/depth-layer-moves/DollyZoomReal.tsx +55 -0
  170. package/skills/hyper-animator-codex/references/shotcraft/source/demos/depth-layer-moves/MultiplaneReal.tsx +45 -0
  171. package/skills/hyper-animator-codex/references/shotcraft/source/demos/draw-svg-trace/DrawSvgTrace.tsx +199 -0
  172. package/skills/hyper-animator-codex/references/shotcraft/source/demos/edit-hook-moves/LogoStingButton.tsx +106 -0
  173. package/skills/hyper-animator-codex/references/shotcraft/source/demos/element-body-moves/AxialStretch.tsx +112 -0
  174. package/skills/hyper-animator-codex/references/shotcraft/source/demos/element-body-moves/ContactShadowLift.tsx +117 -0
  175. package/skills/hyper-animator-codex/references/shotcraft/source/demos/fui-hud-moves/LineUnfoldPanel.tsx +125 -0
  176. package/skills/hyper-animator-codex/references/shotcraft/source/demos/fui-hud-moves/ReticleLockOn.tsx +139 -0
  177. package/skills/hyper-animator-codex/references/shotcraft/source/demos/gauge-readout-moves/NeedleSweepSelftest.tsx +146 -0
  178. package/skills/hyper-animator-codex/references/shotcraft/source/demos/gauge-readout-moves/TapeScrollFixedPointer.tsx +120 -0
  179. package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/FlylineArc.tsx +158 -0
  180. package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/GlowOrbAmbient.tsx +131 -0
  181. package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/OrbFlylineRelay.tsx +268 -0
  182. package/skills/hyper-animator-codex/references/shotcraft/source/demos/gradient-word-sweep/GradientWordSweep.tsx +307 -0
  183. package/skills/hyper-animator-codex/references/shotcraft/source/demos/graze-face-tour/GrazeFaceTour.tsx +469 -0
  184. package/skills/hyper-animator-codex/references/shotcraft/source/demos/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +166 -0
  185. package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-field-colorize/IconFieldColorize.tsx +93 -0
  186. package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-performance-moves/AttentionBounce.tsx +193 -0
  187. package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-performance-moves/PopBurstConfirm.tsx +162 -0
  188. package/skills/hyper-animator-codex/references/shotcraft/source/demos/impact-feedback/AnimeImpact.tsx +149 -0
  189. package/skills/hyper-animator-codex/references/shotcraft/source/demos/impact-feedback/HitCounter.tsx +147 -0
  190. package/skills/hyper-animator-codex/references/shotcraft/source/demos/input-trigger-moves/CursorPerformancePunchIn.tsx +154 -0
  191. package/skills/hyper-animator-codex/references/shotcraft/source/demos/input-trigger-moves/KeycapSmashCut.tsx +217 -0
  192. package/skills/hyper-animator-codex/references/shotcraft/source/demos/integration-hub-map/IntegrationHubMap.tsx +554 -0
  193. package/skills/hyper-animator-codex/references/shotcraft/source/demos/letterspace-materialize/LetterspaceMaterialize.tsx +85 -0
  194. package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/HalationBloom.tsx +139 -0
  195. package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/SheenSweepRetry.tsx +85 -0
  196. package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/SpotlightSweepReveal.tsx +102 -0
  197. package/skills/hyper-animator-codex/references/shotcraft/source/demos/line-boil/LineBoil.tsx +140 -0
  198. package/skills/hyper-animator-codex/references/shotcraft/source/demos/line-carry-transition/LineCarryTransition.tsx +151 -0
  199. package/skills/hyper-animator-codex/references/shotcraft/source/demos/magician-card-flourish/MagicianCardFlourish.tsx +294 -0
  200. package/skills/hyper-animator-codex/references/shotcraft/source/demos/marker-underline-title/MarkerUnderlineTitle.tsx +87 -0
  201. package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/DominoCascade.tsx +125 -0
  202. package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/DropBlackoutSlam.tsx +135 -0
  203. package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/WrightTripleCut.tsx +175 -0
  204. package/skills/hyper-animator-codex/references/shotcraft/source/demos/morph-from-primitive/MorphFromPrimitive.tsx +190 -0
  205. package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-frame-forerun/NeonFrameForerun.tsx +279 -0
  206. package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +273 -0
  207. package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-triple-marquee/NeonTripleMarquee.tsx +111 -0
  208. package/skills/hyper-animator-codex/references/shotcraft/source/demos/odometer-digit-roll/OdometerDigitRoll.tsx +178 -0
  209. package/skills/hyper-animator-codex/references/shotcraft/source/demos/overhead-camera-moves/OverheadTabletopDrop.tsx +129 -0
  210. package/skills/hyper-animator-codex/references/shotcraft/source/demos/overhead-camera-moves/TiltReveal.tsx +55 -0
  211. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-turn-transitions/BarnDoorSplit.tsx +138 -0
  212. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-turn-transitions/CubeRotate.tsx +114 -0
  213. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-waterfall-wall/PageWaterfallWall.tsx +76 -0
  214. package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-waterfall-wall/VerticalTicker.tsx +129 -0
  215. package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/ComicPanelSplit.tsx +171 -0
  216. package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/FlipGridReflow.tsx +121 -0
  217. package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/GridFlashMosaic.tsx +182 -0
  218. package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-craft-moves/MaskingTapeSlap.tsx +163 -0
  219. package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-craft-moves/PopupBookRise.tsx +134 -0
  220. package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-plane-messenger/PaperPlaneMessenger.tsx +183 -0
  221. package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-celebrate-hits/ConfettiCrossfire.tsx +115 -0
  222. package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-celebrate-hits/CounterTickSparks.tsx +103 -0
  223. package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-sand-fill/ParticleSandFill.tsx +119 -0
  224. package/skills/hyper-animator-codex/references/shotcraft/source/demos/pill-slot-cycle/PillSlotCycle.tsx +220 -0
  225. package/skills/hyper-animator-codex/references/shotcraft/source/demos/print-texture-transitions/InkBleedReveal.tsx +81 -0
  226. package/skills/hyper-animator-codex/references/shotcraft/source/demos/rhythm-interrupt-moves/JumpCutPunchIn.tsx +72 -0
  227. package/skills/hyper-animator-codex/references/shotcraft/source/demos/rhythm-interrupt-moves/StrobeBlackFrames.tsx +99 -0
  228. package/skills/hyper-animator-codex/references/shotcraft/source/demos/riso-print-hits/RisoBeatPump.tsx +155 -0
  229. package/skills/hyper-animator-codex/references/shotcraft/source/demos/riso-print-hits/RisoMisregistrationHit.tsx +120 -0
  230. package/skills/hyper-animator-codex/references/shotcraft/source/demos/runway-ground-skim/RunwayGroundSkim.tsx +258 -0
  231. package/skills/hyper-animator-codex/references/shotcraft/source/demos/sakuga-timing-shift/SakugaTimingShift.tsx +178 -0
  232. package/skills/hyper-animator-codex/references/shotcraft/source/demos/scene-locked-title/SceneLockedTitle.tsx +98 -0
  233. package/skills/hyper-animator-codex/references/shotcraft/source/demos/scroll-brake-moves/BrakeReticleLock.tsx +171 -0
  234. package/skills/hyper-animator-codex/references/shotcraft/source/demos/scroll-brake-moves/ChangelogScrollBrake.tsx +117 -0
  235. package/skills/hyper-animator-codex/references/shotcraft/source/demos/segmented-thumb-hero/SegmentedThumbHero.tsx +213 -0
  236. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/MaskWipeReal.tsx +67 -0
  237. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/PortalWipeV2.tsx +128 -0
  238. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/WhipBrakeReal.tsx +60 -0
  239. package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/WhipPanReal.tsx +45 -0
  240. package/skills/hyper-animator-codex/references/shotcraft/source/demos/skeleton-reveal/SkeletonReveal.tsx +283 -0
  241. package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/ImpactBurstKit.tsx +185 -0
  242. package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/KanadaPerspectiveSnap.tsx +91 -0
  243. package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/ScoreSlam.tsx +225 -0
  244. package/skills/hyper-animator-codex/references/shotcraft/source/demos/smear-multiples/SmearMultiples.tsx +88 -0
  245. package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/DroneDiveLanding.tsx +91 -0
  246. package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/ExplodedView.tsx +178 -0
  247. package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/SnorricamLock.tsx +130 -0
  248. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spectrum-morph-ui/SpectrumMorphUi.tsx +129 -0
  249. package/skills/hyper-animator-codex/references/shotcraft/source/demos/speed-ramp-freeze/FreezeAnnotateReal.tsx +70 -0
  250. package/skills/hyper-animator-codex/references/shotcraft/source/demos/speed-ramp-freeze/SpeedRampReal.tsx +58 -0
  251. package/skills/hyper-animator-codex/references/shotcraft/source/demos/split-flap-title/SplitFlapFlip.tsx +189 -0
  252. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/CornerSpotlightReveal.tsx +121 -0
  253. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +183 -0
  254. package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/SlideSpotlightPan.tsx +171 -0
  255. package/skills/hyper-animator-codex/references/shotcraft/source/demos/steep-tilt-glide/SteepTiltGlide.tsx +315 -0
  256. package/skills/hyper-animator-codex/references/shotcraft/source/demos/stroke-segment-build/StrokeSegmentBuild.tsx +126 -0
  257. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tear-streak-transitions/GlitchDisplace.tsx +107 -0
  258. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/BulletTimeFreezeOrbit.tsx +219 -0
  259. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/DutchRollToLevel.tsx +110 -0
  260. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/PullBackIsolation.tsx +120 -0
  261. package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/SlowPushIn.tsx +96 -0
  262. package/skills/hyper-animator-codex/references/shotcraft/source/demos/text-as-mask/TextAsMask.tsx +94 -0
  263. package/skills/hyper-animator-codex/references/shotcraft/source/demos/text-column-converge/TextColumnConverge.tsx +122 -0
  264. package/skills/hyper-animator-codex/references/shotcraft/source/demos/theme-switch-moves/PaletteThemeRipple.tsx +207 -0
  265. package/skills/hyper-animator-codex/references/shotcraft/source/demos/theme-switch-moves/ThemeSweepToggle.tsx +123 -0
  266. package/skills/hyper-animator-codex/references/shotcraft/source/demos/timeline-travel/TimelineTravel.tsx +123 -0
  267. package/skills/hyper-animator-codex/references/shotcraft/source/demos/title-demote-to-label/TitleDemoteToLabel.tsx +174 -0
  268. package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/CardFootageCadence.tsx +118 -0
  269. package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/SmashCut.tsx +105 -0
  270. package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/TrailerBumper.tsx +103 -0
  271. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/InvisibleCut.tsx +93 -0
  272. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/LightLeakBurn.tsx +122 -0
  273. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/VersusSlam.tsx +104 -0
  274. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-travel/LetterformZoom.tsx +141 -0
  275. package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-travel/SharedElementMorph.tsx +101 -0
  276. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/LetterformDriftAssembly.tsx +107 -0
  277. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/SplitTextStagger.tsx +101 -0
  278. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/TextOnPath.tsx +92 -0
  279. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/TrackingExpandReveal.tsx +109 -0
  280. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-entrance-moves/LetterDropPhysics.tsx +100 -0
  281. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-entrance-moves/ScrambleDecode.tsx +90 -0
  282. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-rhythm-sync/FontWeightPump.tsx +124 -0
  283. package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-rhythm-sync/KaraokeFillSync.tsx +93 -0
  284. package/skills/hyper-animator-codex/references/shotcraft/source/demos/typewriter-moves/TerminalTypewriter.tsx +122 -0
  285. package/skills/hyper-animator-codex/references/shotcraft/source/demos/typewriter-moves/TypewriterErrorRetype.tsx +109 -0
  286. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-strip-away-outro/UiStripAwayOutro.tsx +218 -0
  287. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-to-brand-morph/IconFlipBloomLogo.tsx +199 -0
  288. package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-to-brand-morph/InputMorphsIntoLogo.tsx +215 -0
  289. package/skills/hyper-animator-codex/references/shotcraft/source/demos/voice-waveform-live/VoiceWaveformLive.tsx +171 -0
  290. package/skills/hyper-animator-codex/references/shotcraft/source/demos/wall-reveal-moves/BentoLightUp.tsx +135 -0
  291. package/skills/hyper-animator-codex/references/shotcraft/source/demos/wipe-transitions/BlindsSlice.tsx +107 -0
  292. package/skills/hyper-animator-codex/references/shotcraft/source/demos/wipe-transitions/ClockWipe.tsx +83 -0
  293. package/skills/hyper-animator-codex/references/shotcraft/source/demos/word-relay-filmstrip/WordRelayFilmstrip.tsx +300 -0
  294. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/Root.tsx +15 -0
  295. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/Caption.tsx +49 -0
  296. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/DigitRoll.tsx +44 -0
  297. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/FlashCut.tsx +19 -0
  298. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/Main.tsx +163 -0
  299. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/PaperTitleCard.tsx +89 -0
  300. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/PageCam.tsx +145 -0
  301. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneDetail.tsx +146 -0
  302. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneFlyIn.tsx +447 -0
  303. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneOpen.tsx +532 -0
  304. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneOutroLive.tsx +394 -0
  305. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/ScenePapers.tsx +185 -0
  306. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneWbr.tsx +299 -0
  307. package/skills/hyper-animator-codex/references/shotcraft/source/template/src/index.ts +4 -0
  308. package/skills/hyper-animator-codex/references/shotcraft/source-notes.md +10 -0
  309. package/skills/hyper-animator-codex/scripts/generate_minimax_music.mjs +27 -10
  310. package/skills/hyper-animator-codex/scripts/generate_minimax_tts.mjs +142 -13
  311. package/skills/hyper-animator-codex/scripts/generate_subtitles.mjs +42 -3
  312. package/skills/hyper-animator-codex/scripts/minimax_runtime_config.mjs +3 -3
  313. package/skills/hyper-animator-codex/scripts/query_shotcraft.mjs +140 -0
  314. package/skills/hyper-animator-codex/scripts/validate_hyperframes_html.py +22 -0
  315. package/skills/hyper-animator-codex/scripts/validate_provider_policy.mjs +108 -0
  316. package/skills/hyper-animator-codex/scripts/validate_shot_plan.mjs +193 -0
  317. package/skills/hyper-animator-codex/vendor/music-beat-detector/beat_detector/analyzer.py +3 -1
  318. package/skills/hyper-animator-codex/vendor/music-beat-detector/beat_detector/beat.py +37 -1
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: spectrum-morph-ui
3
+ 一句话: 频谱化 UI——标题下划线裂成一排竖条按频谱跳动两小节,再收拢还原成直线;音乐可视化长在 UI 上
4
+ 适用: 有音轨片子的声画同步高光段(BGM 副歌起/鼓点密集段);标题字卡、章节页的下划线/分隔线构件
5
+ 时长: ~4.7s(裂开 8f + 跳动 64f + 收拢 12f + 静止 39f)
6
+ 能量: 中
7
+ ---
8
+
9
+ ## 意图
10
+ 声画同步库内已有 type-rhythm-sync A(字重脉冲)——那是"文字自己动";
11
+ 本卡是"UI 构件变成均衡器":下划线这个最不起眼的构件被音乐借用两小节,
12
+ 裂成 28 根竖条跳出频谱,然后**收拢还原、完璧归赵**。借用-归还结构是
13
+ 全部优雅所在——观众先认出"这是下划线",再看它变成别的东西,最后
14
+ 看它变回来;若一开始就是频谱条,只是又一个音乐可视化。跳完必须还原
15
+ 成那条 8px 直线,一像素不差。
16
+
17
+ ## 动效核心
18
+ - 28 根条底边锁在原下划线 y 上**只向上生长**,收拢结束条宽 + gap
19
+ 恰好拼回 720px 整线(gap 0↔6px 同步过渡,gap<1 时条宽 +0.5px 防细缝)
20
+ - 非跳动段条件挂载回整条直线(摘罩式)——像素级静止靠"根本不渲染
21
+ 条组",不是条高归零
22
+ - demo 为伪 FFT:|sin(i·0.7+f·0.31)| × 每 4 帧换挡 seed hash 抖动 ×
23
+ 低频高/高频矮包络 × ramp 幅度包络,帧确定无随机
24
+ - **实战换真 FFT**:@remotion/media-utils 的 visualizeAudio() 取
25
+ 频谱映射条高,伪 FFT 只是灰阶占位的节拍替身
26
+
27
+ ## 参数表
28
+ | 参数 | 典型值 | 调节手感 |
29
+ |------|--------|----------|
30
+ | 条数/条宽 | 28 根、gap 6px 时 ≈20px 宽 | >40 根读作噪声;<16 根读作柱状图 |
31
+ | 峰值幅度 | AMP=92,实测峰值 75–85px | spec 62 实测只有 ~55px 不够响,已加码 1.5×(可感性判例) |
32
+ | 包络 | 左高右矮(低频高/高频矮) | 均匀高度像栅栏不像频谱 |
33
+ | 换挡节拍 | seed 每 4 帧换挡 | 逐帧换读作电噪;8f 以上读作慢动作 |
34
+ | 时间轴 | 裂开 8f out-cubic / 跳动 64f(两小节)/ 收拢 12f | 跳动 <1 小节读作故障闪了一下 |
35
+ | 收尾 | 收线后真静止 ≥39f,像素级 diff 为零 | 归还之后再动一下,借用结构就毁了 |
36
+
37
+ ## 已知坑
38
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
39
+ 首次实战须以真实素材回验
40
+ - **声音强依赖**:跳动段必须真的踩在音乐上——无音轨的频谱跳动读作
41
+ UI 故障;实战必须 visualizeAudio() 对齐 BGM,伪 FFT 不许上片
42
+ - 全片 ≤1 次,且只借用一个构件——标题下划线在跳、卡片分隔线也在跳,
43
+ 均衡器就成了壁纸(P4)
44
+ - 与 type-rhythm-sync 同为声画同步族,同一段落二选一——文字在脉冲、
45
+ 下划线在跳频谱,两个声画主角互相拆台
46
+ - 收拢帧后的静止段是"归还仪式"的一部分,从重给(≥35f),别急着切
47
+
48
+ ## 参考实现
49
+ demos/spectrum-morph-ui/
50
+ (SpectrumMorphUi.tsx)
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: speed-ramp-freeze
3
+ 一句话: 帧号非线性 remap 的两款节奏手法——变速(快→0.2x 凝视→快)与定格标注(流动→定格圈注→解冻)
4
+ 适用: 卡片流/长横移中把一个重点"放慢/停下给人看";教学解说语境用定格标注
5
+ 时长: 变速全程 4–5s(慢速窗 ≥40f);定格标注全程 4–5s(定格段 ≥45f)
6
+ 能量: 中高(速度反差本身即energy beat)
7
+ ---
8
+
9
+ ## 意图
10
+ 匀速流读作 PPT(R2),全程快流观众抓不住重点(R3)。变速在一条
11
+ 运动里制造"冲刺-凝视-冲刺";定格标注更进一步——干脆停下来,
12
+ 马克笔圈出重点再走。两款同一技术根(帧号 remap),语义不同:
13
+ 变速是"路过时多看一眼",定格是"停课划重点"。
14
+
15
+ ## 动效核心
16
+ - 源动画匀速,输出帧对源帧做非线性 remap:
17
+ `src = interpolate(frame, [0,40,85,135], [0,88,97,207])`(斜率即速率)
18
+ - 变速款:快段斜率 ≥2、慢窗斜率 ≈0.2(≥10 倍反差才可感);
19
+ **blur 联动速率开关**——快段包 CameraMotionBlur、慢窗裸渲,
20
+ "快糊-慢清"反差是手法成立的一半
21
+ - 定格款:定格段斜率 =0(瞬时切换,无缓入——定格要干脆);
22
+ 定格期强调色马克笔 SVG 椭圆 8f 描边(stroke-dashoffset)圈住目标 +
23
+ 箭头 6f 点题,feTurbulence(scale≈7)给手绘抖动;解冻段斜率 >1
24
+ 补偿时长,圈注 8f 淡出
25
+ - 目标卡用高清纹理并对位屏中(凝视/圈注对象必须锐利、居中)
26
+
27
+ ## 参数表
28
+ | 参数 | 典型值 | 调节手感 |
29
+ |------|--------|----------|
30
+ | 慢窗/定格时长 | ≥40f / ≥45f | 短了凝视不成立(R3 宁慢勿快) |
31
+ | 快慢斜率反差 | ≥10 倍 | 反差不足读不出"慢下来了" |
32
+ | 圈注描边 | 8f 划完 + 抖动 scale 7 | 太慢像加载动画;无抖动像机械标注 |
33
+
34
+ ## 已知坑
35
+ - 变速段 SFX 钉帧跟**输出帧**不跟源帧(画面动作在输出时间轴上发生);
36
+ 拟音槽位:定格款配马克笔沙沙声(S4),本卡转正时未配、实战补
37
+ - 定格标注一支 30s 片 ≤2 次(同 D 式克制原则)
38
+ - 参数经占位素材调校转正,非实战定稿,首次实战后回验
39
+
40
+ ## 参考实现
41
+ demos/speed-ramp-freeze/
42
+ (FreezeAnnotateReal.tsx / SpeedRampReal.tsx)
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: split-flap-title
3
+ 一句话: 机场翻牌屏字标题——每字符上下两半机械翻牌格,翻过 2 个乱码咔哒停在目标字,左→右级联成波
4
+ 适用: 开场/章节大标题;倒计时、发布日期、数据播报类文案;需要"机械宣告感"的一拍
5
+ 时长: 约 4.7s(140f:≥20f 乱码静止建立 + 级联翻牌 + ≥15f 停定静止)
6
+ 能量: 中(持续的机械动感,非瞬时冲击)
7
+ ---
8
+
9
+ ## 意图
10
+ 文字三式的第三式:压印(paper-title-card)是纸上落墨的"低语",打字机
11
+ (document-typewriter-reveal)是文档被人写出来的"叙述",翻牌是车站大屏的
12
+ "播报"——带机械宣告腔。选翻牌的语境:倒计时/发车感(版本发布、截止日)、
13
+ 数据播报感(指标揭晓)、或想给标题一层复古机械质感。它天然是等宽深底
14
+ 格子,在库内纸墨审美里读作"纸面上摆了一块机械显示屏"——异色块本身
15
+ 就是看点,背景产品画面压暗降饱和给它让位。
16
+
17
+ ## 动效核心
18
+ - 每字符一个深底翻牌格(上下两半 overflow hidden + 中缝铰链线),字符
19
+ 序列固定为 2 个乱码 → 1 个乱码 → 目标字(首态乱码,建立段可见)
20
+ - 单次翻牌 5f 两段式:前半旧字上半叶 rotateX 0→-90 掉落(Easing.in
21
+ 重力感 + brightness 变暗到 0.55),后半新字下半叶 90→0 拍下(回亮)
22
+ - 每格翻 3 次;字符间 stagger 4f,左→右级联成波
23
+ - 停定咔哒:整格 6px 下沉回弹(下沉→过冲 -1.5px→归零)
24
+ - 节拍:开头 ≥20f 整排乱码静止建立,结尾全部停定后 ≥15f 静止收束
25
+ - 乱码用 seed 正弦哈希(sin(i·127.3)·43758 取小数),禁 Math.random
26
+
27
+ ## 参数表
28
+ | 参数 | 典型值 | 调节手感 |
29
+ |------|--------|----------|
30
+ | 单次翻牌 | 5f,p 走 Easing.in(quad);<0.5 旧字上半叶 0→-90 掉落,≥0.5 新字下半叶 90→0 拍下 | Easing.in 是重力感来源——越掉越快才像机械叶片;匀速读作电子屏假翻 |
31
+ | 翻牌次数 | 每格 3 次(2 乱码中间态 + 1 落定) | 少于 2 次读不出"翻找"过程;多于 4 次拖节奏且乱码抢戏 |
32
+ | 级联 | stagger 4f 左→右;10 字符约 36f 波峰扫完 | 4f 是波浪感甜点——太密整排齐翻没有波,太疏尾部字符等太久 |
33
+ | 停定咔哒 | 落定后 local 15→22f:translateY 0→6→-1.5→0,Easing.out(quad) | 6px 是可感下限(4px 无感判例);这一下就是"咔哒"的画面体,删了只剩滑动 |
34
+ | 明暗 | 掉落叶 brightness 1→0.55,拍下叶 0.55→1 | 明暗差是叶片"转过铰链"的立体感来源,比 rotateX 本身更被肉眼读到 |
35
+ | 翻牌格 | 118×156,perspective 420,圆角 10,中缝铰链线 4px #141412 | 铰链线压住翻转轴穿帮;perspective 太大叶片透视变形夸张 |
36
+ | 配色字体 | 格底 #262624 / 字 #f4f4f2,Helvetica 800 100px;空格占 52px、格间 gap 12 | 深底浅字是翻牌屏的身份证;等宽格子布局,别用比例字体挤格 |
37
+ | 节拍 | 建立 0–21f 静止 → 22f 起级联 → 全停后静止 ≥15f | 建立段让观众先认出"这是块翻牌屏",直接开翻读作故障闪烁 |
38
+
39
+ ## 已知坑
40
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
41
+ 首次实战须以真实素材回验
42
+ - 声音强依赖:每格停定的机械拍打声是效果的一半,实战必须配——级联
43
+ 停定天然是一串节奏点,assets/audio 现有 typewriter.mp3 / click-camera.mp3
44
+ 可起步,配法纪律见 sound-design.md(同类元素同音,拟音与动作等长)
45
+ - 下沉回弹 6px 是可感下限:肉眼看不出就照可感性判例加大幅度,别调
46
+ 曲线不调幅度
47
+ - 一支片翻牌字 ≤1 次:机械宣告腔太抢,重复即贬值(P4 手法去重精神);
48
+ 与压印/打字机同片混用时留给最重的那句标题
49
+
50
+ ## 参考实现
51
+ demos/split-flap-title/
52
+ (SplitFlapFlip.tsx)
@@ -0,0 +1,39 @@
1
+ ---
2
+ name: spotlight-hero-card
3
+ 一句话: 聚光灯扫过页面锁定一张卡,斜 45° 推进后卡片弹起悬浮、光束沿轮廓两圈、贴回原位
4
+ 适用: "单一主角"式产品开场;把一个核心对象(卡片/条目/模块)立成全片主角
5
+ 时长: 约 4.6s(82–220f)
6
+ 能量: 中(质感最高的一镜,节奏慢而稳)
7
+ ---
8
+
9
+ ## 意图
10
+ 开场只讲一件事:这一张卡就是产品的原子单位。聚光灯替观众做视线引导,弹起悬浮给它体积和重量,轮廓光束是"扫描/检视"的隐喻,最后贴回原位表示它属于这个页面。
11
+
12
+ ## 动效核心
13
+ - 游走聚光灯经几个中间站后锁定卡心,光池收拢 + 锁定瞬间脉冲,外部 vignette 压暗
14
+ - 相机从全页正视推进到斜侧特写(左侧机位主导),焦点略偏让卡落在画面偏右
15
+ - 卡片 rise(带过冲)→ 悬停 sin bob → reseat(落地微压)
16
+ - SVG rounded-rect 轮廓光束跑两圈:第一圈快而亮、第二圈慢而弱
17
+ - 卡起飞后原位铺页面底色补丁 + 强调色(模板片为琥珀)呼吸描边,落地瞬间增亮消失
18
+ - 可选加配 3D 悬空注记(hover-3d-annotation 手法):悬停期在卡左侧浮现大衬线两行注记(字号 37、宽 230px),translateZ 92 + sin 3px bob(周期 44f,与卡 40f 相近但不同步——"共感"而非镜像),关键词背后 12f 长出马克笔荧光条 oklch(88% 0.095 85),向页面投椭圆软影;注记必须活在同一 3D 空间、同一台相机透视(C3)——第一版平面叠字被否决后重做(平面叠字破坏 3D 空间统一);出场早于卡片 reseat
19
+
20
+ ## 参数表
21
+ | 参数 | 典型值 | 调节手感 |
22
+ |------|--------|----------|
23
+ | 选卡 | cards[3],中心 x 恰为 960(页面中心) | 主角卡先按"推进后构图居中"选,不是随便挑一张 |
24
+ | 相机 | 静止全页 zoom 0.78(82–114f)→ 16f 推进 zoom 2.6;rotY 34° 主导 + rotX 仅 8°,persp 1200;焦点取卡心左移 30px;reseat 触地后 cx/cy/zoom/rot 全锁死 ≥15f | 侧向水平机位读感优于俯拍("从左侧拍摄而不是从下方",Q6);收尾禁用 zoom 2.6→2.58 一类尾漂,呼吸必须是真静止(R1) |
25
+ | 聚光灯 | 4 个中间站(86→130f),光池半径 620→420→360 收拢,锁定 +6% 脉冲;vignette 0.16→0.42 | 中间站让"随机照射"可信;直奔目标读作程序化 |
26
+ | 动作弧 | rise 10f(bezier(0.2,1.25,0.3,1) 过冲)→ 悬停 54f(sin bob 振幅 4px 周期 40f,z=110px·lift)→ reseat 18f,落地 press 0.997 | 锁定→落地 ≈98f≈3.3s——质感镜头要"放慢到 3 秒"(R3),初版几乎总是偏快 |
27
+ | 轮廓光束 | lap1 142→156f(strokeWidth 5+2.5 双层)、lap2 162→182f(3.5+1.75、整体 opacity 0.62);strokeDasharray "0.14 1" 走 dashoffset | 两圈快慢有别才读作"持续扫描",一圈是眨眼;光束只给主角一次(Q4) |
28
+ | 双层影 | `0 8·lift px …, 0 46·lift px 90·lift px` 随高度生长 | 影子不随高度长,悬浮就不成立 |
29
+
30
+ ## 声音
31
+ 弹起钉 whoosh-big(模板片钉在 f127),光束扫描钉 sparkle(f141),reseat 钉 transition-snap(f204)——弹起/光效/落定各有专属音(S2、S4)。
32
+
33
+ ## 已知坑
34
+ - 开场多卡群舞撑不起第一印象(Q5)——开场曾反复推倒多次才收敛到单卡;直接从单主角+完整动作弧起稿
35
+ - 推进特写下卡上文字会糊,根因是纹理栅格化分辨率不是 DoF(Q2)——配套技法见 hires-rasterize-3d-text 卡
36
+ - 逐卡 glint 闪烁被两次否决("不需要每个卡片都闪烁一下",Q4),光效严格只给主角
37
+
38
+ ## 参考实现
39
+ template/src/aifl/live/SceneOpen.tsx
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: spotlight-sweep-moves
3
+ 一句话: 暗场聚光显影三式——A 醒睡扫过(光到即亮光走即暗)、B 贴边泛光横摇(紫光贴 UI 边缘渗入+聚光匀速右移)、C 角落匀速显影(径向聚光从角落匀速扩张点亮全屏);黑场里"光即叙事"的 UI 展示
4
+ 适用: 暗色调品牌片里逐个介绍 UI 面板/功能区;黑场开场把界面"点亮"登场;段落间光转场
5
+ 时长: 单式 3.5–4.5s;A/B 可串联成巡礼段
6
+ 能量: 中低(克制、神秘感,爆点在"亮起"瞬间)
7
+ ---
8
+
9
+ ## 意图
10
+ 黑场里观众只能看见光给看的东西——聚光既是照明也是运镜和剪辑:
11
+ 光到哪里哪里登场,光走即谢幕。三式共用"贴边紫色辉光光线"这个
12
+ 身份元素(光线贴着 UI 边框/logo/顶边走,辉光要亮要糊,是光在
13
+ "抚摸"界面而不是描边动画)。命门是**匀速**:聚光的移动/扩张
14
+ 严格 linear——缓动会让光有"意图",匀速才读作探照灯的机械扫掠
15
+ (C 式判例:linear 但半径终值过大=前 1/4 就饱和,观感照样不匀速)。
16
+
17
+ ## 动效核心
18
+ **A 醒睡扫过**(glow-wake-sleep-panel):radial 显影罩跟随光头从左
19
+ 向右匀速移动,范围外全黑;贴顶边紫色光线三层辉光(blur26 宽糊+
20
+ blur9 中层+亮芯+粉色偏移层)随扫光同步走,经过 logo 时 boxShadow
21
+ 描光、到右缘点亮竖直残光;尾段光走面板沉回黑暗——有醒有睡。
22
+ **B 贴边泛光横摇**(slide-spotlight-pan):光线锚定面板边缘(先绕
23
+ 左上角竖缘、转角后沿顶边横走),紫光晕染渗入 UI 顶部内侧(光从
24
+ 边缘渗进界面);聚光头匀速右移显影、面板同时匀速左滑=相机右摇感。
25
+ **C 角落匀速显影**(corner-spotlight-reveal):左上角径向聚光半径
26
+ 严格 linear 扩张,照到显影照不到沉黑,最终全亮(光即转场)。
27
+
28
+ ## 参数表
29
+ | 参数 | 典型值 | 调节手感 |
30
+ |------|--------|----------|
31
+ | 聚光移动/扩张 | 全程 linear、零缓动 | **匀速是命门**——全程零缓动;加 ease 读作光有主观意图 |
32
+ | C 式半径终值 | 恰好在片尾覆盖全屏(1300@1080p/100f) | 终值过大=提前饱和假匀速:亮度采样须全程平滑爬升(实测 8/46/101/…/238) |
33
+ | 贴边光线辉光 | 3–4 层(blur26+blur9+亮芯+粉偏移) | 层少读作细线描边;辉光要够亮够糊才是"光" |
34
+ | 光线锚定 | 严格贴 UI 边缘/顶边/logo | 光线脱离边缘漂浮=失去"抚摸界面"语义(A 式返工判例:定位丢失紫光跑到底边) |
35
+ | 显影罩 | radial 渐变硬边略糊(feather ~15%) | 边太硬像圆形遮罩;太糊没有"照到/照不到"的界线 |
36
+
37
+ ## 已知坑
38
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
39
+ 首次实战须以真实素材回验
40
+ - 与 light-play-moves 分工:那张是元素/文字上的
41
+ 光泽戏(sheen/辉光呼吸);本卡光是**运镜和剪辑**(显影/谢幕/转场),
42
+ 光决定观众看什么
43
+ - 三式重做判例:聚光扫过必须带贴边光线同行(v1 只有显影罩被裁
44
+ "改改再看"——裸聚光没有身份,贴边紫光才是这个手法的签名)
45
+ - 原片(clickup-30)光线转角有一瞬彩虹色散,demo 未做;实战可
46
+ 在转角帧加 1–2f 色散层提质感
47
+
48
+ ## 参考实现
49
+ demos/spotlight-sweep-moves/
50
+ (CornerSpotlightReveal.tsx / GlowWakeSleepPanel.tsx / SlideSpotlightPan.tsx)
51
+ 原片出处:clickup-30.mp4
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: steep-tilt-glide
3
+ 一句话: 固定镜头下直立页面以 60° 强透视侧立(右近左远),页面自身沿其 3D 横面方向滑移掠过镜头(物动镜不动),滑移带速度重影、文字组件悬空贴落、由暗揭亮
4
+ 适用: 长页面/多区块 UI 的炫技巡览(内容依次滑过固定机位);暗场霓虹调性;与贴面运镜卡互补的"侧掠"机位
5
+ 时长: 4s(120f)单镜;页面越宽越可拉长
6
+ 能量: 中高(透视炫技+持续运动,但节奏是匀的)
7
+ ---
8
+
9
+ ## 意图
10
+ 把页面立成一堵斜墙:镜头钉死不动,60° 强透视让右缘贴脸、左缘
11
+ 消失在灭点,页面自己沿自身平面横向滑移——内容像列车车厢一样
12
+ 依次掠过。命门是**物动镜不动**:perspective/origin/rotY 全程常数,
13
+ 唯一动的量是页面局部 translateX——镜头一动语义就变成运镜炫技,
14
+ 这里的戏是"页面在自我展示"。角度经三轮收敛为精确 60°
15
+ (-45°"不对"→-53°"再大一点"→-60°选中)。
16
+
17
+ ## 动效核心
18
+ - 镜头常数:perspective 1100、origin 30% 58%、rotateY(-60°)+
19
+ rotateZ(-2°),transformOrigin left top,全程一个数不变
20
+ - 页面:超宽面板(6200×2400@内容坐标),沿局部 X 轴 +60→-4100
21
+ 滑移,bezier(0.3,0.12,0.72,0.9)——起步柔和后近匀速,尾段斜率
22
+ 不归零(不安定停死)
23
+ - 速度重影:拖尾层=过去时刻(f-2.5/f-5)的局部位置重投影,
24
+ 透明度 ∝ 滑移速度(快时重影浓)
25
+ - 悬空贴落:页面元素 FloatWrap 悬浮 230–280px 带同形软影,随
26
+ 滑移进程错峰贴落(巡礼语法)
27
+ - 揭亮:起始面板压暗 0.7,~1.4s 揭到全亮;左缘额外渐变阴影同退
28
+
29
+ ## 参数表
30
+ | 参数 | 典型值 | 调节手感 |
31
+ |------|--------|----------|
32
+ | 倾斜角 | rotateY **-60°**(用户精确定值) | -45° 被裁"角度不对"、-53°"再大一点";>-70° 内容读不清 |
33
+ | 运动模型 | 镜头全常数、页面自移 | **命门**——镜头横移版被裁"镜头是固定的,页面本身往其3d空间的横面方向移动" |
34
+ | 滑移曲线 | 尾段斜率不归零的 bezier | 中途停死被抓(v4 返工);全 linear 少了起步呼吸 |
35
+ | 重影 | 透明度∝速度,双层 f-2.5/f-5 | 恒定重影读作重像故障 |
36
+ | 页面宽度 | ≥3 屏内容 | 太窄滑两秒就完,撑不起一镜 |
37
+ | 悬空贴落 | 错峰(巡礼语法)+ 影随高度 | 语义判例见 graze-face-tour/orbit-drop 三卡族 |
38
+
39
+ ## 已知坑
40
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
41
+ 首次实战须以真实素材回验
42
+ - 角度判例:透视角是本卡身份,实战微调范围建议 55–65°,出这个
43
+ 区间等于换手法
44
+ - 与 graze-face-tour 分工:那张镜头动(贴面游走)、页面静;本卡
45
+ 镜头静、页面动。同段落二选一
46
+ - 与 runway-ground-skim 分工:那张是俯角平躺+垂直贴落+立起;
47
+ 本卡是侧立+横向滑移,轴向正交
48
+ - 超宽页面手绘成本高;实战可用真实长截图代替(滑移逻辑不变)
49
+
50
+ ## 参考实现
51
+ demos/steep-tilt-glide/
52
+ (SteepTiltGlide.tsx)
53
+ 原片出处:clickup-30.mp4
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: stroke-segment-build
3
+ 一句话: 断笔成字——标题拆成十几段互不相连的笔画乱序逐段点亮,前 70% 不可读,末段落位瞬间语义"啪"地成立
4
+ 适用: 开场吊悬念的产品名/大数字揭晓;一支片 ≤1 次;与 type-assembly/draw-svg-trace 分工:那些是"看着字被组装/描画",本卡是"意义延迟揭晓"
5
+ 时长: 4–5s
6
+ 能量: 低起中收(悬念型,落位帧是能量点)
7
+ ---
8
+
9
+ ## 意图
10
+ 《异形》片头判例:标题不是被画出来的,是"显影"出来的——拆成离散
11
+ 笔画段乱序点亮,观众前 70% 时间只看到神秘碎段,最后几段落位的瞬间
12
+ 突然读出是什么字。"认出的那一刻"就是钩子,钩子的强度取决于
13
+ 不可读期撑多久、钥匙段压多晚。
14
+
15
+ ## 动作阶段
16
+ | 阶段 | 帧段参考 | 内容 |
17
+ |------|------|------|
18
+ | 1 暗场 | f0–10 | 空场静置 |
19
+ | 2 乱序点亮 | ~f10–105 | 每段 6f(opacity 0→1 + 沿笔画方向 12px 滑入 out cubic),段间隔 6f 错峰 |
20
+ | 3 落位脉冲 | 末段落位帧 | 整字 scale 1→1.06→1 脉冲 8f |
21
+ | 4 定格 | 末 ≥30f | 真静止,可接 hold 满 1s(R1 品牌位) |
22
+
23
+ ## 参数表
24
+ | 参数 | 典型值 | 调节手感 |
25
+ |------|--------|----------|
26
+ | 拆段粒度 | 4 字母 ~16 段(SVG line 粗方端帽,44px 级线宽) | 段太少悬念期短;太碎读作噪点 |
27
+ | 乱序表 | 手工排:跨字母乱跳,"可读性钥匙段"(如 H 中横)压到最后 2–3 段 | 顺序点亮 = 没有悬念;钥匙段早出 = 提前泄底 |
28
+ | 不可读期 | 总时长的 60–70% 处仍应读不出字 | QA 抽中段帧自问"能猜出来吗",能猜出就重排 |
29
+ | 落位脉冲 | scale 1.06 / 8f | demo 自评 6% 偏含蓄,实战可加大到 1.10 |
30
+ | 未亮段 | 条件不渲染(非 opacity 0) | 收尾真静止的前提 |
31
+
32
+ ## 已知坑
33
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
34
+ 首次实战须以真实素材回验
35
+ - 暗底上的辅助文字用亮灰——demo 首版顶部标题深灰压深底不可见(P1 自检抓到)
36
+ - 字数上限:4–6 字母词最佳;长词不可读期难控制,段数爆炸
37
+ - 本卡吃"识别瞬间",标题必须是观众认识的词(产品名/SHIP/LIVE 类),
38
+ 生造词没有"认出"可言
39
+ - 声音:逐段点亮稀疏轻拟音或无声,落位帧一声 impact + 可接 riser 铺底
40
+
41
+ ## 参考实现
42
+ demos/stroke-segment-build/
43
+ (StrokeSegmentBuild.tsx)
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: tear-streak-transitions
3
+ 一句话: 撕裂转场——glitch-displace 噪声撕裂(16 横条错位抖动中硬切),数字故障语义的条带级撕裂
4
+ 适用: 高能换页:数字故障/断裂语义;页面完整性不破、能量拉满的条带级撕裂
5
+ 时长: 前态 ≥40f + 撕裂 17–24f + 收尾 ≥40f,约 4.5s(135–140f)
6
+ 能量: 高
7
+ ---
8
+
9
+ ## 意图
10
+ 本卡管**条带级撕裂**——页面被切成横条高速运动,但每条内容完整。
11
+ 这是反复裁决划出的品味分界:碎块系转场三连否(doom-melt 竖条坠落、
12
+ pixel-dissolve 方块翻黑、facade-block 砖块翻飞全部淘汰),条带系过关。碎块读作"页面被破坏",条带读作"页面在高速
13
+ 运动"——完整性不破、能量却拉满。横向撕:条带左右错位抖动 +
14
+ 明暗重影,数字故障的灰阶降维(RGB split 改明暗双重影)。
15
+ 适用系统故障/瞬间跳变语义。
16
+
17
+ ## 单式选型
18
+ | 式 | 做法 | 适用 |
19
+ |----|------|------|
20
+ | A glitch-displace | 16 条水平条带(外层裁剪+内层整页 translateY 对位),每条 translateX 由库标 h(i*31+f*7) 驱动 ±70px 抖动,叠明暗错位重影;58f 抖动衰减中硬切 B 页再抖 4f 归位 | 故障/断裂语义;高潮前的暴力换页 |
21
+
22
+ ## 参数表
23
+ | 参数 | 典型值 | 调节手感 |
24
+ |------|--------|----------|
25
+ | 抖幅 | ±70px(spec 加码档),底层垫完整页防露底缝 | 峰值帧条带错位必须肉眼明显——±12px 级读不出撕裂 |
26
+ | 包络 | 45–48f out-cubic 冲起 → 平台 → 56–62f 线性消散 | 冲击判例:扩散 out-cubic、消散线性 |
27
+ | 重影 | ±12px 明暗双重影(brightness 0.45 / invert) | RGB 分离的灰阶降维;无重影只是抖不是 glitch |
28
+ | 摘罩 | 62f 起条带、重影、filter 全部条件卸载直出裸 B | opacity 0 不算摘;滤镜残留毁真静止 |
29
+ | 收尾 | 73f 真静止(≥40f) | R1 |
30
+
31
+ ## 已知坑
32
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
33
+ 首次实战须以真实素材回验
34
+ - **条带不碎块**——后续同类手法一律做条带:横条各自完整,
35
+ 绝不裂成方块/砖块/独立坠落物(三连否判例,见意图)
36
+ - 高能转场,与 whip-pan/crash 系同片注意能量预算——
37
+ 高能转场挤在一起互相稀释
38
+ - 硬切藏在抖动衰减中(58f 切、62f 归位)——切点暴露在静止帧上
39
+ 就失去了 glitch 的掩护
40
+
41
+ ## 参考实现
42
+ demos/tear-streak-transitions/
43
+ (GlitchDisplace.tsx)
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: tension-camera-moves
3
+ 一句话: 情绪运镜四式——bullet-time 冻结环绕、dutch-roll 斜角滚正、slow-push 慢推压迫、pull-back 拉远孤立,相机替观众"感受"而非"看"
4
+ 适用: 情绪节点(震撼/纠偏/积压/收束)的运镜语言;与 space-camera-moves 的"炫技大动作"互补——这四式动作小、情绪重
5
+ 时长: 单式 4–5s;全片合计 ≤2 式(各 ≤1 次)
6
+ 能量: A 高 / B 中 / C 低压升 / D 低收
7
+ ---
8
+
9
+ ## 意图
10
+ space-camera-moves 三式是"把页面当 3D 实体拍"的高光炫技;这四式相反——
11
+ 动作本身克制,全部劲道在情绪语义上:A 说"这一刻值得停下时间看"
12
+ (运动中的元素被冻住、相机绕行审视);B 说"问题解决了,世界被扶正"
13
+ (斜角悬着的难受感在节拍上滚回水平);C 说"有什么要发生了"(慢到
14
+ 不自觉的推近积压张力,顶点硬切释放);D 说"最后只剩这一件事"
15
+ (后拉中周围逐层熄灭,孤悬一点收束全片)。四式各占一个情绪格,
16
+ 是分镜阶段"这一段观众该感到什么"的直接词汇。
17
+
18
+ ## 四式选型
19
+ | 式 | 做法 | 适用 |
20
+ |----|------|------|
21
+ | A bullet-time-freeze-orbit 冻结环绕 | 图表生长到一半全冻住,相机绕悬停的 UI 平面 rotateY 扫 55° 再回,时间恢复接着长完 | 核心数据/图表的加冕时刻;"值得停表看"的一格 |
22
+ | B dutch-roll-to-level 斜角滚正 | 痛点段整帧 -10° 斜角悬着(叠微漂移),解决方案一拍带单次过冲滚回水平 | 痛点→方案的翻转节拍;纠偏语义 |
23
+ | C slow-push-in 慢推压迫 | 4s 匀加速推近 1.00→1.14 + 暗角渐深,张力顶点无过渡硬切亮场 | 大数字/宣言前的蓄力;暗→亮的章节爆点 |
24
+ | D pull-back-isolation 拉远孤立 | 从发光主卡特写后拉,兄弟卡按距离错峰熄灭、背景沉黑,孤卡悬在暗场中央 | 结尾收束;"全片只为这一个数字"的谢幕 |
25
+
26
+ ## 参数表
27
+ | 参数 | 典型值 | 调节手感 |
28
+ |------|--------|----------|
29
+ | A 双时钟 | 内容动画用 `effFrame = f<F1 ? f : f<F2 ? F1 : F1+(f-F2)` 驱动,相机用真实 f 驱动 | 命门:冻结期内容必须肉眼可见地完全静止,相机却在动——两个时钟各管各的 |
30
+ | A 环绕 | perspective 1600 下 rotateY 0→55°→0(两段 inOut cubic,顶点悬停 ~10f)+ scale 1→1.12→1 | 55° 是"绕到侧面看"的下限;>70° 面板变纸片穿帮 |
31
+ | B 斜置 | rotate -10° + ±0.8° 长周期正弦漂移 + 2px 纵漂;scale 1.15 防露边 | 漂移是"悬着难受"的活感,纯静止斜角读作构图错误 |
32
+ | B 滚正 | 14f ease-out 冲过 0 到 +1.2° → 10f 收回 0(单次过冲不振荡);scale 同步 1.15→1.08 | 过冲即"扶正的手劲";振荡两次以上读作弹簧玩具 |
33
+ | C 推近 | `scale [0,120f]→[1.00,1.14] Easing.in(quad)` + 暗角 opacity 0→0.5 同曲线 | 加速曲线是本体——匀速推读作普通 zoom;幅度 >1.2 变成普通推镜头 |
34
+ | C 硬切 | 顶点帧零过渡直切下一景;暗景 A→亮景 B 反差要大 | 切的一拍才是释放;加任何过渡等于把弓拉满又慢慢松掉 |
35
+ | D 后拉 | scale 2.2→0.62 / 110f Easing.out(cubic),origin 锁主卡中心 | 前 20f 主卡仍占满画面,开场即特写不需要另加 hold |
36
+ | D 熄灭 | 兄弟卡按 hypot 距离排序,帧 30 起每 8f 一张,16f 内 opacity→0 + brightness→0.3;背景 60–110f 沉入 #141414 | 由近到远熄灭 = "世界向外塌暗";乱序熄灭读作故障 |
37
+ | D 光晕 | 主卡双层白 box-shadow 60–100f 淡入 | 光晕是"只剩它"的视觉证词,与沉黑同步才成立 |
38
+ | 收尾 | 四式动作完毕真静止 ≥30f | R1;D 式是全片句号,静止给足 40f+ |
39
+
40
+ ## 已知坑
41
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
42
+ 首次实战须以真实素材回验
43
+ - C 式"前 2 秒不可察"是设计意图不是缺陷——裁决/验收看完整播放,抽帧
44
+ diff 前段变化极小属正常(已确认成立)
45
+ - A 式与 speed-ramp-freeze/impact-feedback 同为时间操纵,同一镜头别叠用
46
+ (帧 remap 互相打架);A 的冻结是"停给你看"+相机动,speed-ramp 的
47
+ 定格是"停下来标注"——选语义不选形似
48
+ - B 式斜角只压"痛点"段——全片常态斜角是 MV 语言,产品片里读作镜头没扶稳
49
+ - C 式硬切后的亮景必须信息完整可读(它承接全部积压的注意力);
50
+ 切进另一个铺垫段等于白蓄力
51
+ - D 式放结尾时后接 outro-group-photo-launch 会打架(一收一放),二选一
52
+
53
+ ## 参考实现
54
+ demos/tension-camera-moves/
55
+ (BulletTimeFreezeOrbit.tsx / DutchRollToLevel.tsx / PullBackIsolation.tsx / SlowPushIn.tsx)
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: text-as-mask
3
+ 一句话: 文字视频遮罩——超粗大标题字内部透出缓慢平移的产品画面,结尾字形放大 26 倍溢出、内部画面接管全屏
4
+ 适用: 品牌词/口号与产品画面二合一的开场或章节卡;字是门、产品在门里
5
+ 时长: 5s(hold 20f + 字内漂移 80f + 放大接管 30f + 静止 20f)
6
+ 能量: 中高(漂移段沉稳,接管段一次爆发)
7
+ ---
8
+
9
+ ## 意图
10
+ 标题和产品画面抢屏幕是老问题——先字后画慢,画上压字挤。这一式让
11
+ 两者同体:字形就是遮罩,产品只透过笔画显形,观众同时读到词和画面
12
+ 质感;结尾字形胀开溢出画幅,产品自然接管全屏——"从品牌词走进产品"
13
+ 一条镜头说完,兼任章节转场(与 transition-travel C 字腔穿越同族:
14
+ 那边是镜头钻进字腔,这边是字形自己胀开,前者相机动、后者门动)。
15
+
16
+ ## 动效核心
17
+ - 深底 + SVG 白字黑底 data-URI 交给 CSS `mask-image`,遮罩层套住产品画面
18
+ - 字内漂移:产品层 scale 1.15 + translateX 匀速漂 ~220px/80f——
19
+ 字形静止、内容流动,"窗外有世界"的错觉即手法本体
20
+ - 放大接管 30f 单段 bezier(0.4,0,0.2,1):mask wrapper `scale(1→26)`,
21
+ **transform-origin 必须钉在实心笔画内**(demo 取 L 竖笔 61.5% 处)——
22
+ 钉在字腔空洞里则放大后透出的是底色
23
+ - 内容层反向补偿:套一层 `scale(1/maskS)` 抵消 mask 放大,产品画面
24
+ 不随遮罩几何畸变(与 shot-transitions F 式"窗几何与窗内景同步驱动"同一命门的镜像)
25
+ - 接管保险:另叠一个共享同一 translateX/scale 变换的无遮罩全屏层在
26
+ 放大后段(endT 0.25–0.9)淡入——纯 mask 放大在字缝处会留深底残余
27
+
28
+ ## 参数表
29
+ | 参数 | 典型值 | 调节手感 |
30
+ |------|--------|----------|
31
+ | 字号/字重 | ≥360px / 900 | 笔画就是视口——细字重等于把产品塞进门缝 |
32
+ | 漂移速度 | ~2.75px/f 匀速 | 快了字内画面读不清;漂移方向选画面信息密的轴 |
33
+ | 放大倍率 | 26x(按字形/画幅比配,洞撑满即可) | 不足则接管帧还看得到字边残影 |
34
+ | 收尾 | 接管后真静止 ≥20f | R1;接管完成帧产品应落在标准构图 |
35
+
36
+ ## 已知坑
37
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
38
+ 首次实战须以真实素材回验
39
+ - 字内透出的产品画面全程被特写盯着看——真实素材先过
40
+ hires-rasterize-3d-text 技法卡(Q2),低倍截图在笔画里糊成一片
41
+ - 换词/换字体后 origin 手推值必失效——渲后看放大方向,洞不对中就微调
42
+ origin(同 transition-travel C 的腔心漂移坑)
43
+ - 与 transition-travel C 字腔穿越同片不并用——同为"字里长出世界",
44
+ 观众读作同一招使两次(P4)
45
+ - mask 层与内容层的 transform 必须分离驱动(wrapper 放大/内容反向补偿),
46
+ 合在一层则产品跟着字形一起胀成 26 倍废片
47
+
48
+ ## 参考实现
49
+ demos/text-as-mask/
50
+ (TextAsMask.tsx)
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: text-column-converge
3
+ 一句话: 双词对峙合拢——左"NEW"右特性词钉死在等屏边距两侧硬切轮换、全程零收缩,换到最后一词才唯一一次 ease-in-out 滑到居中咬合成短语,下方小字近乎硬切浮现;收尾揭晓型文字卡
4
+ 适用: 特性清单收束到产品名/口号的段落("NEW × 一串特性 → NEW <产品名>"式);发布会式 recap、版本号揭晓
5
+ 时长: 轮换 7–16f/词 × 8–9 词 + 合拢 ~36f + 小字后静置;全段约 5–6s
6
+ 能量: 中低(机器节奏、小字规格清单气质,不是砸字)
7
+ ---
8
+
9
+ ## 意图
10
+ 两词分踞左右像目录页对峙,观众以为只是轮换字幕;直到最后一词
11
+ 停稳才发现左右其实是同一句话的两半——唯一一次连续合拢把整段
12
+ 轮换追认为"悬念铺垫"。命门是**钉死**:轮换期两词位置一像素不动、
13
+ 左右屏边距完全相等(原片实测 412 vs 413@1280),任何渐进收缩都会
14
+ 提前剧透合拢、把揭晓稀释成进度条。合拢只许发生一次,且必须在
15
+ 最后一词之后——这是收尾揭晓,不是持续动效。
16
+
17
+ ## 动效核心
18
+ - 左词左缘、右词右缘各自钉死在等屏边距处(原片实测 412/413px
19
+ @1280,×1.5 → 618/1302@1920);右词换长换短一律右缘定位
20
+ - 词轮换纯硬切,停留帧数不均(16/12/9/8/7/8/10/12f,机器节奏
21
+ 带人味);轮换全程间距零收缩(判例:渐进收缩版被用户驳回重做)
22
+ - **唯一一次合拢**:末词停稳 ~10f 后,~1.2s(36f)ease-in-out
23
+ (cubic)连续滑动,两词滑到以屏幕中线居中定格
24
+ - 合拢终点按等宽字体实际步进算(0.6em+letterSpacing × 字符数),
25
+ 两词恰好一空格咬合,无重叠无缝隙;无 stamp 缩放、无二次补偿移动
26
+ - 定格 ~18f 后斜体小字近乎硬切浮现(4f 快淡、零位移),与整行
27
+ 同左缘、字号同正文
28
+
29
+ ## 参数表
30
+ | 参数 | 典型值 | 调节手感 |
31
+ |------|--------|----------|
32
+ | 屏边距 | 618px@1920(**原片实测** 412/413@1280 ×1.5) | 左右差 >2px 读作没对齐;边距是本卡身份,别改成黄金分割 |
33
+ | 词停留 | 7–16f 不均 | 均匀停留读作节拍器;<7f 读不完词 |
34
+ | 合拢触发 | 末词停稳 +10f(原片 32.4→32.7s 实测) | 停稳期太短,观众没意识到"这词不换了"就开始滑 |
35
+ | 合拢时长 | 36f ease-in-out cubic(**原片实测** ~1.2s 连续滑动) | <24f 读作弹跳归位;>50f 读作拖 |
36
+ | 咬合步进 | 0.6em+letterSpacing/字符,等宽字体 | 非等宽字体步进不可预测,会重叠或漏缝 |
37
+ | 字号 | 42@1080p(**原片实测**字高 ~20/720) | 这段是小字规格清单气质,放大到 60+ 就成了砸字(去用 cel-flash-stomp) |
38
+ | 小字浮现 | 定格 +18f,4f 快淡零位移(原片 34.4→34.6s 间直接出现) | 加滑入/长淡入就抢了合拢的戏 |
39
+
40
+ ## 已知坑
41
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
42
+ 首次实战须以真实素材回验
43
+ - 与 type-rhythm-sync(字属性节拍)/beat-cut-moves(硬切节拍)撞
44
+ 领域:那两张是"轮换本身即内容";本卡命门是**位置钉死 + 末次合拢**
45
+ 的收尾揭晓,轮换只是铺垫。若段落没有"合拢揭晓"就别用本卡
46
+ - 合拢只许一次——每切一词收一档的渐进收缩版已被原片对照证伪并
47
+ 删除,别复活
48
+ - 必须等宽字体(demo 用 SF Mono);比例字体下咬合终点算不准
49
+ - 与原片残余差距:原片词换瞬间带 1 帧亮度闪烁(打字机换行感),
50
+ demo 是纯硬切;实战可选加回但闪烁 >1f 会读作故障
51
+
52
+ ## 参考实现
53
+ demos/text-column-converge/
54
+ (TextColumnConverge.tsx)
55
+ 原片出处:raycast-teams.mp4 28–36s
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: theme-switch-moves
3
+ 一句话: 主题切换两式——theme-sweep 斜向扫场(边界扫过处就地换肤)与 palette-ripple 组合款(⌘K 面板收缩成点、涟漪从点荡开换肤)
4
+ 适用: 深色模式/主题功能的叙事段落;同一 UI "在你眼前变色"而非切到新场景
5
+ 时长: A 3–4s / B 5–6s
6
+ 能量: A 中 / B 中高(组合款有完整因果链)
7
+ ---
8
+
9
+ ## 意图
10
+ 深浅模式切换的两种拍法。A(Notion/Figma/Linear 惯用):15° 斜向
11
+ 边界带亮线从左上扫到右下,边界经过处浅色**就地**变深色,同布局
12
+ 双主题共存一瞬——观众看到的是"同一个 UI 换肤",不是转场。
13
+ B(组合变异):⌘K 面板输入 "dark" 回车,面板收缩成一个亮点,
14
+ 深色涟漪**从该点**荡开扫过全 UI——"命令引发换肤"的因果链完整可读。
15
+ 组合命门:涟漪圆心必须是面板收缩点、起始帧必须是收缩完成帧。
16
+
17
+ ## 两式选型
18
+ | 式 | 做法 | 适用 |
19
+ |----|------|------|
20
+ | A theme-sweep-toggle | 深色版 clip-path polygon 15° 斜边扫场(out poly3 先快后缓 ~38f),边界 4px 白亮线+18px 辉光,扫完 2f 淡出;深版 scale 1→0.995→1 坐实 | 主题功能直接展示 |
21
+ | B palette-theme-ripple | 面板 back(1.9) 弹落→逐字输入→回车面板 ease-in 收缩到 0 + 白色高光核钉住位置→圆形 clip 半径 12→1250px cubic-out 荡开,边缘 5px 白环双向辉光 | 命令面板+主题联动的高光段 |
22
+
23
+ ## 参数表
24
+ | 参数 | 典型值 | 调节手感 |
25
+ |------|--------|----------|
26
+ | 深色版制作 | 对色板逐键手工映射(bg/card/border 各自定深色值) | 滤镜反转出来的深色是错的(图像/头像全反) |
27
+ | A 斜边超扫 | 底端超出 SLANT+40px | 不超扫右下角残留浅色三角 |
28
+ | A 坐实 | scale 0.995 幅度偏微妙(demo 自评) | 实战可加大到 0.985 |
29
+ | B 因果钉扎 | 高光核在收缩点挂 10f,涟漪圆心=该点坐标 | 圆心错位/错帧就断了"命令→换肤"因果(组合命门) |
30
+ | B 浅色层 | 扫场完成后条件卸载 | 真静止前提 |
31
+
32
+ ## 已知坑
33
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
34
+ 首次实战须以真实素材回验
35
+ - 两版布局必须逐像素一致——布局有出入就读作"切换到另一个页面",
36
+ 手法即失效
37
+ - 真实页面实战:深浅两版分别真实截图(Q1),不做滤镜假深色
38
+ - 一支片主题切换 ≤1 次:它是功能叙事不是转场,反复切读作演示事故
39
+ - 声音:A 扫场一声长 whoosh;B 回车一声确认 + 涟漪荡开接 whoosh
40
+ (S4 拟音优先)
41
+
42
+ ## 参考实现
43
+ demos/theme-switch-moves/
44
+ (PaletteThemeRipple.tsx / ThemeSweepToggle.tsx)
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: timeline-travel
3
+ 一句话: 时间轴横移——镜头沿水平刻度轴加速掠过版本刻度,每过一格卡片弹立短停,末刻度急停推近
4
+ 适用: changelog/里程碑/发展史段落("我们一直在发货"的另一种拍法);与 scroll-brake-moves 分工:那卡是纵向列表急刹,本卡是横向时间旅行
5
+ 时长: 4–5s
6
+ 能量: 中高(加速→急刹的节奏型镜头)
7
+ ---
8
+
9
+ ## 意图
10
+ 把产品的版本史拍成一次沿时间轴的旅行(《反恐王国》片头判例):
11
+ 镜头缓起→冲刺→急刹三段变速横移,v1.0/v2.0/v3.0 刻度依次掠过,
12
+ 每过一格对应卡片从刻度线上 spring 弹立——历史在窗外闪过,
13
+ 急停在"今天"并推近。速度本身讲"发展快",急停讲"现在最重要"。
14
+
15
+ ## 动作阶段
16
+ | 阶段 | 帧段参考 | 内容 |
17
+ |------|------|------|
18
+ | 1 静置 | f0–12 | 空轴 + 首刻度定住 |
19
+ | 2 加速掠过 | ~f12–100 | 世界层 translateX 分段缓动:缓起→冲刺→末 12% 急刹 |
20
+ | 3 弹卡 | 掠过中 | 相机扫过刻度前 6f 卡片起弹(spring damping ~11 明显过冲),底边为轴 scaleY 立起 |
21
+ | 4 急停推近 | 急停帧起 10f | scale 1→1.28 推近末刻度(out cubic),接静止 ≥30f |
22
+
23
+ ## 参数表
24
+ | 参数 | 典型值 | 调节手感 |
25
+ |------|--------|----------|
26
+ | 变速曲线 | 输入断点 [0,0.15,0.88,1]→输出 [0,0.055,0.9,1] | 中段不够快就没有"旅行感";全程匀速即廉价 PPT |
27
+ | 弹立时机 | 相机到达刻度前 6f 起弹,由 camXAt 反查 | 到了才弹观众已经错过;早太多读作预告 |
28
+ | 刻度密度 | 主刻度 3–5 个 + 次刻度小点若干 | 次刻度点是速度感的参照物,删掉就感觉不到快 |
29
+ | 急停推近 | 1→1.28 / 10f | 不推近急停就只是"停了",推近才是"到了" |
30
+
31
+ ## 已知坑
32
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
33
+ 首次实战须以真实素材回验
34
+ - 中段冲刺快到卡片糊时可叠 CameraMotionBlur(只包快速段,轮 #8 判例)
35
+ - 急停后静止预算前置:demo 首版静止只有 25f 不达标,急停帧前移才够
36
+ ——排时间线时先给末段留 ≥30f 再倒推行程
37
+ - 每张弹立卡片是信息位:实战放真实版本亮点截图/一句话,
38
+ 掠过速度要保证至少末两张能读(Q6 同源)
39
+ - 声音:每次弹立一声轻打点,急停一声 impact(S2 同源)
40
+
41
+ ## 参考实现
42
+ demos/timeline-travel/
43
+ (TimelineTravel.tsx)