dsh-drawai 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/README.md +4 -3
  2. package/lib/index.js +7777 -7719
  3. package/lib/motion/asset-pack.js +394 -394
  4. package/lib/motion/assets.js +291 -291
  5. package/lib/motion/demo-assets-lock.js +10 -10
  6. package/lib/motion/mgstyles/vendor/README.md +28 -28
  7. package/lib/motion/mgstyles/vendor/modules/d3/LICENSE +13 -13
  8. package/lib/motion/mgstyles/vendor/modules/d3/dist/d3.min.js +2 -2
  9. package/lib/motion/mgstyles/vendor/modules/opentype.js/LICENSE +20 -20
  10. package/lib/motion/mgstyles/vendor/modules/opentype.js/dist/opentype.mjs +14460 -14460
  11. package/lib/motion/mgstyles/vendor/modules/simplex-noise/LICENSE +21 -21
  12. package/lib/motion/mgstyles/vendor/modules/simplex-noise/dist/esm/simplex-noise.js +465 -465
  13. package/lib/motion/mgstyles/vendor/modules/topojson-client/LICENSE +13 -13
  14. package/lib/motion/mgstyles/vendor/modules/topojson-client/dist/topojson-client.min.js +2 -2
  15. package/lib/motion/render.js +179 -179
  16. package/lib/motion/shotcraft/upstream/SKILL.md +286 -286
  17. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -54
  18. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -200
  19. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -45
  20. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -20
  21. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -65
  22. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -151
  23. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -129
  24. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -75
  25. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -40
  26. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -11
  27. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -10
  28. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -49
  29. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -210
  30. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -423
  31. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -170
  32. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -157
  33. package/lib/motion/shotcraft/upstream/demos/README.md +120 -120
  34. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -112
  35. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -647
  36. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -316
  37. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -82
  38. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -115
  39. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -243
  40. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +388 -388
  41. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -250
  42. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -305
  43. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -246
  44. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -390
  45. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -138
  46. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -542
  47. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -315
  48. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -299
  49. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -173
  50. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -348
  51. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -366
  52. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -279
  53. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -184
  54. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -390
  55. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -155
  56. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -303
  57. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -290
  58. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -278
  59. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -307
  60. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -215
  61. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -299
  62. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -232
  63. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -290
  64. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -273
  65. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -167
  66. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -536
  67. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -164
  68. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -175
  69. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -197
  70. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -241
  71. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -279
  72. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -230
  73. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -345
  74. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -275
  75. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -229
  76. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -312
  77. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -222
  78. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -295
  79. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -329
  80. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -315
  81. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -264
  82. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -260
  83. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -263
  84. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -123
  85. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -187
  86. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -175
  87. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -305
  88. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -350
  89. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -352
  90. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -218
  91. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -297
  92. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -157
  93. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -218
  94. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -202
  95. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -265
  96. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -457
  97. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -446
  98. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -249
  99. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -278
  100. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -332
  101. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -358
  102. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -201
  103. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -200
  104. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -208
  105. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -341
  106. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -389
  107. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -293
  108. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -183
  109. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -245
  110. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -222
  111. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -223
  112. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -217
  113. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -343
  114. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -357
  115. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -187
  116. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -333
  117. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -274
  118. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -270
  119. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -430
  120. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -252
  121. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -106
  122. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -288
  123. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -362
  124. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -168
  125. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -310
  126. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -261
  127. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -459
  128. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -294
  129. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -161
  130. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -248
  131. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -359
  132. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -227
  133. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -162
  134. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -248
  135. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -186
  136. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -355
  137. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -272
  138. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -262
  139. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -217
  140. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -285
  141. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -205
  142. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -178
  143. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -147
  144. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -143
  145. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -134
  146. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -217
  147. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -198
  148. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -221
  149. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -312
  150. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -261
  151. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -121
  152. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -153
  153. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -179
  154. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -140
  155. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -309
  156. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -191
  157. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -292
  158. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -135
  159. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -124
  160. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -255
  161. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -173
  162. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -225
  163. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -141
  164. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -137
  165. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -147
  166. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -409
  167. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -280
  168. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -271
  169. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -385
  170. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -312
  171. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -303
  172. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -77
  173. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -311
  174. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -307
  175. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -349
  176. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -255
  177. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -244
  178. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -217
  179. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -652
  180. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -153
  181. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -238
  182. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -324
  183. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -354
  184. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -101
  185. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -129
  186. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -297
  187. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -57
  188. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -155
  189. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -175
  190. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -153
  191. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -146
  192. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -226
  193. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -1
  194. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -193
  195. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -121
  196. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -199
  197. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -183
  198. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -257
  199. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -382
  200. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -111
  201. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -50
  202. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -95
  203. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -41
  204. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -52
  205. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -39
  206. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -39
  207. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -57
  208. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -51
  209. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -46
  210. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -52
  211. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -43
  212. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -42
  213. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -48
  214. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -52
  215. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -45
  216. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -46
  217. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -44
  218. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -63
  219. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -54
  220. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -58
  221. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -35
  222. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -53
  223. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -42
  224. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -50
  225. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -46
  226. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -56
  227. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -49
  228. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -50
  229. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -53
  230. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -53
  231. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -55
  232. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -52
  233. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -60
  234. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -57
  235. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -51
  236. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -41
  237. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -53
  238. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -60
  239. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -55
  240. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -57
  241. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -47
  242. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -37
  243. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -54
  244. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -36
  245. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -56
  246. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -56
  247. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -40
  248. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -60
  249. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -57
  250. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -73
  251. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -87
  252. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -55
  253. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -50
  254. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -59
  255. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -38
  256. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -38
  257. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -59
  258. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -39
  259. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -61
  260. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -52
  261. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -50
  262. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -66
  263. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -43
  264. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -38
  265. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -38
  266. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -56
  267. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -44
  268. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -38
  269. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -63
  270. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -57
  271. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -63
  272. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -58
  273. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -45
  274. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -55
  275. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -49
  276. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -42
  277. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -42
  278. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -45
  279. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -48
  280. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -55
  281. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -43
  282. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -41
  283. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -42
  284. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -59
  285. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -55
  286. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -65
  287. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -42
  288. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -64
  289. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -64
  290. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -54
  291. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -91
  292. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -51
  293. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -66
  294. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -38
  295. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -66
  296. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -58
  297. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -61
  298. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -64
  299. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -45
  300. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -41
  301. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -51
  302. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -42
  303. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -63
  304. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -57
  305. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -75
  306. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -59
  307. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -67
  308. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -60
  309. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -66
  310. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -40
  311. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -45
  312. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -62
  313. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -55
  314. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -37
  315. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -55
  316. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -50
  317. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -43
  318. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -55
  319. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -51
  320. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -51
  321. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -56
  322. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -49
  323. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -57
  324. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -36
  325. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -64
  326. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -47
  327. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -170
  328. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -157
  329. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -103
  330. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -44
  331. package/lib/motion/shotcraft/upstream/template/package.json +20 -20
  332. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -6
  333. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -17
  334. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -65
  335. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -48
  336. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -24
  337. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -192
  338. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -111
  339. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -150
  340. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -158
  341. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -468
  342. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -552
  343. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -411
  344. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -200
  345. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -324
  346. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +388 -388
  347. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -4
  348. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -7
  349. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -68
  350. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -1
  351. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -24
  352. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -74
  353. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -91
  354. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -213
  355. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -15
  356. package/lib/motion/style-frames.js +306 -306
  357. package/lib/motion/sync.js +214 -214
  358. package/lib/motion-project.js +105 -105
  359. package/lib/motion-render-worker.js +174 -174
  360. package/lib/routing/router.js +222 -222
  361. package/lib/routing/vendor/README.md +96 -96
  362. package/lib/routing/vendor/libavoid-routing.js +753 -753
  363. package/lib/routing/vendor/libavoid.min.js +59 -59
  364. package/lib/video-trace-pool.js +128 -128
  365. package/package.json +1 -1
  366. package/LICENSE +0 -4175
