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,157 @@
1
+ # 审美准则(判例式)
2
+
3
+ 来源:多支宣传片实战返工的判例沉淀(成片模板见 `template/`)。
4
+
5
+ **使用方式**:
6
+ - 每条 = 规则(一句可执行的话)+ 判例(用户原话 / 返工经过)+ 自检问题,三要素缺一不可。
7
+ - pipeline.md 阶段 7 验收时**逐条过一遍**,输出自检报告,格式:`编号 ✓` 或 `编号 ✗(位置)`(位置 = 镜头名/帧号)。
8
+ - 准则可以有意识违反(风格需要时),但每次违反必须写进该项目的说明文档(写明违反了哪条、为什么)。
9
+ - 编号体系:R(节奏) / Q(质感·运镜·构图) / S(声音) / C(文案) / P(流程),编号一经发布不重排,新增条目只追加。
10
+
11
+ ## 目录
12
+
13
+ - 节奏(R)
14
+ - 质感、运镜与构图(Q)
15
+ - 声音(S)
16
+ - 文案(C)
17
+ - 流程(P)
18
+
19
+ ---
20
+
21
+ ## 节奏(R)
22
+
23
+ ### R1. 关键信息落定后必须呼吸,品牌字标 hold 满 1 秒
24
+ 规则:承载信息的元素(字卡/数字/网格全貌)落定后静止 ≥1s 再切镜;呼吸感停顿优先给品牌记忆点(wordmark 落定时刻),不给普通内容卡片。
25
+ 判例:用户:"第一个标题打出来之后停留一秒"、"不是第一个字卡,我说的是开头和结尾的AI field lab出现的动画,出现后延长停留1秒"。先停错了对象、revert 后重做,定案为开头结尾两处 wordmark 各 hold 满 1 秒。
26
+ 自检:每个"想让观众记住的画面"是否有完整静止时刻?停顿给的是品牌/关键信息,还是随手给了普通元素?
27
+
28
+ ### R2. 速度感来自加速度,不是匀速快;群体运动挂物理隐喻,收尾留 0.5s 停顿
29
+ 规则:飞入/滚动一律非线性缓动 + 非均匀错峰,匀速运动读作廉价 PPT;大量同类元素入场用"越来越快"的硬加速节拍,最好绑一个物理隐喻(如牌堆发牌),满板后静止 0.5s 再切下一拍。
30
+ 判例:用户:"卡片不断往下堆叠时,应该越来越快,scroll的速度也越来越快,并在最后停顿0.5秒"、"最后速度也不够快……卡片自动按顺序飞向自己的位置,归位越来越快"。先做成加速 scroll + 0.5s 停顿,再改成发牌式硬加速——抽象 flood 五轮不收敛、换成发牌隐喻一轮通过。
31
+ 自检:有没有任何元素在做匀速直线运动?批量入场是否越来越快、末尾有无静止呼吸?
32
+
33
+ ### R3. 节奏宁慢勿快:初版默认放慢一档,主体动作弧 ≥3s,交互演示按真人操作速度
34
+ 规则:开场主体动作(聚焦→悬浮→归位一条完整弧线)至少 3 秒;模拟真实交互(打字、筛选、点击)按人真实操作的速度走,观众要能跟着做一遍;排时间线时预留 hold/rest 帧预算——第一版几乎总是偏快。
35
+ 判例:全片六次独立反馈全部指向"放慢/停留",从未有一次"太慢了"的反向反馈。用户:"第一个镜头还是太快了,放慢到3秒"、"进入搜索框打字,然后筛选出卡片的过程太快了,放慢一些"。开场几经放慢到 3s macro opening,交互段落改成不慌不忙的 type-and-filter。
36
+ 自检:把每个镜头当第一次看:哪里没看清?交互段落自己能不能跟着操作一遍?
37
+
38
+ ---
39
+
40
+ ## 质感·运镜·构图(Q)
41
+
42
+ ### Q1. 复刻既有页面必须真实截图;手搓 UI 限非复刻场景且质量/表达达标;数据按风险口径处理
43
+ 规则:凡是表现产品既有页面的镜头,第一步就用无头浏览器截真实页面(整页纹理 + 元素级抠图 + 坐标 json),不手搓仿真贴图复刻;非复刻场景(抽象开场/品牌段/页面上不存在的独立展示组件)允许手搓 UI,但质量(出版级质感,对照 Q10 标准)与表达明确性(观众一眼看懂它是什么)是硬门槛,达不到回截图路线。公开演示数据只有在产品简报明确确认后可保留;客户、个人、内部、密钥、实时或其他敏感内容必须先虚构、脱敏或冻结。对手搓素材同样适用该口径。
44
+ 判例:用户:"我希望的是用真实的页面,然后加入动画"、"不要用真实数据,造一份fake的,不要提到客户名字"。改用真实 dashboard 页面重建,此前一下午手搓纹理复刻版整体作废。修订(2026-07-13 用户裁决):"不一定都要来自真实页面截图,可以手搓UI组件,只是要保证质量和表达的明确性"——判例约束收窄为"不用手搓复刻既有页面"。
45
+ 自检:每块 UI 素材:它在复刻既有页面吗?是则必须来自截图;手搓件的质感和表达能过 Q10 级审视吗?源数据是否符合已确认的数据口径,且不含未授权的客户、个人、内部或密钥信息?
46
+
47
+ ### Q2. 3D 透视下 UI 纹理按原生尺寸 rasterize 后缩小使用;文字发糊先查纹理分辨率链路
48
+ 规则:3D 场景里的 UI 纹理按显示尺寸的 2–4 倍原生栅格化、在 3D 里向下采样(放大走布局级 CSS zoom 而非 transform scale);文字模糊先查栅格化路径,别先动相机/DoF。
49
+ 判例:用户三轮追打:"明显卡片变得模糊了"、"还是不够高清……有像素点的方块"、"第一个镜头的文字清晰度还是没有解决"。先调 DoF 治标无效,改成按原生尺寸 rasterize 拿到真正 4x 锐度,最后把 CSS zoom 推广到全部 3D 页面层根治。
50
+ 自检:放大/透视镜头逐帧截图看文字边缘:有没有像素方块?纹理源分辨率是否 ≥ 显示尺寸 2 倍?
51
+
52
+ ### Q3. 镜头要稳:产品宣传片默认不加手持抖动
53
+ 规则:亮场 UI 宣传片禁用 handheld shake;相机噪声只在暗场氛围片明确追求纪实感时用极小值,且必须自查渲染帧确认无意外抖动。
54
+ 判例:用户:"镜头视角很差,而且有小抖动不知道怎么回事"。去掉 handheld shake、重新构图后抖动零投诉;另一支暗场氛围片保留 shake=0.02 未被投诉——适用边界由此划定(推测边界)。
55
+ 自检:逐镜头看渲染帧:有没有任何非叙事意图的相机抖动?
56
+
57
+ ### Q4. 高光/扫光特效宁缺毋滥:不群发,一个镜头最多给主角一次,且必须裁进圆角边界
58
+ 规则:glint/泛光划过类特效不做群发——批量元素入场靠运动本身而非逐个发光;保留的光效必须被承载元素的 border-radius/overflow 裁剪,光溢出圆角是廉价感的典型来源。光效类技术路径本身不封杀:单点、给主角、实现质量过硬的 sheen/泛光可以做,做完对着渲染帧自问"好看吗"再交。
59
+ 判例:用户两次否决:"不需要每个卡片都闪烁一下"、"卡片出现时的泛光划过的特效取消,不好看"。据此去掉逐卡 glint、撤掉泛光划过、把 chip 高光扫光裁进圆角边界内。澄清(2026-07-13 用户):否决针对的是"实现的版本不好看","不代表这个技术路径/特效类型就不可行"——群发禁令与圆角裁剪不变,但泛光/扫光类手法可以带着更高实现标准重试。
60
+ 自检:数一数全片 glint/sweep 出现次数:有没有超过"主角元素一次"?每处光效是否被圆角裁剪?留下的每处光效,正常速度回放自己看过并觉得好看吗?
61
+
62
+ ### Q5. 开场只给一个主角:单主体 + 完整动作弧,胜过群体群舞
63
+ 规则:开场信息宁少而聚焦——一个主角元素、一条完整弧线(聚光→推近→悬浮→描边光→归位),多元素并舞撑不起第一印象。
64
+ 判例:用户:"第一个镜头,只需要聚焦在一张卡片,并让它更有质感"。开场一夜推倒六次,单卡结构定型后直到成片未再动结构。
65
+ 自检:开场镜头有几个"想让观众看"的东西?主角的动作弧是否完整(起-承-落)?
66
+
67
+ ### Q6. 机位服务可读性:信息密集镜头正视,文字特写侧向水平,风格化倾斜逐镜头验证
68
+ 规则:风格化机位按镜头逐个决定——叙事/情绪镜头可倾斜,列表/堆叠等信息密集镜头保持正视;含文字的卡片特写用侧向水平机位,避免大角度仰拍/俯拍破坏文字可读性;禁止全局一刀切套用某种机位风格。
69
+ 判例:全片统一倾斜化被用户否决"做的并不好……对于内容列表页(模板片中为论文列表)的改动也不好,回滚",随即单独把列表页 revert 回正视;用户:"聚焦到一个卡片……是从左侧拍摄而不是从下方",改为左侧 hero 机位。
70
+ 自检:每个倾斜机位镜头:斜的理由是什么?画面里的文字在这个角度还读得清吗?
71
+
72
+ ### Q7. 物件特写四件套:侧面倾斜角 + 可感知高度 + orbit 环绕 + 反差深色材质背景
73
+ 规则:物件/资产特写镜头做足环境戏——侧面倾斜机位、堆叠出可感知的体积高度、镜头绕主体环绕,背景用与主场景反差的深色材质(如拉丝金属),再用拉远同步过渡回主场景。
74
+ 判例:用户:"镜头应该是倾斜从侧面拍摄,堆叠的项目应该有一定的高度,然后镜头围着堆叠做旋转。真个场景应该是暗色的金属质感背景。然后在镜头拉远,同时出现dashboard背景"。从 pile 特写 orbit 初版做到定稿——暗色拉丝金属背景 + 更高的堆叠 + 环绕运镜。
75
+ 自检:特写镜头的主体有没有体积感和环境反差?相机是死机位还是有环绕/拉远?
76
+
77
+ ### Q8. 结尾做成"发布会合影":全片元素四方飞入围住字标,能量推到全片峰值
78
+ 规则:多功能产品的收尾用"全家福"结构——每个已展示过的功能抽一个代表元素多方向飞入定格;规格匹配全片能量峰值(crane 运镜 + 舞台光 + 粒子),初版收尾几乎总是偏保守,默认加码一档。
79
+ 判例:用户:"各个页面的核心元素从不同方向飞来……形成一个类似于合影的画面"、"加一些更多的特效、动画、运镜……像一个产品发布"。从合影式组装做到发布会级别——crane 运镜、舞台光、金粉。
80
+ 自检:结尾是不是全片能量最高点?合影里是否每个已展示的功能都有代表元素?
81
+
82
+ ### Q9. 飞入动画的终点必须是页面布局里的真实槽位,元素不悬浮在页面上方
83
+ 规则:元素飞入后要"嵌入"页面(归位到真实格位、扩展滚动流),不落地悬浮其上会显得假。
84
+ 判例:用户:"研究问题的list应该从空中飞入,嵌入dashboard"、"不要让10张项目卡悬浮其上,而是接着往下scroll,然后排到下面去,不要重叠"。据此让行元素飞入并嵌入布局、把网格改成随滚动延展(近整文件重写)。
85
+ 自检:每个飞入元素落定后,它在页面布局里有真实坐标吗?有没有元素永久浮在页面之上?
86
+
87
+ ### Q10. 文档类镜头的 mock 内容要出版级:原生排版、文字铺满、完整版式入镜
88
+ 规则:观众会读清屏幕上每个字——文档/报告类镜头的 mock 必须用产品原生排版灌满真实密度的假内容,侧栏/评论栏等版式元素完整入镜;"贴图+标语"级别的假文档整镜头返工。
89
+ 判例:用户:"周报内容的文字要用和现在排版和风格一致的,只是内容mock,文字内容铺满,且要完整展示左边栏和右边评论栏"(模板片中该镜头为周报页)。初版"贴图+标语"级假文档被整镜头重做,最终版为原生排版全量 mock、双栏完整入镜。
90
+ 自检:暂停在文档镜头任意一帧:内容读起来像真的吗?版式(侧栏/评论/页眉)完整吗?
91
+
92
+ ---
93
+
94
+ ## 声音(S)
95
+
96
+ ### S1. 配乐与音效按"片种"选,不按"事件"选:强鼓点电子底 + 电影系 SFX 词汇,禁用游戏 UI 音包
97
+ 规则:产品宣传片 SFX 词汇表 = whoosh(运镜)/impact(落地)/riser(铺垫)/sparkle(光效)/transition(转场),禁用游戏 UI 音包(click/pluck/glass 类 tap 音);BGM 选强鼓点、强节奏的电子底(tech-house 类),候选曲必须垫进成片试听——单听曲子无法判断气质。
98
+ 判例:用户:"这个配乐和音效都太像游戏了。你帮我找那种鼓点强的,节奏感强的,然后音效要那种典型的产品宣传视频的音效"。用 Mixkit tech-house + whoosh/impact/riser/sparkle 整批替换掉此前引入的全部 Kenney CC0 游戏音;BGM 34 分钟内三易其稿后定稿沿用。
99
+ 自检:闭眼只听音轨:像产品发布会预告,还是像手机游戏?BGM 是在成片里试听后选定的吗?
100
+
101
+ ### S2. SFX 逐拍钉帧管理;连发音效做双样本交替 + 音量阶梯递减 + 间隔加速,不同响度复读
102
+ 规则:SFX 用"帧号 + 音源 + 音量"的声明式表集中管理,逐条注释对应的画面动作,杜绝凭感觉铺音效;同类元素连发时防机枪感靠三招——双样本交替、沿序列音量阶梯递减(如 0.40→0.25 六级)、间隔跟随动画曲线加速,密到糊成一片时让声音淡出成 swoosh(本仓库实证无 playbackRate 变调,防机枪不靠变调)。
103
+ 判例:用户:"周报左侧栏的每周出现时可以换个音效,能配合每个周的出现的"(模板片中为周报页)。先立起逐拍钉帧的 SFX 帧号表结构(沿用至成片),再做 pluck 双样本交替、间隔 8→3f 加速,最后把 per-week pop 六连发音量做成 0.40→0.25 阶梯递减。
104
+ 自检:每条 SFX 是否钉在具体帧号并注释了对应动作?连发段落听起来是"数得出来的节奏"还是机械复读?
105
+
106
+ ### S3. 声音在画面锁定后做;时间线一动,SFX 全表重钉
107
+ 规则:BGM/SFX 排在画面结构基本锁定之后;任何改变镜头时长/顺序的修改,收尾动作固定包含"全表 SFX 帧号重对"——音画错位是交付前必查项。
108
+ 判例:用户:"改完这些后重新调整音效位置以匹配新的时间线"。据此按新时间线(总长 1085f)重钉全表 SFX;教训链:首版 SFX 钉完 11 小时后画面大改导致全表重钉,三次重钉中两次纯属画面返工的连带成本。
109
+ 自检:本轮有没有镜头时长/顺序变化?变了的话 SFX 表逐条重对过了吗?
110
+
111
+ ### S4. 拟音优先于装饰音:画面动作配该动作的真实声音,音频裁到与动作严格等长
112
+ 规则:画面里发生什么动作就配什么声音(打字画面配键盘声、逐条落入配逐个 pop),泛用 swoosh 盖不住有辨识度的画面动作;长样本按画面段落裁剪(Sequence 截断),时长与动作严格等长。
113
+ 判例:用户:"周报页面内容出现的时候可以配打字音效"(模板片中为周报页)。据此给文档页揭示配打字机音,keyboard.mp3 按语境裁 24f/44f 两个用途。
114
+ 自检:每个有辨识度的画面动作(打字/点击/落地)有没有自己的拟音?音效有没有拖到动作结束之后还在响?
115
+
116
+ ---
117
+
118
+ ## 文案(C)
119
+
120
+ ### C1. 文案在画面锁定后按最终镜头重写一遍,纯动画段落也配解说
121
+ 规则:初稿文案只是占位——画面定稿后对照成片逐镜头重写;纯动画镜头配短解说 caption,不留"哑巴段落"(品牌收尾镜头除外,保持干净)。
122
+ 判例:用户:"你根据我现在完整的视频内容,重新写文案的词,我感觉现在的和视频画面不是很匹配,再就是在动画的部分是不是也加一些解说?"。据此重写标题文案,并给实拍镜头补上 caption 解说。
123
+ 自检:逐句对照:每句文案和它所在的画面匹配吗?有没有超过 3 秒的无解说动画段落?
124
+
125
+ ### C2. 标语写"团队 + 产品功能名 + 具体收益",抽象隐喻词一律具体化
126
+ 规则:标语要具体、带产品功能名(Paper Radar / weekly report),避免抽象隐喻词(board/place 类泛化口号);重要功能出场前加一张引导字卡。
127
+ 判例:用户逐字改稿:"'All your research, one board' 改成'All team's research, one place to go'…'The morning reading'那句改成'Paper Radar, tailored for your morning reading'";"最后文档页展示前,还应该加个文字画面"(模板片中为周报页)。据此三句逐词替换,并加一张文档页 lead-in 引导字卡。
128
+ 自检:每句标语里有没有具体的功能名/收益词?有没有只靠隐喻撑着的句子?
129
+
130
+ ### C3. 3D 镜头里的注记文字活在同一 3D 空间:page-space、同透视、斜拍,大字 + 荧光笔 highlight
131
+ 规则:给 3D 场景中的主体配画内注记时,文字必须进同一 3D 空间(页面坐标系、同一台相机透视、translateZ 悬浮 + 落影),平面叠字与场景脱节;样式用大衬线字 + 马克笔 highlight 关键词。
132
+ 判例:用户:"字在左侧,大一些醒目一下,有highlight,然后字的视角也是3d悬空,并且斜着拍摄的"(第一版平面字卡被否后重做)。改为把 hero-hover 注记放进 3D——页面坐标系斜视、马克笔 highlight。
133
+ 自检:3D 镜头里的每块文字:它跟着场景相机动吗,还是贴在屏幕玻璃上?
134
+
135
+ ---
136
+
137
+ ## 流程(P)
138
+
139
+ ### P1. 交付前必须自己渲染截帧逐一检查,不把首检交给用户
140
+ 规则:每轮修改后先自行渲染关键帧截图逐一检查(构图/抖动/文字锐度/穿帮),必要时用像素级工具(裁剪放大/两帧 diff)自证,再交用户。
141
+ 判例:用户第一次看片即质问:"你自己有截图检查质量吗?镜头视角很差,而且有小抖动不知道怎么回事"。此后管线里长出 crop/diff/measure 自检脚本与 out/qa/ 逐版本静帧归档,双方进入基于帧的评审。
142
+ 自检:这一版交出去之前,我自己看过哪些帧?关键镜头有没有截图证据?
143
+
144
+ ### P2. 参考素材先逐帧拆解成手法清单,再逐镜头判断适配性,不全局套用
145
+ 规则:有参考片先抽帧做 motion breakdown(每个动画/转场/特效的实现方式清单)写进 spec,按项目适配性取舍;图片参考描述的是"某一类镜头"的感觉而非全片风格令——落地前逐镜头判断适不适用,改完自查再交。
146
+ 判例:用户:"从原视频里截取尽可能多的帧……加以复现然后适配到我们的项目,不适合的不用强行适配"——把参考片的 motion breakdown 写进 spec 后连续放行;反例:三张参考图被全局套用为统一倾斜机位,被否"做的并不好……回滚"后逐镜头重做。
147
+ 自检:参考素材的每个手法有没有"采用/弃用"的显式决定?有没有把一张参考图当成了全片风格令?
148
+
149
+ ### P3. 指代含糊的反馈先确认对象;改错了整 commit 干净 revert,不在错误版本上打补丁
150
+ 规则:"第一个标题"式模糊反馈先确认所指再动手;落错对象立即整 commit revert 重来;每个改动保持独立 commit 以便干净回滚。
151
+ 判例:用户:"不是第一个字卡,我说的是开头和结尾的AI field lab出现的动画"。先理解错、hold 了 card1,8 分钟内干净 revert,再对正确对象重做通过。
152
+ 自检:这条反馈的指代对象我确定吗?当前 commit 粒度出了错能一键回滚吗?
153
+
154
+ ### P4. 先列功能清单逐一对应镜头;一种动画手法全片只当一次主角,重复镜头/信息一律删
155
+ 规则:开拍前列产品功能清单(dashboard/详情/论文/周报/品牌)逐一映射镜头,核心功能漏拍等于返工;一种手法(飞入/堆叠/翻页)全片只当一次主角;剪辑自查按"这个镜头给了什么新信息"过滤,同一素材/信息全片只出现一次,重复即删。
156
+ 判例:用户:"其他动画有些同质了。没有充分展示整个网站的特性"、"很不错了,但是没有周报部分的展示?"(模板片中为周报页)——据此补功能镜头;"倒数第二个镜头是重复的项目卡片的镜头,可以去掉了"——据此删掉重复的概览镜头、去重收尾标语。
157
+ 自检:功能清单每项都有对应镜头吗?有没有两个镜头在用同一种手法当主角、或讲同一件事?
@@ -0,0 +1,107 @@
1
+ # final-review — 成片独立终检
2
+
3
+ 独立审查 Agent 使用本清单验证“成片是否符合当前创作模式的制作基准”,并结合
4
+ `aesthetic-rules.md` 检查视觉技术质量。审查 Agent 必须处于干净上下文,不参与
5
+ 制作;不要给它制作过程中的理由、辩解、修改历史或预期结论。
6
+
7
+ ## 审查输入
8
+
9
+ - 最新成片 MP4 和每镜头关键帧;
10
+ - 创作模式:直接使用模板、自主自由创作或共同创作;
11
+ - 产品视频简报与必须展示的功能;
12
+ - 需求到执行决策表;
13
+ - 共同创作中用户确认、自主自由创作中 Agent 记录的视觉方向、品牌 tokens、
14
+ styleframe(或跳过理由)和禁用风格;模板模式则提供原模板结构与实际替换记录;
15
+ - 功能到镜头映射;
16
+ - 用户指定或 Agent 在设计 spec 中记录的 Gallery 卡名与具体变体;
17
+ - `gallery/api/library.json` 中对应卡片与 `style-key` 记录;
18
+ - 卡片文档定位到的准确 demo TSX 源码;
19
+ - 对应 Gallery 参考样片,或从参考样片抽出的关键帧/contact sheet;
20
+ - 最终分镜、字幕、页面状态和 SFX 计划;
21
+ - 选中的 `references/shots/*.md`;
22
+ - `aesthetic-rules.md`;
23
+ - 数据合规口径。
24
+
25
+ 缺少某项输入时标记“无法验证”,不要自行猜测制作基准。索引、卡片文档、
26
+ demo 源码与 Gallery 参考样片互相冲突时,明确报告冲突来源,不自行挑一个当真相。
27
+
28
+ ## 检查项
29
+
30
+ ### P — 产品目标
31
+
32
+ - P1:产品定位、目标用户和核心卖点是否清楚;
33
+ - P2:成片是否把注意力放在当前模式确认或记录的功能优先级上;
34
+ - P3:是否出现项目不存在、未经确认或容易误导的功能宣称。
35
+ - P4:需求到执行决策表中的执行选择,是否能在分镜、文案、页面状态、音频和素材中
36
+ 找到对应落地;不得用固定的“受众/用途→风格”刻板映射替代项目依据。
37
+
38
+ ### F — 功能完整性
39
+
40
+ - F1:每个“必须展示的功能”是否至少有一个清楚可辨的镜头;
41
+ - F2:每镜头是否提供新信息,是否存在重复功能或重复 tagline;
42
+ - F3:页面状态是否能让观众理解功能,而不只是装饰性运动。
43
+
44
+ ### V — 视觉方向
45
+
46
+ - V1:字体、色板、材质、圆角、光感和信息密度是否符合确认或记录的视觉方向;
47
+ - V2:动效速度、过冲、停留和能量曲线是否符合确认或记录的动效性格;
48
+ - V3:是否偏离制作基准,漂移到 Ink Press、赛博霓虹或其他无关风格;
49
+ - V4:禁用的颜色、效果或品牌特征是否被使用。
50
+
51
+ ### S — 镜头卡与 Gallery 变体
52
+
53
+ - S1:功能映射中的镜头卡是否实际出现在对应镜头;
54
+ - S2:用户点名 `卡名 · 样式名` 时,`style-key`、准确 demo TSX 和 Gallery
55
+ 参考样片是否指向同一变体,成片是否使用该变体;
56
+ - S3:对照准确 demo TSX 与 Gallery 参考样片,是否保留配方卡/demo 的动作
57
+ 语法、关键时值、缓动关系和遮罩时机;
58
+ - S4:是否违反卡片标注的“已知坑/命门”;
59
+ - S5:适配后的产品截图、坐标和品牌 token 是否自然。
60
+ - S6:标为“仅供参考,需要自定义实现”的样式是否得到用户明确点名,并在报告中标注
61
+ 其实现风险;标为“缺少预览”的样式是否避免声称与动态样片一致。
62
+
63
+ 不要求和 Gallery 样片像素级一致。检查的是运动语法和关键参数是否忠实,同时
64
+ 允许为目标产品调整截图、坐标、文案、品牌视觉和必要构图。
65
+
66
+ ### B — 分镜一致性
67
+
68
+ - B1:镜头顺序、时长和功能信息是否符合确认或记录的最终分镜;
69
+ - B2:主动作、页面状态、素材来源、字幕、转场和 SFX 是否一致;
70
+ - B3:品牌字标 hold 是否至少 1 秒,批量动效收尾是否至少静止 0.5 秒;
71
+ - B4:是否在最终分镜放行后,无依据地删除、替换或增加关键镜头。
72
+
73
+ ### D — 数据与素材安全
74
+
75
+ - D1:是否遵守真实数据、虚构数据或脱敏口径;
76
+ - D2:是否暴露客户、个人、密钥、内部地址或其他敏感信息;
77
+ - D3:表现真实产品页面时是否使用真实截图,而非低质量手搓复刻;
78
+ - D4:截图状态、字体、图片和动态数据是否完整加载。
79
+ - D5:公开演示数据是否有可复核的公开属性;客户、个人、内部、密钥、实时
80
+ 或其他敏感数据是否已虚构、脱敏或冻结。
81
+
82
+ ### A — 音频与节奏
83
+
84
+ - A1:BGM 是否符合确认或记录的音频方向,音量是否给 SFX 和可选配音留出空间;
85
+ - A2:SFX 是否钉在真实动作关键帧,是否出现明显错位;
86
+ - A3:强节奏音乐的切点误差是否不超过 3 帧;
87
+ - A4:结尾能量峰值和 riser→impact→sparkle 句式是否成立(若分镜采用)。
88
+
89
+ ### Q — 视觉技术质量
90
+
91
+ 完整执行 `aesthetic-rules.md`。至少检查文字锐度、构图、圆角遮罩、3D 纹理
92
+ 清晰度、元素落位、相机抖动、转场接缝、光效廉价感、可读时长和确定性渲染。
93
+
94
+ ## 报告格式
95
+
96
+ 每条结论使用编号,并给问题附帧号或截图:
97
+
98
+ ```text
99
+ P1 ✓ 产品定位和核心卖点清楚。
100
+ F2 ✗ 第 340 帧:已确认的知识图谱功能没有出现在成片。
101
+ V3 ✗ 第 420 帧:大面积琥珀纸张材质偏离已确认的深蓝科技方向。
102
+ S2 ✗ 第 515 帧:用户选择 whip-pan,实际实现为 flash-cut。
103
+ Q2 ✗ 第 615 帧:3D 推近后正文文字发糊,见关键帧 f615.png。
104
+ ```
105
+
106
+ 最后按严重程度列出必须修复项、建议优化项和无法验证项。不要用没有证据的
107
+ “整体不错”代替逐项检查,也不要为了报告好看而全部标记通过。
@@ -0,0 +1,197 @@
1
+ # guided-free-creation — 共同创作引导流程
2
+
3
+ 共同创作模式用于用户希望参与产品短片的关键业务与创意决策。它把产品简报、
4
+ 需求决策、视觉方向、镜头映射和最终分镜交给用户确认,把视频工程细节交给
5
+ Agent 执行。自主自由创作不读本文件,也不使用这里的逐阶段确认节点。
6
+
7
+ ## 目录
8
+
9
+ - 产品简报与安全素材预检
10
+ - 需求到执行决策表
11
+ - 视觉方向与 styleframe
12
+ - 功能到镜头映射
13
+ - Gallery 镜头名称解析
14
+ - 分镜确认与制作放行
15
+
16
+ ## 1. 产品简报
17
+
18
+ 先只读检查项目,不写视频代码、不修改业务项目、不采集或导出敏感内容。检查技术栈、
19
+ 入口、启动命令、页面路由、主要组件、交互状态、API、页面文案、CSS 视觉 token、
20
+ 外部依赖和数据风险,并判断哪些功能能通过真实页面状态清楚表达。
21
+
22
+ 输出一张由 Agent 先填写的产品简报表。每一行都必须先给出判断或推荐,
23
+ 再写明依据;不要把所有字段原样丢给用户填写。
24
+
25
+ ```text
26
+ 当前阶段:产品理解
27
+
28
+ | 项目 | Agent 的判断或推荐 | 依据 |
29
+ |---|---|---|
30
+ | 项目定位 | | |
31
+ | 目标用户 | | |
32
+ | 视频用途 | | |
33
+ | 核心卖点 | | |
34
+ | 必须展示的功能 | | |
35
+ | 可用页面/状态 | | |
36
+ | 首屏主张 | | |
37
+ | 期望时长/画幅/语言 | | |
38
+ | 音乐/配音 | | |
39
+ | 数据合规口径 | | |
40
+ | 视觉线索 | | |
41
+
42
+ 需要确认:
43
+ 1. 只列出无法从项目或用户已有描述中确定的事项。
44
+ 2. 对可以推荐但仍需用户拍板的事项,先写“推荐方案+依据”,再在此处提问。
45
+ ```
46
+
47
+ 填写规则:
48
+
49
+ - 能从 README、源码、路由、页面状态、文案或 computed styles 确定的,直接填写
50
+ 判断和证据,不再询问;
51
+ - 无法完全确定但可以根据项目合理推荐的,填写动态推荐、推荐依据和需要用户
52
+ 拍板的选项;
53
+ - 完全无法判断的,明确写“无法从当前材料判断”,只把它放到下方问题中;
54
+ - 每轮只追问 1–3 个最影响视频结果的问题;不显示“置信度”字段;
55
+ - 推荐必须来自当前上传项目或页面,不得使用固定答案。
56
+
57
+ 用户确认简报后,先按数据口径进行一次**临时安全素材预检**:只采集制作
58
+ styleframe 所需的少量页面截图或 token,不做完整切片、全量导出或最终素材入库。
59
+ 公开演示数据只有在简报明确确认后可保留;客户、个人、内部、密钥、实时或其他
60
+ 敏感数据必须先替换、脱敏或冻结。已经明确提供的信息不要重复询问。
61
+
62
+ ## 2. 需求到执行决策表
63
+
64
+ 把已确认的用户需求、项目证据和 Agent 的执行选择写成同一张可追溯表。它不是
65
+ 固定的“受众→风格”规则表:每行都必须写明当前项目与用户材料带来的依据,
66
+ 并允许 Agent 提出与常见套路不同的推荐。
67
+
68
+ ```text
69
+ 当前阶段:从需求到制作决策
70
+
71
+ | 已确认需求 | 项目/用户依据 | 受影响的执行范围 | Agent 推荐 | 需要确认项 |
72
+ |---|---|---|---|---|
73
+ | 视频用途 | | 叙事结构、信息量、CTA | | |
74
+ | 目标受众及其情境 | | 场景、语言、节奏、功能优先级 | | |
75
+ | 核心卖点与必须展示功能 | | 页面状态、镜头、文案 | | |
76
+ | 时长/画幅/语言 | | 镜头数、字幕密度、构图 | | |
77
+ | 音乐/配音 | | 节奏、停顿、SFX 留白 | | |
78
+ | 数据合规口径 | | 采集、mock、打码、终检 | | |
79
+ | 视觉方向 | | tokens、材质、转场语气 | | |
80
+ ```
81
+
82
+ 表只记录对当前视频会产生实际影响的项。无法确定的项保留在“需要确认项”,
83
+ 每轮合计只问 1–3 个;已经确认的项不得再次提问。后续的视觉方向、镜头映射、
84
+ 分镜、素材采集、声音设计与终检都必须能追溯回此表,并在设计 spec 中保存。
85
+
86
+ ## 3. 视觉方向
87
+
88
+ 从页面、源码或 computed styles 提取字体、色板、圆角、信息密度、光感和动效
89
+ 性格。视觉方向分两轮确认:
90
+
91
+ 1. 先给出最多 3 个根据当前项目生成的文字方向。每个方向说明:名称、一句话
92
+ 视觉主张、3–5 个关键词、字体/色彩/材质、镜头运动性格、适合原因和取舍。
93
+ 只有产品确实适合纸张、编辑部或叙事质感时,才把 Ink Press 列为候选;不能
94
+ 因为仓库里有它就固定加入。
95
+ 2. 用户选出 1–2 个入围方向,或明确授权 Agent 自选。对入围方向制作一个纯
96
+ HTML/CSS 的实际 styleframe 对比页:每个方向展示 2–3 张 1920×1080 的
97
+ 静态关键画面(例如品牌开场、核心功能、品牌收尾),使用当前产品的真实
98
+ 页面素材或已提取的视觉 token,不写 Remotion 代码、不渲染完整视频。
99
+ 3. 用 Playwright/Puppeteer 截出 styleframe 对比图,展示并列方向的字体、色板、
100
+ 材质、构图、光感和信息密度。用户确认最终方向后,才能进入功能到镜头映射。
101
+
102
+ Styleframe 用来确认静态视觉语言,不能单独证明缓动、运镜速度或节奏;这些仍需
103
+ 结合动效 tokens、Gallery 参考样片判断。若动效差异无法靠文字和样片判断,再做
104
+ 短的运动测试。用户已经提供严格品牌规范、明确参考片、直接选定 Ink Press,或
105
+ 明确授权 Agent 自选并跳过视觉确认时,可以记录理由后跳过 styleframe 对比。
106
+
107
+ ## 4. 功能到镜头映射
108
+
109
+ 先列产品功能,再扫描 `references/shots/` 各卡 frontmatter 的用途、能量、建议
110
+ 时长和限制。给每个必须展示的功能推荐首选和备选镜头:
111
+
112
+ | 功能 | 首选镜头 | 备选镜头 | 画面要表达什么 | 需要的页面状态 |
113
+ |---|---|---|---|---|
114
+
115
+ 用户可以接受、替换、删除或授权 Agent 自选。确定映射后,必须完整读取选中卡片,
116
+ 并按其“参考实现”定位准确 demo 源码;没有合适镜头时可以新写,但要说明新写范围
117
+ 和验证风险。Gallery 标为“仅供参考,需要自定义实现”的样式不默认推荐;用户明确
118
+ 点名后才允许自定义实现,并把风险写进设计 spec。
119
+
120
+ 这张映射表不是完整分镜,不得在用户确认映射后直接开始制作。它只确定“哪个
121
+ 产品功能使用哪一种镜头语法”,之后还必须进入第 5 节,展开镜头顺序、时长、
122
+ 页面状态、具体动作、素材、字幕、转场和声音。
123
+
124
+ ## 5. Gallery 镜头名称解析
125
+
126
+ Gallery(https://vincentwei1021.github.io/video-shotcraft/)只是用户浏览和挑选
127
+ 动态样片的界面,镜头定义和实现源码已经包含在本仓库。用户不需要描述动画,
128
+ 只需复制并提供镜头名。
129
+
130
+ 收到镜头名后按以下顺序处理:
131
+
132
+ 1. 读取 `gallery/api/library.json`,用其中的 `cards[].name` 校验 `card-name`,
133
+ 用该卡的 `styles[].key` 校验 `style-key`;不要用模糊猜测代替索引校验;
134
+ 2. 用索引中的 `source` 定位并完整读取 `references/shots/*.md`;
135
+ 3. 按卡片“参考实现”的明确路径,把具体样式解析到准确的 demo TSX;若文档只写
136
+ demo 目录,读取目录文件并根据导出名、注释和样式语义确定对应文件;
137
+ 4. 将索引中的 `styles[].media.url` 解析为本地 `gallery/media/` 参考样片,并在
138
+ 设计 spec 记录:卡名、style-key、卡片文档、准确 demo TSX、参考样片;
139
+ 5. 如卡片需要通用组件,再读取并复制 `assets/lib/` 的对应文件;
140
+ 6. 保留 demo 中已经调校的缓动、时值配比、遮罩时机和“已知坑/命门”参数;
141
+ 7. 只替换目标产品的截图、布局坐标、文案、品牌 token 和必要的构图参数。
142
+
143
+ Gallery 可能复制出两种形式:
144
+
145
+ ```text
146
+ spotlight-hero-card
147
+ shot-transitions · whip-pan
148
+ ```
149
+
150
+ - 只有卡名:使用卡片默认变体;如果同一卡的多个变体表达差异明显,Agent 先按
151
+ 前后镜头和产品气质推荐一个具体变体,并说明原因,必要时让用户确认。
152
+ - `卡名 · 样式名`:优先使用用户点名的具体变体,读取对应实现,不擅自换式。
153
+ - 名称不存在:报告无法匹配,并给出仓库中最接近的真实卡名;不要凭名字臆造。
154
+ - 索引标为“仅供参考,需要自定义实现”:不主动推荐;用户明确点名后,明确说明
155
+ 该样式没有可复用的完整实现,按配方参数和参考样片制作,并把实现风险写进设计 spec。
156
+ - 索引标为“缺少预览”:可读取准确源码并用于制作,但不得声称已对照动态样片。
157
+
158
+ 严禁只根据卡名含义重新写一套近似动画。卡片文件提供语义,demo 源码才是参数
159
+ 真相。用户选中多个镜头后,把它们与产品功能映射,再继续生成完整分镜。
160
+
161
+ ## 6. 分镜确认
162
+
163
+ 把确认的功能和镜头组合成分镜,并至少包含:
164
+
165
+ ```text
166
+ | # | 时间/帧 | 功能信息 | 镜头卡 | 主动作 | 素材来源 | 字幕/SFX |
167
+ ```
168
+
169
+ 检查每镜只讲一个主要动效,品牌字标 hold 至少 1 秒,批量动效收尾至少静止
170
+ 0.5 秒,避免重复 tagline 或让同一种动效反复当主角。用户确认分镜与最终设计 spec
171
+ 后,二者共同构成**制作放行**:不重新打开此前已确认的业务或创意问题,只补实现
172
+ 必要的未决项。此时再做最终全量素材采集(整页 2x 截图、元素切片、layout.json),
173
+ 把批准分镜转成帧级时间轴,再进入 `pipeline.md` 阶段 4 的最终素材采集、阶段 5
174
+ 逐镜头实现、阶段 6 声音设计和阶段 7 终检。
175
+
176
+ 将用户确认后的产品简报、需求到执行决策表、视觉方向/tokens、styleframe 或跳过理由、
177
+ 功能到镜头映射、Gallery 卡名与具体变体、最终分镜和数据合规口径保存为稳定的设计 spec
178
+ (或在终检交接时完整提供),作为 `final-review.md` 的审查基准。不要让独立
179
+ 审查 Agent 依赖零散聊天记录猜测用户确认过什么。
180
+
181
+ ## 默认与跳过规则
182
+
183
+ 用户授权 Agent 全权决定时,仍须根据产品内容动态推导:从视觉 token 生成方向,
184
+ 从核心功能与页面状态选择镜头,从发布渠道、功能数量和阅读密度推荐时长/画幅/
185
+ 语言,从品牌能量与节奏推荐音乐。只有项目和用户描述都没有相关线索时,才使用
186
+ 30–38 秒、1920×1080 作为兜底。数据口径按项目风险决定:公开演示数据可沿用,
187
+ 客户、个人或内部数据改用虚构/脱敏内容。首次整片渲染前仍需提交分镜备案,除非
188
+ 用户明确要求不看中间产物。
189
+
190
+ ## 每轮回复格式
191
+
192
+ ```text
193
+ 当前阶段:
194
+ 已确认:
195
+ 本轮需要确认:
196
+ 确认后交付:
197
+ ```
@@ -0,0 +1,125 @@
1
+ # music-beat-sync — BGM 节奏分析与卡点方法论
2
+
3
+ 强节奏 BGM 的片子,**所有转场和关键动效必须落在拍上**。本文档给出从
4
+ "拿到一首曲子"到"成片切点误差 ≤3 帧"的完整可复现流程。实测:一支
5
+ 70s、18 镜、131.97 BPM 的强鼓点宣传片按此法制作,渲后回测全部切点
6
+ 误差 ≤2.2f(感知阈值约 3f)。
7
+
8
+ ## 目录
9
+
10
+ - 何时启用
11
+ - 节拍网格测定
12
+ - 鼓点与重音定位
13
+ - 用拍号编排时间线
14
+ - 渲后回测
15
+ - 工具备忘
16
+
17
+ ## 0. 何时启用
18
+
19
+ 阶段 0 先检查用户是否已指定音乐。
20
+ - 已选好 → 走本文档:先分析节奏,再让分镜的每个切点/动效锚到拍号
21
+ - 未选 → BGM 选型放到阶段 6(见 pipeline.md),此时动效时间线按
22
+ 内容节奏排,不强行卡点
23
+
24
+ ## 1. 节拍网格测定(不要相信 beat_track 的 tempo 标量)
25
+
26
+ 用 `uv run --with librosa --with scipy --python 3.11` 跑一次性脚本:
27
+
28
+ ```python
29
+ import numpy as np, librosa
30
+
31
+ y, sr = librosa.load("bgm.mp3", sr=None, mono=True)
32
+ tempo, beats = librosa.beat.beat_track(y=y, sr=sr, tightness=400, units="time")
33
+
34
+ # 关键一步:对 beat 序列做最小二乘等距网格拟合,求真实 BPM 与相位。
35
+ # beat_track 返回的 tempo 标量可能偏差 2%+(实测 129.2 vs 真值 131.97),
36
+ # 但它输出的 beat 时刻序列本身是好的——用整个序列拟合直线 t_i = t0 + i*T:
37
+ i = np.arange(len(beats))
38
+ A = np.vstack([i, np.ones_like(i)]).T
39
+ (T, t0), *_ = np.linalg.lstsq(A, beats, rcond=None)
40
+ bpm = 60.0 / T
41
+ residual = beats - (t0 + i * T)
42
+ print(f"BPM={bpm:.2f} t0={t0:.4f}s T={T:.5f}s 残差±{np.abs(residual).max()*1000:.0f}ms")
43
+ ```
44
+
45
+ 验收标准:残差 ≤ ±15ms(半帧内)说明曲子是机器鼓点、网格可信;
46
+ 残差大说明有变速段,需要分段拟合。
47
+
48
+ ## 2. 鼓点/重音定位(决定大 slam 钉在哪一拍)
49
+
50
+ ```python
51
+ from scipy.signal import butter, sosfilt
52
+ sos = butter(4, [40, 160], btype="band", fs=sr, output="sos") # kick 频段
53
+ kick = sosfilt(sos, y)
54
+ env = librosa.onset.onset_strength(y=kick, sr=sr)
55
+ times = librosa.times_like(env, sr=sr)
56
+ # 把每个整数拍位置的 env 能量列出来,排序找最强 hit:
57
+ for n in range(int((times[-1]-t0)/T)):
58
+ t = t0 + n*T
59
+ e = env[np.argmin(np.abs(times - t))]
60
+ # 记录 (拍号 n, 能量 e),取 top 若干作为"大 slam 候选拍"
61
+ ```
62
+
63
+ 产出两样东西进设计 spec:
64
+ - **音乐结构表**:能量从第几拍起满、breakdown/静默段在第几拍——
65
+ 分镜的能量曲线要贴着它排(breakdown 处放品牌呼吸位是天然结构)
66
+ - **最强 hit 拍号清单**:全片 2–3 个最大 slam(开题/高潮/收尾)
67
+ 必须钉在这些拍上
68
+
69
+ **易错点(实测踩过)**:最大 slam 钉在了 b52.5(两拍之间)而最强
70
+ kick 在整数拍 b52 上,渲后回测偏差 +5.75f。强鼓点曲的重音几乎总在
71
+ 整数拍上,半拍钉点必须有 env 数据支持,不能凭听感。
72
+
73
+ ## 3. 时间线用拍号写,不用帧号写
74
+
75
+ Remotion 项目里把网格常量化,一切镜头边界/动效关键帧用 `beatF()` 表达:
76
+
77
+ ```ts
78
+ export const FPS = 30;
79
+ export const BEAT0 = 0.2244; // t0,秒
80
+ export const BEAT_INT = 0.45465; // T,秒
81
+ export const beatT = (n: number) => BEAT0 + n * BEAT_INT; // 拍→秒
82
+ export const beatF = (n: number) => Math.round(beatT(n) * FPS); // 拍→帧
83
+
84
+ export const SHOTS = {
85
+ s0_open: { from: 0, to: beatF(8) },
86
+ s1_slam: { from: beatF(8), to: beatF(16) },
87
+ // …每个镜头边界都是 beatF(整数拍);镜头内部动效用局部拍:
88
+ };
89
+ export const localBeat = (shot: {from: number}, n: number) => beatF(n) - shot.from;
90
+ ```
91
+
92
+ 好处:换曲/换段落时改两个常量全片重排;SFX 钉帧表也写 `beatF(n)`,
93
+ 与画面共用同一事实源,永不错位。
94
+
95
+ 设计规矩:
96
+ - 镜头时长以拍为单位(4/8 拍一镜),加速段可用半拍/四分之一拍阶梯
97
+ (如 CUT_BEATS = [48, 49.5, 50.5, 51, 51.25] 的收敛逼近)
98
+ - 每拍一动作的步进类镜头(清单逐项、马赛克逐格)直接 map 拍号
99
+ - BGM 鼓点已密时 SFX 克制:只钉画面独有动作,大 slam 只给 2–3 处,
100
+ 其余让位给 BGM 的鼓
101
+
102
+ ## 4. 渲后回测(闭环,必做)
103
+
104
+ ```bash
105
+ ffmpeg -i out/promo.mp4 -vn -acodec pcm_s16le /tmp/render-audio.wav
106
+ ```
107
+
108
+ 对渲出音轨重跑第 1 步的网格拟合(BGM 从视频里量,不从源文件量——
109
+ 这样连音频编码/对齐偏移一起验),然后逐一对比:
110
+ **设计切点帧号 vs 最近测得拍的帧号**,输出误差表。
111
+
112
+ | 判定 | 误差 |
113
+ |------|------|
114
+ | 合格 | ≤3f(感知阈值) |
115
+ | 理想 | ≤1.5f |
116
+ | 必修 | >3f 的任何切点 |
117
+
118
+ 误差超标的钉点回第 3 步改拍号或帧偏移,重渲再测,直到全表合格。
119
+
120
+ ## 5. 工具备忘
121
+
122
+ - librosa 不在系统 python:`uv run --with librosa --with scipy --python 3.11 script.py`
123
+ - 只有人声/复杂编曲的曲子 beat_track 会漂:先用 `librosa.effects.hpss`
124
+ 分离打击成分再测
125
+ - 变速曲(DJ 转场、accelerando):按能量段分段拟合,各段各自 t0/T