@@ -1,193 +1,193 @@
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
- ### R4. 卡点约束时机不放大幅度:全画面级节拍冲击全片 ≤3 处,默认只动元素层
39
- 规则:强节奏 BGM 片"切点落拍"不等于"逐拍打画面"——作用于整画面/相机层的冲击(整画面 scale 泵/震屏/闪帧/负片帧)视同大 slam 管理:全片 ≤3 处、钉 music-beat-sync §2b 的最强 hit 清单、相邻两处间隔 ≥16 拍;其余拍点动效只作用主角元素层;节拍泵类连打单次 ≤4 拍、全片 ≤1 次。kick 命中表是候选池不是触发器。**计数单位是一次手法/set-piece 使用,不按内部子事件数**:一张卡的一次应用(paparazzi 三连闪、trailer-bumper 三刀切)算一个名额,卡自身标注的连发结构与全片次数上限照旧生效,不因本条被逐帧重复计数。
40
- 判例:用户反馈(2026-08-22):"如果给音乐,镜头会随节奏抖动,影响观感"——根因是把 music-beat-sync 的 kick→冲击映射执行成了逐拍全画面泵:强鼓点曲 kick 几乎每拍都有,逐拍"被砸"叠上相机层就是节拍频率的画面抖动。与 Q3 同族:Q3 封噪声性抖动(handheld),本条封节拍性抖动。
41
- 自检:高能段任取连续 8 拍逐帧回放:整画面 scale/位移是否在逐拍脉冲?数全片作用于整画面/相机层的冲击:超过 3 处了吗?每处对得上最强 hit 清单吗?
42
-
43
- ---
44
-
45
- ## 质感·运镜·构图(Q)
46
-
47
- ### Q1. 复刻既有页面必须真实截图;手搓 UI 限非复刻场景且质量/表达达标;数据按风险口径处理
48
- 规则:凡是表现产品既有页面的镜头,第一步就用无头浏览器截真实页面(整页纹理 + 元素级抠图 + 坐标 json),不手搓仿真贴图复刻;非复刻场景(抽象开场/品牌段/页面上不存在的独立展示组件)允许手搓 UI,但质量(出版级质感,对照 Q10 标准)与表达明确性(观众一眼看懂它是什么)是硬门槛,达不到回截图路线。公开演示数据只有在产品简报明确确认后可保留;客户、个人、内部、密钥、实时或其他敏感内容必须先虚构、脱敏或冻结。对手搓素材同样适用该口径。
49
- 判例:用户:"我希望的是用真实的页面,然后加入动画"、"不要用真实数据,造一份fake的,不要提到客户名字"。改用真实 dashboard 页面重建,此前一下午手搓纹理复刻版整体作废。修订(2026-07-13 用户裁决):"不一定都要来自真实页面截图,可以手搓UI组件,只是要保证质量和表达的明确性"——判例约束收窄为"不用手搓复刻既有页面"。
50
- 自检:每块 UI 素材:它在复刻既有页面吗?是则必须来自截图;手搓件的质感和表达能过 Q10 级审视吗?源数据是否符合已确认的数据口径,且不含未授权的客户、个人、内部或密钥信息?
51
-
52
- ### Q2. 3D 透视下 UI 纹理按原生尺寸 rasterize 后缩小使用;文字发糊先查纹理分辨率链路
53
- 规则:3D 场景里的 UI 纹理按显示尺寸的 2–4 倍原生栅格化、在 3D 里向下采样(放大走布局级 CSS zoom 而非 transform scale);文字模糊先查栅格化路径,别先动相机/DoF。
54
- 判例:用户三轮追打:"明显卡片变得模糊了"、"还是不够高清……有像素点的方块"、"第一个镜头的文字清晰度还是没有解决"。先调 DoF 治标无效,改成按原生尺寸 rasterize 拿到真正 4x 锐度,最后把 CSS zoom 推广到全部 3D 页面层根治。
55
- 自检:放大/透视镜头逐帧截图看文字边缘:有没有像素方块?纹理源分辨率是否 ≥ 显示尺寸 2 倍?
56
-
57
- 技法展开(原 hires-rasterize-3d-text 技法卡沉淀于此,参考实现 template/src/aifl/live/PageCam.tsx):
58
- - **根因**:Chromium 对 3D 合成层按 1920 布局宽栅格化再 GPU 放大——内容先降采样后放大必糊,与相机/景深参数无关。
59
- - **解法**:放大量不走 `transform: scale(zoom)` 而走 CSS `zoom` 属性(布局级缩放),让 Chromium 按放大后的设备尺寸栅格化,从高清源向下采样。坐标要按 `Tx = 960/zoom − cx` 换算保持与平面模式取景一致(PageCam.tsx:100-114 有完整推导),漏换算会跑焦点。
60
- - **配套**:全页 2x(deviceScaleFactor: 2)、hero 元素单独 4x 元素级截图,推进期 6f 交叉淡入盖住低倍页面纹理(淡入太长会看到两层错位)。
61
- - **排查顺序**:文字糊 → 先查纹理源分辨率链路(截图倍率→栅格化路径→缩放方式),最后才考虑相机。DoF 只做氛围,永远不是清晰度的解法(实证无效)。验证用逐帧截图裁剪放大看字边缘,肉眼看缩略图发现不了。
62
-
63
- ### Q3. 镜头要稳:产品宣传片默认不加手持抖动
64
- 规则:亮场 UI 宣传片禁用 handheld shake;相机噪声只在暗场氛围片明确追求纪实感时用极小值,且必须自查渲染帧确认无意外抖动。
65
- 判例:用户:"镜头视角很差,而且有小抖动不知道怎么回事"。去掉 handheld shake、重新构图后抖动零投诉;另一支暗场氛围片保留 shake=0.02 未被投诉——适用边界由此划定(推测边界)。
66
- 自检:逐镜头看渲染帧:有没有任何非叙事意图的相机抖动?
67
-
68
- ### Q4. 高光/扫光特效宁缺毋滥:不群发,一个镜头最多给主角一次,且必须裁进圆角边界
69
- 规则:glint/泛光划过类特效不做群发——批量元素入场靠运动本身而非逐个发光;保留的光效必须被承载元素的 border-radius/overflow 裁剪,光溢出圆角是廉价感的典型来源。光效类技术路径本身不封杀:单点、给主角、实现质量过硬的 sheen/泛光可以做,做完对着渲染帧自问"好看吗"再交。
70
- 判例:用户两次否决:"不需要每个卡片都闪烁一下"、"卡片出现时的泛光划过的特效取消,不好看"。据此去掉逐卡 glint、撤掉泛光划过、把 chip 高光扫光裁进圆角边界内。澄清(2026-07-13 用户):否决针对的是"实现的版本不好看","不代表这个技术路径/特效类型就不可行"——群发禁令与圆角裁剪不变,但泛光/扫光类手法可以带着更高实现标准重试。
71
- 自检:数一数全片 glint/sweep 出现次数:有没有超过"主角元素一次"?每处光效是否被圆角裁剪?留下的每处光效,正常速度回放自己看过并觉得好看吗?
72
-
73
- ### Q5. 开场只给一个主角:单主体 + 完整动作弧,胜过群体群舞
74
- 规则:开场信息宁少而聚焦——一个主角元素、一条完整弧线(聚光→推近→悬浮→描边光→归位),多元素并舞撑不起第一印象。
75
- 判例:用户:"第一个镜头,只需要聚焦在一张卡片,并让它更有质感"。开场一夜推倒六次,单卡结构定型后直到成片未再动结构。
76
- 自检:开场镜头有几个"想让观众看"的东西?主角的动作弧是否完整(起-承-落)?
77
-
78
- ### Q6. 机位服务可读性:信息密集镜头正视,文字特写侧向水平,风格化倾斜逐镜头验证
79
- 规则:风格化机位按镜头逐个决定——叙事/情绪镜头可倾斜,列表/堆叠等信息密集镜头保持正视;含文字的卡片特写用侧向水平机位,避免大角度仰拍/俯拍破坏文字可读性;禁止全局一刀切套用某种机位风格。
80
- 判例:全片统一倾斜化被用户否决"做的并不好……对于内容列表页(模板片中为论文列表)的改动也不好,回滚",随即单独把列表页 revert 回正视;用户:"聚焦到一个卡片……是从左侧拍摄而不是从下方",改为左侧 hero 机位。
81
- 自检:每个倾斜机位镜头:斜的理由是什么?画面里的文字在这个角度还读得清吗?
82
-
83
- ### Q7. 物件特写四件套:侧面倾斜角 + 可感知高度 + orbit 环绕 + 反差深色材质背景
84
- 规则:物件/资产特写镜头做足环境戏——侧面倾斜机位、堆叠出可感知的体积高度、镜头绕主体环绕,背景用与主场景反差的深色材质(如拉丝金属),再用拉远同步过渡回主场景。
85
- 判例:用户:"镜头应该是倾斜从侧面拍摄,堆叠的项目应该有一定的高度,然后镜头围着堆叠做旋转。真个场景应该是暗色的金属质感背景。然后在镜头拉远,同时出现dashboard背景"。从 pile 特写 orbit 初版做到定稿——暗色拉丝金属背景 + 更高的堆叠 + 环绕运镜。
86
- 自检:特写镜头的主体有没有体积感和环境反差?相机是死机位还是有环绕/拉远?
87
-
88
- ### Q8. 结尾做成"发布会合影":全片元素四方飞入围住字标,能量推到全片峰值
89
- 规则:多功能产品的收尾用"全家福"结构——每个已展示过的功能抽一个代表元素多方向飞入定格;规格匹配全片能量峰值(crane 运镜 + 舞台光 + 粒子),初版收尾几乎总是偏保守,默认加码一档。
90
- 判例:用户:"各个页面的核心元素从不同方向飞来……形成一个类似于合影的画面"、"加一些更多的特效、动画、运镜……像一个产品发布"。从合影式组装做到发布会级别——crane 运镜、舞台光、金粉。
91
- 自检:结尾是不是全片能量最高点?合影里是否每个已展示的功能都有代表元素?
92
-
93
- ### Q9. 飞入动画的终点必须是页面布局里的真实槽位,元素不悬浮在页面上方
94
- 规则:元素飞入后要"嵌入"页面(归位到真实格位、扩展滚动流),不落地悬浮其上会显得假。
95
- 判例:用户:"研究问题的list应该从空中飞入,嵌入dashboard"、"不要让10张项目卡悬浮其上,而是接着往下scroll,然后排到下面去,不要重叠"。据此让行元素飞入并嵌入布局、把网格改成随滚动延展(近整文件重写)。
96
- 自检:每个飞入元素落定后,它在页面布局里有真实坐标吗?有没有元素永久浮在页面之上?
97
-
98
- ### Q10. 文档类镜头的 mock 内容要出版级:原生排版、文字铺满、完整版式入镜
99
- 规则:观众会读清屏幕上每个字——文档/报告类镜头的 mock 必须用产品原生排版灌满真实密度的假内容,侧栏/评论栏等版式元素完整入镜;"贴图+标语"级别的假文档整镜头返工。
100
- 判例:用户:"周报内容的文字要用和现在排版和风格一致的,只是内容mock,文字内容铺满,且要完整展示左边栏和右边评论栏"(模板片中该镜头为周报页)。初版"贴图+标语"级假文档被整镜头重做,最终版为原生排版全量 mock、双栏完整入镜。
101
- 自检:暂停在文档镜头任意一帧:内容读起来像真的吗?版式(侧栏/评论/页眉)完整吗?
102
-
103
- ### Q11. 要被读的文字有最低有效字高:字幕 ≥5% 帧高,辅助文字 ≥3%;按最终像素量,不按 fontSize
104
- 规则:1080p 成片按手机/内嵌小窗播放校准可读性——镜头叙事字幕**有效字高 ≥56px(≥5.2% 帧高,推荐 60px 档)**,副标题/统计/URL 等辅助文字 ≥32px(≥3%);有效字高 = fontSize × 全部祖先 scale × 透视压缩(3D 镜头按 `cos(rotY)` 估算),验收量渲染帧上的实际像素,不看代码里的 fontSize。文字只有两态:**"纹理"**(截图 cutout 里的装饰小字,必须明显虚化/降亮度让观众不去读)或 **"要读"**(达标字号 + 足够对比度,压过浅色背景时配 scrim/投影),不存在"重排了但仍读不清"的中间态——读不到的文字宁可删掉。收尾 URL/行动号召是全片最不该小的一行。
105
- 判例:用户(2026-07-25):"里面有几个镜头,你可以发现它配的字很小……现在那些镜头里面的字太小了,根本就看不见"。审查 gallery 介绍片:S1/S2/S4 字幕 38–40px(约 3.5% 帧高)、S6 副句 30px、收尾 URL 25px 全部低于线,其中 S2 面板"为可读性重排"的副标题只给了 19px——重排却没达标即中间态反例;六处统一提到 60/40/34px 档后整改通过。
106
- 自检:抽每个含字幕的镜头一帧缩到 480px 宽(模拟手机小窗):每句还读得清吗?逐帧量"要读"文字的实际像素高:字幕 ≥56px、辅助 ≥32px 吗?有没有哪块文字处于"想让人读但读不清"的中间态?
107
-
108
- ---
109
-
110
- ## 声音(S)
111
-
112
- ### S1. 配乐与音效按"片种"选,不按"事件"选:强鼓点电子底 + 电影系 SFX 词汇,禁游戏音包音色(禁音色不禁动作)
113
- 规则:产品宣传片 SFX 词汇表 = whoosh(运镜)/impact(落地)/riser(铺垫)/sparkle(光效)/transition(转场),禁用游戏音包音色;BGM 选强鼓点、强节奏的电子底(tech-house 类),候选曲必须垫进成片试听——单听曲子无法判断气质。
114
- 判例:用户:"这个配乐和音效都太像游戏了。你帮我找那种鼓点强的,节奏感强的,然后音效要那种典型的产品宣传视频的音效"。用 Mixkit tech-house + whoosh/impact/riser/sparkle 整批替换掉此前引入的全部 Kenney CC0 游戏音;BGM 34 分钟内三易其稿后定稿沿用。
115
-
116
- **禁的是音色,不是动作**(易误读,务必分清):本条否掉的是"合成器 pluck/bloop、卡通弹跳、game-over 音阶"这类游戏音包**质感**,不是"不许给点击配声"。画面里真有点击/开关/碎裂,就该配它的拟音——那是 S4 的要求。判别问句:这个音像**真实世界里那个物件发出的声音**(快门、机械开关、玻璃、纸),还是像**游戏引擎里的反馈提示音**?前者用,后者弃。
117
- - 模板片自己就用 `click-camera.mp3` 且给了全片最高 SFX 响度 0.6——真实快门声,不是 UI 提示音。
118
- - Freesound 的 UI 搜索结果也要逐个检查:真实开关拟音与合成 confirmation/tone/bleep/
119
- notification 常混在一起;后者只在片子刻意表现系统提示时使用,见 sound-design §3.3。
120
- - 真实玻璃、纸张等材质声属于拟音,按画面需求选取。
121
-
122
-
123
- 自检:闭眼只听音轨:像产品发布会预告,还是像手机游戏?BGM 是在成片里试听后选定的吗?每个 UI 类音效,是真实物件质感还是游戏反馈提示音?
124
-
125
- ### S2. SFX 逐拍钉帧管理;连发音效做双样本交替 + 音量阶梯递减 + 间隔加速,不同响度复读
126
- 规则:SFX 用"帧号 + 音源 + 音量"的声明式表集中管理,逐条注释对应的画面动作,杜绝凭感觉铺音效;同类元素连发时防机枪感靠三招——双样本交替、沿序列音量阶梯递减(如 0.40→0.25 六级)、间隔跟随动画曲线加速,密到糊成一片时让声音淡出成 swoosh(本仓库实证无 playbackRate 变调,防机枪不靠变调)。
127
- 判例:用户:"周报左侧栏的每周出现时可以换个音效,能配合每个周的出现的"(模板片中为周报页)。先立起逐拍钉帧的 SFX 帧号表结构(沿用至成片),再做 pluck 双样本交替、间隔 8→3f 加速,最后把 per-week pop 六连发音量做成 0.40→0.25 阶梯递减。
128
- 自检:每条 SFX 是否钉在具体帧号并注释了对应动作?连发段落听起来是"数得出来的节奏"还是机械复读?
129
-
130
- ### S3. 声音在画面锁定后做;时间线一动,SFX 全表重钉
131
- 规则:BGM/SFX 排在画面结构基本锁定之后;任何改变镜头时长/顺序的修改,收尾动作固定包含"全表 SFX 帧号重对"——音画错位是交付前必查项。
132
- 判例:用户:"改完这些后重新调整音效位置以匹配新的时间线"。据此按新时间线(总长 1085f)重钉全表 SFX;教训链:首版 SFX 钉完 11 小时后画面大改导致全表重钉,三次重钉中两次纯属画面返工的连带成本。
133
- 自检:本轮有没有镜头时长/顺序变化?变了的话 SFX 表逐条重对过了吗?
134
-
135
- ### S4. 拟音优先于装饰音:画面动作配该动作的真实声音,音频裁到与动作严格等长
136
- 规则:画面里发生什么动作就配什么声音(打字画面配键盘声、逐条落入配逐个 pop),泛用 swoosh 盖不住有辨识度的画面动作;长样本按画面段落裁剪(Sequence 截断),时长与动作严格等长。
137
- 判例:用户:"周报页面内容出现的时候可以配打字音效"(模板片中为周报页)。据此给文档页揭示配打字机音,keyboard.mp3 按语境裁 24f/44f 两个用途。
138
-
139
- 操作要点(sound-design §4.1):按新下载文件的实际测量确定播放窗口和增益。
140
- **>5s 的动作样本显式给 `durationInFrames`**,环境声按镜头长度铺,impact 混响保留自然尾音。
141
- **峰值 <-12dB 的轻音素材**:`volume` 是乘法系数,给到 1.0 仍可能被 BGM 盖住;
142
- 首选换素材或预处理,必要时给 >1 增益并以渲染产物验峰,处理后重测并更新来源记录。
143
-
144
-
145
- 自检:每个有辨识度的画面动作(打字/点击/落地)有没有自己的拟音?音效有没有拖到动作结束之后还在响?每条音效在成片里真的听得见吗(轻音素材音量够不够)?
146
-
147
- ### S5. 音画对齐补两项偏移:输出音轨偏移逐渲染管线实测统一扣,音源峰值滞后逐文件量
148
- 规则:渲出成片的整条音轨相对视频有固定滞后,根因在输出编码/封装链路(AAC encoder priming,48kHz 典型 2048 samples ≈1.28f@30fps;Remotion 跟踪 remotion-dev/remotion#7099),不是 `<Audio>`/`Sequence.from` 的行为——按渲染管线(Remotion 版本 + codec + sample rate + 容器)实测记档(渲出成片抽音轨,拿 2–3 个尖锐 SFX 原文件做归一化交叉相关,残差一致才算量准),补偿在渲染层的 from 计算式统一扣除,不逐条改帧号;音源自身的峰值滞后(峰值不在文件头)逐文件量。统一公式 `from = 目标峰值帧 − 峰值滞后 − 输出偏移`,方法与边界(截断型音效窗口不加长、片头 2f 内无法全补)见 sound-design §4.6。
149
- 判例:AiflPromo 实测 click 滞后 2032 samples、impact 2066 samples(≈1.27–1.29f),与 AAC priming 指纹吻合,渲染品 elst 未声明裁剪垫头;promo-ink 时代实测过 4f(≈133ms,远超 priming 量级,根因未验证)——常数不可跨管线搬运。不补时两项叠加最重一击晚 0.27s,明显读作音画不同步;卡点片里差 2–3 帧就足以让合理的卡点动效被读作无端抖动(2026-08-22 用户反馈的成因之一)。
150
- 自检:本管线的输出音轨偏移实测过吗(Remotion 版本/codec/采样率/容器随值记录在哪)?补偿是 from 计算式统一扣的还是散落在各条帧号里?带明显攻击峰的音源,峰值滞后量过了吗?
151
-
152
- ---
153
-
154
- ## 文案(C)
155
-
156
- ### C1. 文案在画面锁定后按最终镜头重写一遍,纯动画段落也配解说
157
- 规则:初稿文案只是占位——画面定稿后对照成片逐镜头重写;纯动画镜头配短解说 caption,不留"哑巴段落"(品牌收尾镜头除外,保持干净)。
158
- 判例:用户:"你根据我现在完整的视频内容,重新写文案的词,我感觉现在的和视频画面不是很匹配,再就是在动画的部分是不是也加一些解说?"。据此重写标题文案,并给实拍镜头补上 caption 解说。
159
- 自检:逐句对照:每句文案和它所在的画面匹配吗?有没有超过 3 秒的无解说动画段落?
160
-
161
- ### C2. 标语写"团队 + 产品功能名 + 具体收益",抽象隐喻词一律具体化
162
- 规则:标语要具体、带产品功能名(Paper Radar / weekly report),避免抽象隐喻词(board/place 类泛化口号);重要功能出场前加一张引导字卡。
163
- 判例:用户逐字改稿:"'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 引导字卡。
164
- 自检:每句标语里有没有具体的功能名/收益词?有没有只靠隐喻撑着的句子?
165
-
166
- ### C3. 3D 镜头里的注记文字活在同一 3D 空间:page-space、同透视、斜拍,大字 + 荧光笔 highlight
167
- 规则:给 3D 场景中的主体配画内注记时,文字必须进同一 3D 空间(页面坐标系、同一台相机透视、translateZ 悬浮 + 落影),平面叠字与场景脱节;样式用大衬线字 + 马克笔 highlight 关键词。
168
- 判例:用户:"字在左侧,大一些醒目一下,有highlight,然后字的视角也是3d悬空,并且斜着拍摄的"(第一版平面字卡被否后重做)。改为把 hero-hover 注记放进 3D——页面坐标系斜视、马克笔 highlight。
169
- 自检:3D 镜头里的每块文字:它跟着场景相机动吗,还是贴在屏幕玻璃上?
170
-
171
- ---
172
-
173
- ## 流程(P)
174
-
175
- ### P1. 交付前必须自己渲染截帧逐一检查,不把首检交给用户
176
- 规则:每轮修改后先自行渲染关键帧截图逐一检查(构图/抖动/文字锐度/穿帮),必要时用像素级工具(裁剪放大/两帧 diff)自证,再交用户。
177
- 判例:用户第一次看片即质问:"你自己有截图检查质量吗?镜头视角很差,而且有小抖动不知道怎么回事"。此后管线里长出 crop/diff/measure 自检脚本与 out/qa/ 逐版本静帧归档,双方进入基于帧的评审。
178
- 自检:这一版交出去之前,我自己看过哪些帧?关键镜头有没有截图证据?
179
-
180
- ### P2. 参考素材先逐帧拆解成手法清单,再逐镜头判断适配性,不全局套用
181
- 规则:有参考片先抽帧做 motion breakdown(每个动画/转场/特效的实现方式清单)写进 spec,按项目适配性取舍;图片参考描述的是"某一类镜头"的感觉而非全片风格令——落地前逐镜头判断适不适用,改完自查再交。
182
- 判例:用户:"从原视频里截取尽可能多的帧……加以复现然后适配到我们的项目,不适合的不用强行适配"——把参考片的 motion breakdown 写进 spec 后连续放行;反例:三张参考图被全局套用为统一倾斜机位,被否"做的并不好……回滚"后逐镜头重做。
183
- 自检:参考素材的每个手法有没有"采用/弃用"的显式决定?有没有把一张参考图当成了全片风格令?
184
-
185
- ### P3. 指代含糊的反馈先确认对象;改错了整 commit 干净 revert,不在错误版本上打补丁
186
- 规则:"第一个标题"式模糊反馈先确认所指再动手;落错对象立即整 commit revert 重来;每个改动保持独立 commit 以便干净回滚。
187
- 判例:用户:"不是第一个字卡,我说的是开头和结尾的AI field lab出现的动画"。先理解错、hold 了 card1,8 分钟内干净 revert,再对正确对象重做通过。
188
- 自检:这条反馈的指代对象我确定吗?当前 commit 粒度出了错能一键回滚吗?
189
-
190
- ### P4. 先列功能清单逐一对应镜头;一种动画手法全片只当一次主角,重复镜头/信息一律删
191
- 规则:开拍前列产品功能清单(dashboard/详情/论文/周报/品牌)逐一映射镜头,核心功能漏拍等于返工;一种手法(飞入/堆叠/翻页)全片只当一次主角;剪辑自查按"这个镜头给了什么新信息"过滤,同一素材/信息全片只出现一次,重复即删。
192
- 判例:用户:"其他动画有些同质了。没有充分展示整个网站的特性"、"很不错了,但是没有周报部分的展示?"(模板片中为周报页)——据此补功能镜头;"倒数第二个镜头是重复的项目卡片的镜头,可以去掉了"——据此删掉重复的概览镜头、去重收尾标语。
193
- 自检:功能清单每项都有对应镜头吗?有没有两个镜头在用同一种手法当主角、或讲同一件事?
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
+ ### R4. 卡点约束时机不放大幅度:全画面级节拍冲击全片 ≤3 处,默认只动元素层
39
+ 规则:强节奏 BGM 片"切点落拍"不等于"逐拍打画面"——作用于整画面/相机层的冲击(整画面 scale 泵/震屏/闪帧/负片帧)视同大 slam 管理:全片 ≤3 处、钉 music-beat-sync §2b 的最强 hit 清单、相邻两处间隔 ≥16 拍;其余拍点动效只作用主角元素层;节拍泵类连打单次 ≤4 拍、全片 ≤1 次。kick 命中表是候选池不是触发器。**计数单位是一次手法/set-piece 使用,不按内部子事件数**:一张卡的一次应用(paparazzi 三连闪、trailer-bumper 三刀切)算一个名额,卡自身标注的连发结构与全片次数上限照旧生效,不因本条被逐帧重复计数。
40
+ 判例:用户反馈(2026-08-22):"如果给音乐,镜头会随节奏抖动,影响观感"——根因是把 music-beat-sync 的 kick→冲击映射执行成了逐拍全画面泵:强鼓点曲 kick 几乎每拍都有,逐拍"被砸"叠上相机层就是节拍频率的画面抖动。与 Q3 同族:Q3 封噪声性抖动(handheld),本条封节拍性抖动。
41
+ 自检:高能段任取连续 8 拍逐帧回放:整画面 scale/位移是否在逐拍脉冲?数全片作用于整画面/相机层的冲击:超过 3 处了吗?每处对得上最强 hit 清单吗?
42
+
43
+ ---
44
+
45
+ ## 质感·运镜·构图(Q)
46
+
47
+ ### Q1. 复刻既有页面必须真实截图;手搓 UI 限非复刻场景且质量/表达达标;数据按风险口径处理
48
+ 规则:凡是表现产品既有页面的镜头,第一步就用无头浏览器截真实页面(整页纹理 + 元素级抠图 + 坐标 json),不手搓仿真贴图复刻;非复刻场景(抽象开场/品牌段/页面上不存在的独立展示组件)允许手搓 UI,但质量(出版级质感,对照 Q10 标准)与表达明确性(观众一眼看懂它是什么)是硬门槛,达不到回截图路线。公开演示数据只有在产品简报明确确认后可保留;客户、个人、内部、密钥、实时或其他敏感内容必须先虚构、脱敏或冻结。对手搓素材同样适用该口径。
49
+ 判例:用户:"我希望的是用真实的页面,然后加入动画"、"不要用真实数据,造一份fake的,不要提到客户名字"。改用真实 dashboard 页面重建,此前一下午手搓纹理复刻版整体作废。修订(2026-07-13 用户裁决):"不一定都要来自真实页面截图,可以手搓UI组件,只是要保证质量和表达的明确性"——判例约束收窄为"不用手搓复刻既有页面"。
50
+ 自检:每块 UI 素材:它在复刻既有页面吗?是则必须来自截图;手搓件的质感和表达能过 Q10 级审视吗?源数据是否符合已确认的数据口径,且不含未授权的客户、个人、内部或密钥信息?
51
+
52
+ ### Q2. 3D 透视下 UI 纹理按原生尺寸 rasterize 后缩小使用;文字发糊先查纹理分辨率链路
53
+ 规则:3D 场景里的 UI 纹理按显示尺寸的 2–4 倍原生栅格化、在 3D 里向下采样(放大走布局级 CSS zoom 而非 transform scale);文字模糊先查栅格化路径,别先动相机/DoF。
54
+ 判例:用户三轮追打:"明显卡片变得模糊了"、"还是不够高清……有像素点的方块"、"第一个镜头的文字清晰度还是没有解决"。先调 DoF 治标无效,改成按原生尺寸 rasterize 拿到真正 4x 锐度,最后把 CSS zoom 推广到全部 3D 页面层根治。
55
+ 自检:放大/透视镜头逐帧截图看文字边缘:有没有像素方块?纹理源分辨率是否 ≥ 显示尺寸 2 倍?
56
+
57
+ 技法展开(原 hires-rasterize-3d-text 技法卡沉淀于此,参考实现 template/src/aifl/live/PageCam.tsx):
58
+ - **根因**:Chromium 对 3D 合成层按 1920 布局宽栅格化再 GPU 放大——内容先降采样后放大必糊,与相机/景深参数无关。
59
+ - **解法**:放大量不走 `transform: scale(zoom)` 而走 CSS `zoom` 属性(布局级缩放),让 Chromium 按放大后的设备尺寸栅格化,从高清源向下采样。坐标要按 `Tx = 960/zoom − cx` 换算保持与平面模式取景一致(PageCam.tsx:100-114 有完整推导),漏换算会跑焦点。
60
+ - **配套**:全页 2x(deviceScaleFactor: 2)、hero 元素单独 4x 元素级截图,推进期 6f 交叉淡入盖住低倍页面纹理(淡入太长会看到两层错位)。
61
+ - **排查顺序**:文字糊 → 先查纹理源分辨率链路(截图倍率→栅格化路径→缩放方式),最后才考虑相机。DoF 只做氛围,永远不是清晰度的解法(实证无效)。验证用逐帧截图裁剪放大看字边缘,肉眼看缩略图发现不了。
62
+
63
+ ### Q3. 镜头要稳:产品宣传片默认不加手持抖动
64
+ 规则:亮场 UI 宣传片禁用 handheld shake;相机噪声只在暗场氛围片明确追求纪实感时用极小值,且必须自查渲染帧确认无意外抖动。
65
+ 判例:用户:"镜头视角很差,而且有小抖动不知道怎么回事"。去掉 handheld shake、重新构图后抖动零投诉;另一支暗场氛围片保留 shake=0.02 未被投诉——适用边界由此划定(推测边界)。
66
+ 自检:逐镜头看渲染帧:有没有任何非叙事意图的相机抖动?
67
+
68
+ ### Q4. 高光/扫光特效宁缺毋滥:不群发,一个镜头最多给主角一次,且必须裁进圆角边界
69
+ 规则:glint/泛光划过类特效不做群发——批量元素入场靠运动本身而非逐个发光;保留的光效必须被承载元素的 border-radius/overflow 裁剪,光溢出圆角是廉价感的典型来源。光效类技术路径本身不封杀:单点、给主角、实现质量过硬的 sheen/泛光可以做,做完对着渲染帧自问"好看吗"再交。
70
+ 判例:用户两次否决:"不需要每个卡片都闪烁一下"、"卡片出现时的泛光划过的特效取消,不好看"。据此去掉逐卡 glint、撤掉泛光划过、把 chip 高光扫光裁进圆角边界内。澄清(2026-07-13 用户):否决针对的是"实现的版本不好看","不代表这个技术路径/特效类型就不可行"——群发禁令与圆角裁剪不变,但泛光/扫光类手法可以带着更高实现标准重试。
71
+ 自检:数一数全片 glint/sweep 出现次数:有没有超过"主角元素一次"?每处光效是否被圆角裁剪?留下的每处光效,正常速度回放自己看过并觉得好看吗?
72
+
73
+ ### Q5. 开场只给一个主角:单主体 + 完整动作弧,胜过群体群舞
74
+ 规则:开场信息宁少而聚焦——一个主角元素、一条完整弧线(聚光→推近→悬浮→描边光→归位),多元素并舞撑不起第一印象。
75
+ 判例:用户:"第一个镜头,只需要聚焦在一张卡片,并让它更有质感"。开场一夜推倒六次,单卡结构定型后直到成片未再动结构。
76
+ 自检:开场镜头有几个"想让观众看"的东西?主角的动作弧是否完整(起-承-落)?
77
+
78
+ ### Q6. 机位服务可读性:信息密集镜头正视,文字特写侧向水平,风格化倾斜逐镜头验证
79
+ 规则:风格化机位按镜头逐个决定——叙事/情绪镜头可倾斜,列表/堆叠等信息密集镜头保持正视;含文字的卡片特写用侧向水平机位,避免大角度仰拍/俯拍破坏文字可读性;禁止全局一刀切套用某种机位风格。
80
+ 判例:全片统一倾斜化被用户否决"做的并不好……对于内容列表页(模板片中为论文列表)的改动也不好,回滚",随即单独把列表页 revert 回正视;用户:"聚焦到一个卡片……是从左侧拍摄而不是从下方",改为左侧 hero 机位。
81
+ 自检:每个倾斜机位镜头:斜的理由是什么?画面里的文字在这个角度还读得清吗?
82
+
83
+ ### Q7. 物件特写四件套:侧面倾斜角 + 可感知高度 + orbit 环绕 + 反差深色材质背景
84
+ 规则:物件/资产特写镜头做足环境戏——侧面倾斜机位、堆叠出可感知的体积高度、镜头绕主体环绕,背景用与主场景反差的深色材质(如拉丝金属),再用拉远同步过渡回主场景。
85
+ 判例:用户:"镜头应该是倾斜从侧面拍摄,堆叠的项目应该有一定的高度,然后镜头围着堆叠做旋转。真个场景应该是暗色的金属质感背景。然后在镜头拉远,同时出现dashboard背景"。从 pile 特写 orbit 初版做到定稿——暗色拉丝金属背景 + 更高的堆叠 + 环绕运镜。
86
+ 自检:特写镜头的主体有没有体积感和环境反差?相机是死机位还是有环绕/拉远?
87
+
88
+ ### Q8. 结尾做成"发布会合影":全片元素四方飞入围住字标,能量推到全片峰值
89
+ 规则:多功能产品的收尾用"全家福"结构——每个已展示过的功能抽一个代表元素多方向飞入定格;规格匹配全片能量峰值(crane 运镜 + 舞台光 + 粒子),初版收尾几乎总是偏保守,默认加码一档。
90
+ 判例:用户:"各个页面的核心元素从不同方向飞来……形成一个类似于合影的画面"、"加一些更多的特效、动画、运镜……像一个产品发布"。从合影式组装做到发布会级别——crane 运镜、舞台光、金粉。
91
+ 自检:结尾是不是全片能量最高点?合影里是否每个已展示的功能都有代表元素?
92
+
93
+ ### Q9. 飞入动画的终点必须是页面布局里的真实槽位,元素不悬浮在页面上方
94
+ 规则:元素飞入后要"嵌入"页面(归位到真实格位、扩展滚动流),不落地悬浮其上会显得假。
95
+ 判例:用户:"研究问题的list应该从空中飞入,嵌入dashboard"、"不要让10张项目卡悬浮其上,而是接着往下scroll,然后排到下面去,不要重叠"。据此让行元素飞入并嵌入布局、把网格改成随滚动延展(近整文件重写)。
96
+ 自检:每个飞入元素落定后,它在页面布局里有真实坐标吗?有没有元素永久浮在页面之上?
97
+
98
+ ### Q10. 文档类镜头的 mock 内容要出版级:原生排版、文字铺满、完整版式入镜
99
+ 规则:观众会读清屏幕上每个字——文档/报告类镜头的 mock 必须用产品原生排版灌满真实密度的假内容,侧栏/评论栏等版式元素完整入镜;"贴图+标语"级别的假文档整镜头返工。
100
+ 判例:用户:"周报内容的文字要用和现在排版和风格一致的,只是内容mock,文字内容铺满,且要完整展示左边栏和右边评论栏"(模板片中该镜头为周报页)。初版"贴图+标语"级假文档被整镜头重做,最终版为原生排版全量 mock、双栏完整入镜。
101
+ 自检:暂停在文档镜头任意一帧:内容读起来像真的吗?版式(侧栏/评论/页眉)完整吗?
102
+
103
+ ### Q11. 要被读的文字有最低有效字高:字幕 ≥5% 帧高,辅助文字 ≥3%;按最终像素量,不按 fontSize
104
+ 规则:1080p 成片按手机/内嵌小窗播放校准可读性——镜头叙事字幕**有效字高 ≥56px(≥5.2% 帧高,推荐 60px 档)**,副标题/统计/URL 等辅助文字 ≥32px(≥3%);有效字高 = fontSize × 全部祖先 scale × 透视压缩(3D 镜头按 `cos(rotY)` 估算),验收量渲染帧上的实际像素,不看代码里的 fontSize。文字只有两态:**"纹理"**(截图 cutout 里的装饰小字,必须明显虚化/降亮度让观众不去读)或 **"要读"**(达标字号 + 足够对比度,压过浅色背景时配 scrim/投影),不存在"重排了但仍读不清"的中间态——读不到的文字宁可删掉。收尾 URL/行动号召是全片最不该小的一行。
105
+ 判例:用户(2026-07-25):"里面有几个镜头,你可以发现它配的字很小……现在那些镜头里面的字太小了,根本就看不见"。审查 gallery 介绍片:S1/S2/S4 字幕 38–40px(约 3.5% 帧高)、S6 副句 30px、收尾 URL 25px 全部低于线,其中 S2 面板"为可读性重排"的副标题只给了 19px——重排却没达标即中间态反例;六处统一提到 60/40/34px 档后整改通过。
106
+ 自检:抽每个含字幕的镜头一帧缩到 480px 宽(模拟手机小窗):每句还读得清吗?逐帧量"要读"文字的实际像素高:字幕 ≥56px、辅助 ≥32px 吗?有没有哪块文字处于"想让人读但读不清"的中间态?
107
+
108
+ ---
109
+
110
+ ## 声音(S)
111
+
112
+ ### S1. 配乐与音效按"片种"选,不按"事件"选:强鼓点电子底 + 电影系 SFX 词汇,禁游戏音包音色(禁音色不禁动作)
113
+ 规则:产品宣传片 SFX 词汇表 = whoosh(运镜)/impact(落地)/riser(铺垫)/sparkle(光效)/transition(转场),禁用游戏音包音色;BGM 选强鼓点、强节奏的电子底(tech-house 类),候选曲必须垫进成片试听——单听曲子无法判断气质。
114
+ 判例:用户:"这个配乐和音效都太像游戏了。你帮我找那种鼓点强的,节奏感强的,然后音效要那种典型的产品宣传视频的音效"。用 Mixkit tech-house + whoosh/impact/riser/sparkle 整批替换掉此前引入的全部 Kenney CC0 游戏音;BGM 34 分钟内三易其稿后定稿沿用。
115
+
116
+ **禁的是音色,不是动作**(易误读,务必分清):本条否掉的是"合成器 pluck/bloop、卡通弹跳、game-over 音阶"这类游戏音包**质感**,不是"不许给点击配声"。画面里真有点击/开关/碎裂,就该配它的拟音——那是 S4 的要求。判别问句:这个音像**真实世界里那个物件发出的声音**(快门、机械开关、玻璃、纸),还是像**游戏引擎里的反馈提示音**?前者用,后者弃。
117
+ - 模板片自己就用 `click-camera.mp3` 且给了全片最高 SFX 响度 0.6——真实快门声,不是 UI 提示音。
118
+ - Freesound 的 UI 搜索结果也要逐个检查:真实开关拟音与合成 confirmation/tone/bleep/
119
+ notification 常混在一起;后者只在片子刻意表现系统提示时使用,见 sound-design §3.3。
120
+ - 真实玻璃、纸张等材质声属于拟音,按画面需求选取。
121
+
122
+
123
+ 自检:闭眼只听音轨:像产品发布会预告,还是像手机游戏?BGM 是在成片里试听后选定的吗?每个 UI 类音效,是真实物件质感还是游戏反馈提示音?
124
+
125
+ ### S2. SFX 逐拍钉帧管理;连发音效做双样本交替 + 音量阶梯递减 + 间隔加速,不同响度复读
126
+ 规则:SFX 用"帧号 + 音源 + 音量"的声明式表集中管理,逐条注释对应的画面动作,杜绝凭感觉铺音效;同类元素连发时防机枪感靠三招——双样本交替、沿序列音量阶梯递减(如 0.40→0.25 六级)、间隔跟随动画曲线加速,密到糊成一片时让声音淡出成 swoosh(本仓库实证无 playbackRate 变调,防机枪不靠变调)。
127
+ 判例:用户:"周报左侧栏的每周出现时可以换个音效,能配合每个周的出现的"(模板片中为周报页)。先立起逐拍钉帧的 SFX 帧号表结构(沿用至成片),再做 pluck 双样本交替、间隔 8→3f 加速,最后把 per-week pop 六连发音量做成 0.40→0.25 阶梯递减。
128
+ 自检:每条 SFX 是否钉在具体帧号并注释了对应动作?连发段落听起来是"数得出来的节奏"还是机械复读?
129
+
130
+ ### S3. 声音在画面锁定后做;时间线一动,SFX 全表重钉
131
+ 规则:BGM/SFX 排在画面结构基本锁定之后;任何改变镜头时长/顺序的修改,收尾动作固定包含"全表 SFX 帧号重对"——音画错位是交付前必查项。
132
+ 判例:用户:"改完这些后重新调整音效位置以匹配新的时间线"。据此按新时间线(总长 1085f)重钉全表 SFX;教训链:首版 SFX 钉完 11 小时后画面大改导致全表重钉,三次重钉中两次纯属画面返工的连带成本。
133
+ 自检:本轮有没有镜头时长/顺序变化?变了的话 SFX 表逐条重对过了吗?
134
+
135
+ ### S4. 拟音优先于装饰音:画面动作配该动作的真实声音,音频裁到与动作严格等长
136
+ 规则:画面里发生什么动作就配什么声音(打字画面配键盘声、逐条落入配逐个 pop),泛用 swoosh 盖不住有辨识度的画面动作;长样本按画面段落裁剪(Sequence 截断),时长与动作严格等长。
137
+ 判例:用户:"周报页面内容出现的时候可以配打字音效"(模板片中为周报页)。据此给文档页揭示配打字机音,keyboard.mp3 按语境裁 24f/44f 两个用途。
138
+
139
+ 操作要点(sound-design §4.1):按新下载文件的实际测量确定播放窗口和增益。
140
+ **>5s 的动作样本显式给 `durationInFrames`**,环境声按镜头长度铺,impact 混响保留自然尾音。
141
+ **峰值 <-12dB 的轻音素材**:`volume` 是乘法系数,给到 1.0 仍可能被 BGM 盖住;
142
+ 首选换素材或预处理,必要时给 >1 增益并以渲染产物验峰,处理后重测并更新来源记录。
143
+
144
+
145
+ 自检:每个有辨识度的画面动作(打字/点击/落地)有没有自己的拟音?音效有没有拖到动作结束之后还在响?每条音效在成片里真的听得见吗(轻音素材音量够不够)?
146
+
147
+ ### S5. 音画对齐补两项偏移:输出音轨偏移逐渲染管线实测统一扣,音源峰值滞后逐文件量
148
+ 规则:渲出成片的整条音轨相对视频有固定滞后,根因在输出编码/封装链路(AAC encoder priming,48kHz 典型 2048 samples ≈1.28f@30fps;Remotion 跟踪 remotion-dev/remotion#7099),不是 `<Audio>`/`Sequence.from` 的行为——按渲染管线(Remotion 版本 + codec + sample rate + 容器)实测记档(渲出成片抽音轨,拿 2–3 个尖锐 SFX 原文件做归一化交叉相关,残差一致才算量准),补偿在渲染层的 from 计算式统一扣除,不逐条改帧号;音源自身的峰值滞后(峰值不在文件头)逐文件量。统一公式 `from = 目标峰值帧 − 峰值滞后 − 输出偏移`,方法与边界(截断型音效窗口不加长、片头 2f 内无法全补)见 sound-design §4.6。
149
+ 判例:AiflPromo 实测 click 滞后 2032 samples、impact 2066 samples(≈1.27–1.29f),与 AAC priming 指纹吻合,渲染品 elst 未声明裁剪垫头;promo-ink 时代实测过 4f(≈133ms,远超 priming 量级,根因未验证)——常数不可跨管线搬运。不补时两项叠加最重一击晚 0.27s,明显读作音画不同步;卡点片里差 2–3 帧就足以让合理的卡点动效被读作无端抖动(2026-08-22 用户反馈的成因之一)。
150
+ 自检:本管线的输出音轨偏移实测过吗(Remotion 版本/codec/采样率/容器随值记录在哪)?补偿是 from 计算式统一扣的还是散落在各条帧号里?带明显攻击峰的音源,峰值滞后量过了吗?
151
+
152
+ ---
153
+
154
+ ## 文案(C)
155
+
156
+ ### C1. 文案在画面锁定后按最终镜头重写一遍,纯动画段落也配解说
157
+ 规则:初稿文案只是占位——画面定稿后对照成片逐镜头重写;纯动画镜头配短解说 caption,不留"哑巴段落"(品牌收尾镜头除外,保持干净)。
158
+ 判例:用户:"你根据我现在完整的视频内容,重新写文案的词,我感觉现在的和视频画面不是很匹配,再就是在动画的部分是不是也加一些解说?"。据此重写标题文案,并给实拍镜头补上 caption 解说。
159
+ 自检:逐句对照:每句文案和它所在的画面匹配吗?有没有超过 3 秒的无解说动画段落?
160
+
161
+ ### C2. 标语写"团队 + 产品功能名 + 具体收益",抽象隐喻词一律具体化
162
+ 规则:标语要具体、带产品功能名(Paper Radar / weekly report),避免抽象隐喻词(board/place 类泛化口号);重要功能出场前加一张引导字卡。
163
+ 判例:用户逐字改稿:"'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 引导字卡。
164
+ 自检:每句标语里有没有具体的功能名/收益词?有没有只靠隐喻撑着的句子?
165
+
166
+ ### C3. 3D 镜头里的注记文字活在同一 3D 空间:page-space、同透视、斜拍,大字 + 荧光笔 highlight
167
+ 规则:给 3D 场景中的主体配画内注记时,文字必须进同一 3D 空间(页面坐标系、同一台相机透视、translateZ 悬浮 + 落影),平面叠字与场景脱节;样式用大衬线字 + 马克笔 highlight 关键词。
168
+ 判例:用户:"字在左侧,大一些醒目一下,有highlight,然后字的视角也是3d悬空,并且斜着拍摄的"(第一版平面字卡被否后重做)。改为把 hero-hover 注记放进 3D——页面坐标系斜视、马克笔 highlight。
169
+ 自检:3D 镜头里的每块文字:它跟着场景相机动吗,还是贴在屏幕玻璃上?
170
+
171
+ ---
172
+
173
+ ## 流程(P)
174
+
175
+ ### P1. 交付前必须自己渲染截帧逐一检查,不把首检交给用户
176
+ 规则:每轮修改后先自行渲染关键帧截图逐一检查(构图/抖动/文字锐度/穿帮),必要时用像素级工具(裁剪放大/两帧 diff)自证,再交用户。
177
+ 判例:用户第一次看片即质问:"你自己有截图检查质量吗?镜头视角很差,而且有小抖动不知道怎么回事"。此后管线里长出 crop/diff/measure 自检脚本与 out/qa/ 逐版本静帧归档,双方进入基于帧的评审。
178
+ 自检:这一版交出去之前,我自己看过哪些帧?关键镜头有没有截图证据?
179
+
180
+ ### P2. 参考素材先逐帧拆解成手法清单,再逐镜头判断适配性,不全局套用
181
+ 规则:有参考片先抽帧做 motion breakdown(每个动画/转场/特效的实现方式清单)写进 spec,按项目适配性取舍;图片参考描述的是"某一类镜头"的感觉而非全片风格令——落地前逐镜头判断适不适用,改完自查再交。
182
+ 判例:用户:"从原视频里截取尽可能多的帧……加以复现然后适配到我们的项目,不适合的不用强行适配"——把参考片的 motion breakdown 写进 spec 后连续放行;反例:三张参考图被全局套用为统一倾斜机位,被否"做的并不好……回滚"后逐镜头重做。
183
+ 自检:参考素材的每个手法有没有"采用/弃用"的显式决定?有没有把一张参考图当成了全片风格令?
184
+
185
+ ### P3. 指代含糊的反馈先确认对象;改错了整 commit 干净 revert,不在错误版本上打补丁
186
+ 规则:"第一个标题"式模糊反馈先确认所指再动手;落错对象立即整 commit revert 重来;每个改动保持独立 commit 以便干净回滚。
187
+ 判例:用户:"不是第一个字卡,我说的是开头和结尾的AI field lab出现的动画"。先理解错、hold 了 card1,8 分钟内干净 revert,再对正确对象重做通过。
188
+ 自检:这条反馈的指代对象我确定吗?当前 commit 粒度出了错能一键回滚吗?
189
+
190
+ ### P4. 先列功能清单逐一对应镜头;一种动画手法全片只当一次主角,重复镜头/信息一律删
191
+ 规则:开拍前列产品功能清单(dashboard/详情/论文/周报/品牌)逐一映射镜头,核心功能漏拍等于返工;一种手法(飞入/堆叠/翻页)全片只当一次主角;剪辑自查按"这个镜头给了什么新信息"过滤,同一素材/信息全片只出现一次,重复即删。
192
+ 判例:用户:"其他动画有些同质了。没有充分展示整个网站的特性"、"很不错了,但是没有周报部分的展示?"(模板片中为周报页)——据此补功能镜头;"倒数第二个镜头是重复的项目卡片的镜头,可以去掉了"——据此删掉重复的概览镜头、去重收尾标语。
193
+ 自检:功能清单每项都有对应镜头吗?有没有两个镜头在用同一种手法当主角、或讲同一件事?