dsh-drawai 0.4.2 → 0.4.4

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 (379) hide show
  1. package/README.md +7 -5
  2. package/lib/client.js +142 -16
  3. package/lib/index.js +7945 -7719
  4. package/lib/motion/asset-pack.js +394 -394
  5. package/lib/motion/assets.js +291 -291
  6. package/lib/motion/demo-assets-lock.js +10 -10
  7. package/lib/motion/mgstyles/briefs/23-ink-wash.md +147 -0
  8. package/lib/motion/mgstyles/catalog.d/23-ink-wash.json +28 -0
  9. package/lib/motion/mgstyles/catalog.json +127 -14
  10. package/lib/motion/mgstyles/upstream/demos/23-ink-wash/brush.js +149 -0
  11. package/lib/motion/mgstyles/upstream/demos/23-ink-wash/film.js +202 -0
  12. package/lib/motion/mgstyles/upstream/manifest.json +28 -3
  13. package/lib/motion/mgstyles/upstream/prompts/23-ink-wash.md +59 -0
  14. package/lib/motion/mgstyles/vendor/README.md +28 -28
  15. package/lib/motion/mgstyles/vendor/modules/d3/LICENSE +13 -13
  16. package/lib/motion/mgstyles/vendor/modules/d3/dist/d3.min.js +2 -2
  17. package/lib/motion/mgstyles/vendor/modules/opentype.js/LICENSE +20 -20
  18. package/lib/motion/mgstyles/vendor/modules/opentype.js/dist/opentype.mjs +14460 -14460
  19. package/lib/motion/mgstyles/vendor/modules/simplex-noise/LICENSE +21 -21
  20. package/lib/motion/mgstyles/vendor/modules/simplex-noise/dist/esm/simplex-noise.js +465 -465
  21. package/lib/motion/mgstyles/vendor/modules/topojson-client/LICENSE +13 -13
  22. package/lib/motion/mgstyles/vendor/modules/topojson-client/dist/topojson-client.min.js +2 -2
  23. package/lib/motion/project.js +5 -1
  24. package/lib/motion/qa.js +116 -6
  25. package/lib/motion/render.js +179 -179
  26. package/lib/motion/scene-kit.js +1 -1
  27. package/lib/motion/shotcraft/upstream/SKILL.md +286 -286
  28. package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -54
  29. package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -200
  30. package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -45
  31. package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -20
  32. package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -65
  33. package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -151
  34. package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -129
  35. package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -75
  36. package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -40
  37. package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -11
  38. package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -10
  39. package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -49
  40. package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -210
  41. package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -423
  42. package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -170
  43. package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -157
  44. package/lib/motion/shotcraft/upstream/demos/README.md +120 -120
  45. package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -112
  46. package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -647
  47. package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -316
  48. package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -82
  49. package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -115
  50. package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -243
  51. package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +388 -388
  52. package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -250
  53. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -305
  54. package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -246
  55. package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -390
  56. package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -138
  57. package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -542
  58. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -315
  59. package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -299
  60. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -173
  61. package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -348
  62. package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -366
  63. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -279
  64. package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -184
  65. package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -390
  66. package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -155
  67. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -303
  68. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -290
  69. package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -278
  70. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -307
  71. package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -215
  72. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -299
  73. package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -232
  74. package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -290
  75. package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -273
  76. package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -167
  77. package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -536
  78. package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -164
  79. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -175
  80. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -197
  81. package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -241
  82. package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -279
  83. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -230
  84. package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -345
  85. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -275
  86. package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -229
  87. package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -312
  88. package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -222
  89. package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -295
  90. package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -329
  91. package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -315
  92. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -264
  93. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -260
  94. package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -263
  95. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -123
  96. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -187
  97. package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -175
  98. package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -305
  99. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -350
  100. package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -352
  101. package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -218
  102. package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -297
  103. package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -157
  104. package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -218
  105. package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -202
  106. package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -265
  107. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -457
  108. package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -446
  109. package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -249
  110. package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -278
  111. package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -332
  112. package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -358
  113. package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -201
  114. package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -200
  115. package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -208
  116. package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -341
  117. package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -389
  118. package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -293
  119. package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -183
  120. package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -245
  121. package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -222
  122. package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -223
  123. package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -217
  124. package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -343
  125. package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -357
  126. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -187
  127. package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -333
  128. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -274
  129. package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -270
  130. package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -430
  131. package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -252
  132. package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -106
  133. package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -288
  134. package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -362
  135. package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -168
  136. package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -310
  137. package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -261
  138. package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -459
  139. package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -294
  140. package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -161
  141. package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -248
  142. package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -359
  143. package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -227
  144. package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -162
  145. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -248
  146. package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -186
  147. package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -355
  148. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -272
  149. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -262
  150. package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -217
  151. package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -285
  152. package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -205
  153. package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -178
  154. package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -147
  155. package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -143
  156. package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -134
  157. package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -217
  158. package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -198
  159. package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -221
  160. package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -312
  161. package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -261
  162. package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -121
  163. package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -153
  164. package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -179
  165. package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -140
  166. package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -309
  167. package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -191
  168. package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -292
  169. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -135
  170. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -124
  171. package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -255
  172. package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -173
  173. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -225
  174. package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -141
  175. package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -137
  176. package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -147
  177. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -409
  178. package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -280
  179. package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -271
  180. package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -385
  181. package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -312
  182. package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -303
  183. package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -77
  184. package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -311
  185. package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -307
  186. package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -349
  187. package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -255
  188. package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -244
  189. package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -217
  190. package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -652
  191. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -153
  192. package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -238
  193. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -324
  194. package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -354
  195. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -101
  196. package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -129
  197. package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -297
  198. package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -57
  199. package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -155
  200. package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -175
  201. package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -153
  202. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -146
  203. package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -226
  204. package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -1
  205. package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -193
  206. package/lib/motion/shotcraft/upstream/references/final-review.md +121 -121
  207. package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -199
  208. package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -183
  209. package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -257
  210. package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -382
  211. package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -111
  212. package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -50
  213. package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -95
  214. package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -41
  215. package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -52
  216. package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -39
  217. package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -39
  218. package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -57
  219. package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -51
  220. package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -46
  221. package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -52
  222. package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -43
  223. package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -42
  224. package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -48
  225. package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -52
  226. package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -45
  227. package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -46
  228. package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -44
  229. package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -63
  230. package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -54
  231. package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -58
  232. package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -35
  233. package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -53
  234. package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -42
  235. package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -50
  236. package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -46
  237. package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -56
  238. package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -49
  239. package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -50
  240. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -53
  241. package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -53
  242. package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -55
  243. package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -52
  244. package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -60
  245. package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -57
  246. package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -51
  247. package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -41
  248. package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -53
  249. package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -60
  250. package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -55
  251. package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -57
  252. package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -47
  253. package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -37
  254. package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -54
  255. package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -36
  256. package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -56
  257. package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -56
  258. package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -40
  259. package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -60
  260. package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -57
  261. package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -73
  262. package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -87
  263. package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -55
  264. package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -50
  265. package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -59
  266. package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -38
  267. package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -38
  268. package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -59
  269. package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -39
  270. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -61
  271. package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -52
  272. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -50
  273. package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -66
  274. package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -43
  275. package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -38
  276. package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -38
  277. package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -56
  278. package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -44
  279. package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -38
  280. package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -63
  281. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -57
  282. package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -63
  283. package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -58
  284. package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -45
  285. package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -55
  286. package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -49
  287. package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -42
  288. package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -42
  289. package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -45
  290. package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -48
  291. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -55
  292. package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -43
  293. package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -41
  294. package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -42
  295. package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -59
  296. package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -55
  297. package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -65
  298. package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -42
  299. package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -64
  300. package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -64
  301. package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -54
  302. package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -91
  303. package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -51
  304. package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -66
  305. package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -38
  306. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -66
  307. package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -58
  308. package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -61
  309. package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -64
  310. package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -45
  311. package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -41
  312. package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -51
  313. package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -42
  314. package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -63
  315. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -57
  316. package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -75
  317. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -59
  318. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -67
  319. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -60
  320. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -66
  321. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -40
  322. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -45
  323. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -62
  324. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -55
  325. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -37
  326. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -55
  327. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -50
  328. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -43
  329. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -55
  330. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -51
  331. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -51
  332. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -56
  333. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -49
  334. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -57
  335. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -36
  336. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -64
  337. package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -47
  338. package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -170
  339. package/lib/motion/shotcraft/upstream/references/workbench.md +157 -157
  340. package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -103
  341. package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -44
  342. package/lib/motion/shotcraft/upstream/template/package.json +20 -20
  343. package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -6
  344. package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -17
  345. package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -65
  346. package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -48
  347. package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -24
  348. package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -192
  349. package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -111
  350. package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -150
  351. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -158
  352. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -468
  353. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -552
  354. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -411
  355. package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -200
  356. package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -324
  357. package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +388 -388
  358. package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -4
  359. package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -7
  360. package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -68
  361. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -1
  362. package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -24
  363. package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -74
  364. package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -91
  365. package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -213
  366. package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -15
  367. package/lib/motion/style-frames.js +306 -306
  368. package/lib/motion/sync.js +214 -214
  369. package/lib/motion-library.js +1 -1
  370. package/lib/motion-project.js +105 -105
  371. package/lib/motion-render-worker.js +174 -174
  372. package/lib/routing/router.js +222 -222
  373. package/lib/routing/vendor/README.md +96 -96
  374. package/lib/routing/vendor/libavoid-routing.js +753 -753
  375. package/lib/routing/vendor/libavoid.min.js +59 -59
  376. package/lib/svg-export.js +1344 -0
  377. package/lib/video-trace-pool.js +128 -128
  378. package/package.json +3 -2
  379. package/LICENSE +0 -4175
@@ -1,53 +1,53 @@
1
- ---
2
- name: glow-flyline-moves
3
- 一句话: 暗场光斑与飞线三式——glow-orb-ambient 光斑底噪、flyline-arc 飞线连接、orb-flyline-relay 同帧共振组合
4
- 适用: 全片唯一暗场段落的氛围与数据叙事:铺底噪用 A、讲数据流向用 B、要背景给前景搭腔用 C;Linear 官网味
5
- 时长: A 170f(~5.7s)/ B 140f(~4.7s)/ C 165f(5.5s)
6
- 能量: A 低(底噪级)/ B 中 / C 中高
7
- 标签: data
8
- ---
9
-
10
- ## 意图
11
- 这是库内第一张整卡住在**暗场**的卡。白底提亮不可见判例反过来读就是:
12
- 要玩光,先去暗场。A 是空间的呼吸——深色底三团大光斑有机漂移,从中央
13
- 磨砂玻璃卡背后游过、颜色透过玻璃染进卡面,卡缘随最近光斑靠近而泛光,
14
- 背景不再是死的;B 是数据的动词——发光弧线从 A 卡"打"到 B 卡,
15
- 亮点头领跑、渐隐光尾,落点描边脉冲点亮,指标关联第一次有了方向;C 是 A+B 的焊接——飞线落点帧邻近光斑同帧涨亮一拍,
16
- 氛围层与事件层**同帧共振**,互相搭腔而非各演各的(组合命门:拆开共振帧
17
- 就退化成两张卡并置)。
18
-
19
- ## 三式选型
20
- | 式 | 做法 | 适用 |
21
- |----|------|------|
22
- | A glow-orb-ambient | 三团 760–1200px 多段径向渐变光斑(screen 叠加,不做实时 blur),双正弦漂移;中央 1100×600 磨砂玻璃卡(backdrop 模糊 + 提饱和)让光斑透色;卡缘辉光按光斑距离 [240,760]px→[1,0] 加权取 max 驱动 + 朝主导光斑的定向轮廓光 | 暗场段落铺底;卡呼吸感 |
23
- | B flyline-arc | 暗场 dashboard 压暗当底,卡心到卡心的手写 bezier 100 段采样,22f out-cubic 生长;光头 + 彗尾条件挂载领跑,段 opacity 按离头距离渐隐、到站 10f 抹匀;起点锚亮起、落点节点常驻;落点卡描边脉冲 + 冲击环,可接力 | 数据流向/指标关联;dashboard 叙事 |
24
- | C orb-flyline-relay | A+B 焊接:三颗玻璃节点各配一团背后光斑,光斑 surge 与节点点亮共用落点帧常量,涨亮 1+1.6×surge 并放大 12%、5f 起升 15f 消散;飞线到站后消散成细点虚线 | 暗场高光段;三站接力收束 |
25
-
26
- ## 参数表
27
- | 参数 | 典型值 | 调节手感 |
28
- |------|--------|----------|
29
- | A 光斑 | 潮青 / 深海蓝 / 珊瑚,峰值 0.55/0.5/0.42;漂移振幅 280–300px、周期 96–150f 交叉不等 | 同周期漂移读作整体晃动不是"有机" |
30
- | A 玻璃卡 | backdrop blur 44px + saturate 1.5;祖先不能带 filter / opacity<1 | 祖先成为 backdrop root 时玻璃里看不到光斑(入场淡入放在玻璃层自身) |
31
- | A 卡缘辉光 | box-shadow 0→90px 主导光斑色 0.32 + 1.5px 定向渐变轮廓光 | 无辉光光斑与卡互不认识 |
32
- | A 收敛 | 115–145f out-sine 收敛冻结(振幅 60/π,起始斜率 = 1 速度连续),末 25f 真静止 | 硬停一帧读作卡死;缓动收敛才有真静止 |
33
- | B 线体 | 暗场版(demo):白芯 3.5px butt 分段 + 7px/18px 两层靛蓝辉光;浅底版:白线 4.5px + 9px 深色衬底 | 浅底无衬底白线直接消失(判例);分段用圆头会在渐隐尾叠出珠串 |
34
- | B 光头 | 白点 r7 + r40 halo + 9 点彗尾,仅生长期条件挂载 | opacity 到 0 不算摘罩,永不真静止 |
35
- | B 脉冲 | 描边扩散 out-cubic 6f / 消散 12f 到残余 0.25;暗场版提亮(强调色描边 + 外辉光 + 极淡卡面提亮)+ 14f 冲击环;f86 后全静止 | 白底禁提亮——浅底版用加深罩 0.16 替代 |
36
- | C 共振 | 落点帧同帧起 surge(同一常量 LIT_B / LIT_C);节点 8f 亮到 1 + 描边脉冲残余 0.35 + 20f 冲击环 | 错 2f 以上共振读不出"搭腔" |
37
- | C 时间轴 | 动作 f98 前结束、光斑 110–140f 收敛冻结,末 25f 真静止 | 氛围层最后冻,事件层先收 |
38
-
39
- ## 已知坑
40
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
41
- 首次实战须以真实素材回验
42
- - 暗场段与纸墨浅底主视觉切换成本高——全片暗场段 ≤1 段,进出
43
- 用 shot-transitions 藏切族垫,别生切明暗
44
- - 光斑漂移末段**必须**缓动收敛到静止再冻结——匀速漂移直接 clamp
45
- 是一次可见的急刹(A 式 out-sine 收敛判例)
46
- - 实战品牌色版:光斑用品牌色对(如蓝紫),灰阶参数只保证明度关系,
47
- 色相对比要重调
48
- - B 接力线 ≥3 条时改用 C——纯飞线连打读作大屏模板,共振才有作者感
49
- - 声音:B/C 每次落点一声轻打点,A 无声(sound-design §4.5)
50
-
51
- ## 参考实现
52
- demos/effects/glow-flyline-moves/
53
- (FlylineArc.tsx / GlowOrbAmbient.tsx / OrbFlylineRelay.tsx)
1
+ ---
2
+ name: glow-flyline-moves
3
+ 一句话: 暗场光斑与飞线三式——glow-orb-ambient 光斑底噪、flyline-arc 飞线连接、orb-flyline-relay 同帧共振组合
4
+ 适用: 全片唯一暗场段落的氛围与数据叙事:铺底噪用 A、讲数据流向用 B、要背景给前景搭腔用 C;Linear 官网味
5
+ 时长: A 170f(~5.7s)/ B 140f(~4.7s)/ C 165f(5.5s)
6
+ 能量: A 低(底噪级)/ B 中 / C 中高
7
+ 标签: data
8
+ ---
9
+
10
+ ## 意图
11
+ 这是库内第一张整卡住在**暗场**的卡。白底提亮不可见判例反过来读就是:
12
+ 要玩光,先去暗场。A 是空间的呼吸——深色底三团大光斑有机漂移,从中央
13
+ 磨砂玻璃卡背后游过、颜色透过玻璃染进卡面,卡缘随最近光斑靠近而泛光,
14
+ 背景不再是死的;B 是数据的动词——发光弧线从 A 卡"打"到 B 卡,
15
+ 亮点头领跑、渐隐光尾,落点描边脉冲点亮,指标关联第一次有了方向;C 是 A+B 的焊接——飞线落点帧邻近光斑同帧涨亮一拍,
16
+ 氛围层与事件层**同帧共振**,互相搭腔而非各演各的(组合命门:拆开共振帧
17
+ 就退化成两张卡并置)。
18
+
19
+ ## 三式选型
20
+ | 式 | 做法 | 适用 |
21
+ |----|------|------|
22
+ | A glow-orb-ambient | 三团 760–1200px 多段径向渐变光斑(screen 叠加,不做实时 blur),双正弦漂移;中央 1100×600 磨砂玻璃卡(backdrop 模糊 + 提饱和)让光斑透色;卡缘辉光按光斑距离 [240,760]px→[1,0] 加权取 max 驱动 + 朝主导光斑的定向轮廓光 | 暗场段落铺底;卡呼吸感 |
23
+ | B flyline-arc | 暗场 dashboard 压暗当底,卡心到卡心的手写 bezier 100 段采样,22f out-cubic 生长;光头 + 彗尾条件挂载领跑,段 opacity 按离头距离渐隐、到站 10f 抹匀;起点锚亮起、落点节点常驻;落点卡描边脉冲 + 冲击环,可接力 | 数据流向/指标关联;dashboard 叙事 |
24
+ | C orb-flyline-relay | A+B 焊接:三颗玻璃节点各配一团背后光斑,光斑 surge 与节点点亮共用落点帧常量,涨亮 1+1.6×surge 并放大 12%、5f 起升 15f 消散;飞线到站后消散成细点虚线 | 暗场高光段;三站接力收束 |
25
+
26
+ ## 参数表
27
+ | 参数 | 典型值 | 调节手感 |
28
+ |------|--------|----------|
29
+ | A 光斑 | 潮青 / 深海蓝 / 珊瑚,峰值 0.55/0.5/0.42;漂移振幅 280–300px、周期 96–150f 交叉不等 | 同周期漂移读作整体晃动不是"有机" |
30
+ | A 玻璃卡 | backdrop blur 44px + saturate 1.5;祖先不能带 filter / opacity<1 | 祖先成为 backdrop root 时玻璃里看不到光斑(入场淡入放在玻璃层自身) |
31
+ | A 卡缘辉光 | box-shadow 0→90px 主导光斑色 0.32 + 1.5px 定向渐变轮廓光 | 无辉光光斑与卡互不认识 |
32
+ | A 收敛 | 115–145f out-sine 收敛冻结(振幅 60/π,起始斜率 = 1 速度连续),末 25f 真静止 | 硬停一帧读作卡死;缓动收敛才有真静止 |
33
+ | B 线体 | 暗场版(demo):白芯 3.5px butt 分段 + 7px/18px 两层靛蓝辉光;浅底版:白线 4.5px + 9px 深色衬底 | 浅底无衬底白线直接消失(判例);分段用圆头会在渐隐尾叠出珠串 |
34
+ | B 光头 | 白点 r7 + r40 halo + 9 点彗尾,仅生长期条件挂载 | opacity 到 0 不算摘罩,永不真静止 |
35
+ | B 脉冲 | 描边扩散 out-cubic 6f / 消散 12f 到残余 0.25;暗场版提亮(强调色描边 + 外辉光 + 极淡卡面提亮)+ 14f 冲击环;f86 后全静止 | 白底禁提亮——浅底版用加深罩 0.16 替代 |
36
+ | C 共振 | 落点帧同帧起 surge(同一常量 LIT_B / LIT_C);节点 8f 亮到 1 + 描边脉冲残余 0.35 + 20f 冲击环 | 错 2f 以上共振读不出"搭腔" |
37
+ | C 时间轴 | 动作 f98 前结束、光斑 110–140f 收敛冻结,末 25f 真静止 | 氛围层最后冻,事件层先收 |
38
+
39
+ ## 已知坑
40
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
41
+ 首次实战须以真实素材回验
42
+ - 暗场段与纸墨浅底主视觉切换成本高——全片暗场段 ≤1 段,进出
43
+ 用 shot-transitions 藏切族垫,别生切明暗
44
+ - 光斑漂移末段**必须**缓动收敛到静止再冻结——匀速漂移直接 clamp
45
+ 是一次可见的急刹(A 式 out-sine 收敛判例)
46
+ - 实战品牌色版:光斑用品牌色对(如蓝紫),灰阶参数只保证明度关系,
47
+ 色相对比要重调
48
+ - B 接力线 ≥3 条时改用 C——纯飞线连打读作大屏模板,共振才有作者感
49
+ - 声音:B/C 每次落点一声轻打点,A 无声(sound-design §4.5)
50
+
51
+ ## 参考实现
52
+ demos/effects/glow-flyline-moves/
53
+ (FlylineArc.tsx / GlowOrbAmbient.tsx / OrbFlylineRelay.tsx)
@@ -1,42 +1,42 @@
1
- ---
2
- name: icon-performance-moves
3
- 一句话: 图标表演——attention-bounce 求关注弹跳(图标连跳递增+落地压扁+镜头被吸引)
4
- 适用: 半屏级 icon 特写段落;新功能引出
5
- 时长: 156f(5.2s)
6
- 能量: 蓄势引入
7
- 标签: interaction
8
- ---
9
-
10
- ## 意图
11
- 库内图标动画品类首批入库:icon 是镜头怼着拍的表演者,不是 UI 角落的
12
- 微交互。attention-bounce 是 macOS Dock 语汇——Dock 里的 video-shotcraft
13
- app 图标原地连跳 4 次一次比一次高(0.35→1.2 倍 icon 高),每次落地压扁
14
- (末跳宽 1.2x 高 0.8x)+涟漪溅点,邻居图标逐渐失焦、跳最高那下镜头向它
15
- 轻推 8%(被吸引),落定后弹开「New in Shotcraft」功能面板——把"用户注意力"
16
- 剪进叙事。
17
-
18
- ## 做法
19
- | 式 | 做法 | 适用 |
20
- |----|------|------|
21
- | A attention-bounce | 抛体弹跳(时长 ∝ √高度)递增 + 空中速度拉伸 + 落地 2f 挤压 + 涟漪溅点,邻居 rack focus 失焦,峰值跳镜头 scale 1.08 推近,落定触发角标 + 面板弹簧展开 | 新功能引出:"看我"→镜头看它→它开面板 |
22
-
23
- ## 参数表
24
- | 参数 | 典型值 | 调节手感 |
25
- |------|--------|----------|
26
- | icon 尺寸 | 360–400px 高(半屏特写;demo 图标 360) | 角落小图标做表演没人看见——表演者必须占 C 位 |
27
- | 递增弹跳 | 4 跳 0.35→0.6→0.85→1.2 倍 icon 高,空中 14/18/22/26f(∝ √高度) | 等高连跳读作 loading;递增才是"越喊越大声";时长不随高度变读作失重 |
28
- | 落地挤压 | 接触 2f,压扁量 0.1→0.2 递增(末跳宽 1.2x 高 0.8x),末跳阻尼余弦回稳 | squash 缺席=没有重量 |
29
- | 镜头推近 | 末跳 72–90f smooth 推 8%;邻居 30–96f 失焦到 7px、降饱和 30% | 镜头动作把"被吸引"的观众视角演出来 |
30
-
31
- ## 已知坑
32
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
33
- 首次实战须以真实素材回验
34
- - 同批 bell-swing-alert(铃铛甩摆)淘汰无附言——挂点摆动型 icon
35
- 表演相性存疑,做新 icon 表演优先弹跳/爆发型
36
- - 首版曾出画框(末跳最高点顶出),弹跳高度与画面上留白先算像素
37
- (demo:地面 960、图标 360、末跳顶点 168px,推近 8% 后约 119px)
38
- - 声音:每次落地一声"duk"音调递升,面板弹出一声轻"叮"
39
-
40
- ## 参考实现
41
- demos/effects/icon-performance-moves/
42
- (AttentionBounce.tsx)
1
+ ---
2
+ name: icon-performance-moves
3
+ 一句话: 图标表演——attention-bounce 求关注弹跳(图标连跳递增+落地压扁+镜头被吸引)
4
+ 适用: 半屏级 icon 特写段落;新功能引出
5
+ 时长: 156f(5.2s)
6
+ 能量: 蓄势引入
7
+ 标签: interaction
8
+ ---
9
+
10
+ ## 意图
11
+ 库内图标动画品类首批入库:icon 是镜头怼着拍的表演者,不是 UI 角落的
12
+ 微交互。attention-bounce 是 macOS Dock 语汇——Dock 里的 video-shotcraft
13
+ app 图标原地连跳 4 次一次比一次高(0.35→1.2 倍 icon 高),每次落地压扁
14
+ (末跳宽 1.2x 高 0.8x)+涟漪溅点,邻居图标逐渐失焦、跳最高那下镜头向它
15
+ 轻推 8%(被吸引),落定后弹开「New in Shotcraft」功能面板——把"用户注意力"
16
+ 剪进叙事。
17
+
18
+ ## 做法
19
+ | 式 | 做法 | 适用 |
20
+ |----|------|------|
21
+ | A attention-bounce | 抛体弹跳(时长 ∝ √高度)递增 + 空中速度拉伸 + 落地 2f 挤压 + 涟漪溅点,邻居 rack focus 失焦,峰值跳镜头 scale 1.08 推近,落定触发角标 + 面板弹簧展开 | 新功能引出:"看我"→镜头看它→它开面板 |
22
+
23
+ ## 参数表
24
+ | 参数 | 典型值 | 调节手感 |
25
+ |------|--------|----------|
26
+ | icon 尺寸 | 360–400px 高(半屏特写;demo 图标 360) | 角落小图标做表演没人看见——表演者必须占 C 位 |
27
+ | 递增弹跳 | 4 跳 0.35→0.6→0.85→1.2 倍 icon 高,空中 14/18/22/26f(∝ √高度) | 等高连跳读作 loading;递增才是"越喊越大声";时长不随高度变读作失重 |
28
+ | 落地挤压 | 接触 2f,压扁量 0.1→0.2 递增(末跳宽 1.2x 高 0.8x),末跳阻尼余弦回稳 | squash 缺席=没有重量 |
29
+ | 镜头推近 | 末跳 72–90f smooth 推 8%;邻居 30–96f 失焦到 7px、降饱和 30% | 镜头动作把"被吸引"的观众视角演出来 |
30
+
31
+ ## 已知坑
32
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
33
+ 首次实战须以真实素材回验
34
+ - 同批 bell-swing-alert(铃铛甩摆)淘汰无附言——挂点摆动型 icon
35
+ 表演相性存疑,做新 icon 表演优先弹跳/爆发型
36
+ - 首版曾出画框(末跳最高点顶出),弹跳高度与画面上留白先算像素
37
+ (demo:地面 960、图标 360、末跳顶点 168px,推近 8% 后约 119px)
38
+ - 声音:每次落地一声"duk"音调递升,面板弹出一声轻"叮"
39
+
40
+ ## 参考实现
41
+ demos/effects/icon-performance-moves/
42
+ (AttentionBounce.tsx)
@@ -1,50 +1,50 @@
1
- ---
2
- name: impact-feedback
3
- 一句话: 命中反馈两式——hit-counter 连招计数(顿帧+伤害数字+combo 跳字)、anime-impact 动漫打击帧(负片+集中线+色散)
4
- 适用: 元素落位/撞击的"命中一瞬"——给砸入、撞停加游戏级手感;按强度阶梯选式
5
- 时长: n/a(元素级技法,寄生在落位动作上;各式占用帧数见参数表)
6
- 能量: 高(瞬时冲击)
7
- ---
8
-
9
- ## 意图
10
- 元素砸到位却没有"砸到了"的一瞬,落位读作 PPT 飞入。游戏 juice
11
- (Vlambeer screenshake 理论)与动漫演出 impact frames 给了同一答案:
12
- 命中的那几帧把时间咬住,冲量才传到观众手上。两式是一条强度阶梯:
13
- B 用局部顿帧叠伤害数字和 combo 跳字,把功能清单剪成一套连招,
14
- 叙事感最强;C 是最重的一拳——撞停 3 帧翻负片炸集中线,强调级最高、
15
- 最风格化。
16
-
17
- ## 两式选型表
18
- | 式 | 做法 | 适用 |
19
- |----|------|------|
20
- | B hit-counter 连招计数 | 三卡接连砸入,每命中 = 顿帧 2f + 伤害数字上浮 + ×N 计数跳字逐次加码;demo 把"伤害"写成 video-shotcraft 每项功能省下的制作时间,飘走后落进卡片页脚 | 功能点连打段——"功能很多"用连招讲;游戏化语言浓 |
21
- | C anime-impact 打击帧 | crash-zoom 撞停的 3f 整幅负片反色 + 放射集中线 + 红青色散,第 4f 全撤 | 全片唯一高潮的那一拳;强调级封顶 |
22
-
23
- ## 参数表
24
- | 参数 | 典型值 | 调节手感 |
25
- |------|--------|----------|
26
- | B 节奏 | 三卡各隔 28f(动画时间 30/58/86),命中前 10f ease-in(quad) 砸落;每命中全局冻结 2f(背景斜纹滚动也一起冻) | 间隔均匀才有"连招"节拍感 |
27
- | B 伤害数字 | 打在卡面中下部,scale 1.45→1 + 上浮 150px 出卡沿,4f 后 12f 渐隐;字号逐击 88/104/124px,黄色斜体 + 硬投影 | 渐隐 >16f 拖泥带水,遮住下一击;从卡顶上方起跳会撞上角落计数器 |
28
- | B 计数器 | 脉冲峰值 1.3/1.45/1.6、rotate −2/−4/−6°、字号 140/166/196px,`exp(−t/2.4)` 回落;三格热度条逐格点亮 | 逐次加码是命门——三次一样大读不出"越打越狠" |
29
- | C 急推撞停 | 先 6f 预备回拉到 0.985,再 crash-zoom 6f ease-in(cubic) 推到 2.25x(卡高 454×2.25≈画高 95%,描边不被画框切半),卡心收敛到画面正中;飞行帧做时间采样运动模糊 + 中心锐利副本 | 急推参数走 crash-zoom-punch 卡 |
30
- | C 冲击帧 | 撞停起 3f:`invert(1) grayscale(1) contrast(1.45)` + 34 粗楔 + 22 细针集中线(每帧换形态,内端被径向渐隐吃掉留出焦点)+ 红/青负片副本 screen 叠加 ±8px 错位;第 4f 全撤,卡外页面压暗一拍 | 3f 是甜点——4f 起观众开始"看清"负片,魔术就穿帮 |
31
- | C 恢复震屏 | 第 4f 起 6px 指数衰减(τ≈2.2f),~12f 收干 | 幅度须过肉眼阈值(可感性判例) |
32
-
33
- ## 已知坑
34
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
35
- 首次实战须以真实素材回验
36
- - B 式顿帧**必须全局**——背景滚动也要一起冻,否则读不出"时间被
37
- 咬住",只像那张卡掉帧。demo 用统一 remap 帧 df 驱动所有层是命门;
38
- 唯闪白等"冻结期间也要发生"的效果用真实帧 f 驱动
39
- - 帧 remap 与 speed-ramp-freeze 同技术根,同一镜头别叠用两卡——
40
- 两套 remap 互相打架,节奏读作故障
41
- - C 式负片帧在纸墨审美的片子里非常抢戏——限高潮一次,且必须与
42
- impact 音效同帧落地(拟音走 sound-design),无声的负片帧读作闪坏
43
- - B 式游戏化语言浓(伤害数字/combo 是明晃晃的游戏梗),产品调性
44
- 偏严肃时慎用
45
- - B 式多次顿帧后真实帧比动画时间多出累计冻结帧,排镜头预算时
46
- 按 `真实命中帧 = 动画命中帧 + 已冻结帧数` 折算(demo HITS_REAL)
47
-
48
- ## 参考实现
49
- demos/effects/impact-feedback/
50
- (AnimeImpact.tsx / HitCounter.tsx)
1
+ ---
2
+ name: impact-feedback
3
+ 一句话: 命中反馈两式——hit-counter 连招计数(顿帧+伤害数字+combo 跳字)、anime-impact 动漫打击帧(负片+集中线+色散)
4
+ 适用: 元素落位/撞击的"命中一瞬"——给砸入、撞停加游戏级手感;按强度阶梯选式
5
+ 时长: n/a(元素级技法,寄生在落位动作上;各式占用帧数见参数表)
6
+ 能量: 高(瞬时冲击)
7
+ ---
8
+
9
+ ## 意图
10
+ 元素砸到位却没有"砸到了"的一瞬,落位读作 PPT 飞入。游戏 juice
11
+ (Vlambeer screenshake 理论)与动漫演出 impact frames 给了同一答案:
12
+ 命中的那几帧把时间咬住,冲量才传到观众手上。两式是一条强度阶梯:
13
+ B 用局部顿帧叠伤害数字和 combo 跳字,把功能清单剪成一套连招,
14
+ 叙事感最强;C 是最重的一拳——撞停 3 帧翻负片炸集中线,强调级最高、
15
+ 最风格化。
16
+
17
+ ## 两式选型表
18
+ | 式 | 做法 | 适用 |
19
+ |----|------|------|
20
+ | B hit-counter 连招计数 | 三卡接连砸入,每命中 = 顿帧 2f + 伤害数字上浮 + ×N 计数跳字逐次加码;demo 把"伤害"写成 video-shotcraft 每项功能省下的制作时间,飘走后落进卡片页脚 | 功能点连打段——"功能很多"用连招讲;游戏化语言浓 |
21
+ | C anime-impact 打击帧 | crash-zoom 撞停的 3f 整幅负片反色 + 放射集中线 + 红青色散,第 4f 全撤 | 全片唯一高潮的那一拳;强调级封顶 |
22
+
23
+ ## 参数表
24
+ | 参数 | 典型值 | 调节手感 |
25
+ |------|--------|----------|
26
+ | B 节奏 | 三卡各隔 28f(动画时间 30/58/86),命中前 10f ease-in(quad) 砸落;每命中全局冻结 2f(背景斜纹滚动也一起冻) | 间隔均匀才有"连招"节拍感 |
27
+ | B 伤害数字 | 打在卡面中下部,scale 1.45→1 + 上浮 150px 出卡沿,4f 后 12f 渐隐;字号逐击 88/104/124px,黄色斜体 + 硬投影 | 渐隐 >16f 拖泥带水,遮住下一击;从卡顶上方起跳会撞上角落计数器 |
28
+ | B 计数器 | 脉冲峰值 1.3/1.45/1.6、rotate −2/−4/−6°、字号 140/166/196px,`exp(−t/2.4)` 回落;三格热度条逐格点亮 | 逐次加码是命门——三次一样大读不出"越打越狠" |
29
+ | C 急推撞停 | 先 6f 预备回拉到 0.985,再 crash-zoom 6f ease-in(cubic) 推到 2.25x(卡高 454×2.25≈画高 95%,描边不被画框切半),卡心收敛到画面正中;飞行帧做时间采样运动模糊 + 中心锐利副本 | 急推参数走 crash-zoom-punch 卡 |
30
+ | C 冲击帧 | 撞停起 3f:`invert(1) grayscale(1) contrast(1.45)` + 34 粗楔 + 22 细针集中线(每帧换形态,内端被径向渐隐吃掉留出焦点)+ 红/青负片副本 screen 叠加 ±8px 错位;第 4f 全撤,卡外页面压暗一拍 | 3f 是甜点——4f 起观众开始"看清"负片,魔术就穿帮 |
31
+ | C 恢复震屏 | 第 4f 起 6px 指数衰减(τ≈2.2f),~12f 收干 | 幅度须过肉眼阈值(可感性判例) |
32
+
33
+ ## 已知坑
34
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
35
+ 首次实战须以真实素材回验
36
+ - B 式顿帧**必须全局**——背景滚动也要一起冻,否则读不出"时间被
37
+ 咬住",只像那张卡掉帧。demo 用统一 remap 帧 df 驱动所有层是命门;
38
+ 唯闪白等"冻结期间也要发生"的效果用真实帧 f 驱动
39
+ - 帧 remap 与 speed-ramp-freeze 同技术根,同一镜头别叠用两卡——
40
+ 两套 remap 互相打架,节奏读作故障
41
+ - C 式负片帧在纸墨审美的片子里非常抢戏——限高潮一次,且必须与
42
+ impact 音效同帧落地(拟音走 sound-design),无声的负片帧读作闪坏
43
+ - B 式游戏化语言浓(伤害数字/combo 是明晃晃的游戏梗),产品调性
44
+ 偏严肃时慎用
45
+ - B 式多次顿帧后真实帧比动画时间多出累计冻结帧,排镜头预算时
46
+ 按 `真实命中帧 = 动画命中帧 + 已冻结帧数` 折算(demo HITS_REAL)
47
+
48
+ ## 参考实现
49
+ demos/effects/impact-feedback/
50
+ (AnimeImpact.tsx / HitCounter.tsx)
@@ -1,46 +1,46 @@
1
- ---
2
- name: light-play-moves
3
- 一句话: 光效两式——spotlight-sweep 聚光扫字、sheen 单点扫光
4
- 适用: 把光当另一种笔触(扫/擦):暗场标题揭示(A)、主角卡加冕(B)
5
- 时长: A 170f ~5.7s / B 150f ~5s
6
- 能量: A 中 / B 低
7
- 标签: typography
8
- ---
9
-
10
- ## 意图
11
- 库内"光"一直只有 spotlight-hero-card 一个点射手法;这两式把光做成
12
- 体系,两种笔触两种职责:A 是**扫**——暗场里几乎不可见的标题被锥形
13
- 光摆动扫亮,光到哪哪亮,与 spotlight-hero-card 的区别是那个打卡片、
14
- 这个扫文字;B 是**擦**——深墨主角卡上一道 45° 高光带缓扫一次,被
15
- 圆角裁住,无声的加冕。
16
- 全部深底或深主角——**白底上提亮不可见**(判例)是这整张卡的地基。
17
-
18
- ## 两式选型
19
- | 式 | 做法 | 适用 |
20
- |----|------|------|
21
- | A spotlight-sweep | 双层同文本:暗版 0.07 常驻,亮版 radial mask 随光斑走,钟摆式追光摆两个半来回阻尼停在正中,iris 张开全亮定格(demo 标题「Craft the shot.」,收在 video-shotcraft 字标) | 暗场大标题揭示开场 |
22
- | B sheen-sweep | 深墨卡(demo:钛黑金属卡,蚀刻 video-shotcraft 单色标志与字标)转向光源的同时,115° 高光带扫一次,overflow hidden 圆角裁剪 | 主角卡静止段的一次加冕 |
23
-
24
- ## 参数表
25
- | 参数 | 典型值 | 调节手感 |
26
- |------|--------|----------|
27
- | A 反差 | 暗版 0.07 vs 全亮 1.0;demo 为暖白 #f8efe2 衬线字对酒红黑天鹅绒幕布(#1a0a0d→#070203),幕布本身也只在光斑里被照亮 | 反差是本式全部;暗版 >0.15 就没有"点亮"了 |
28
- | A 光斑 | ellipse 360px(硬芯+长软边),钟摆:x = 960+600·sin θ·env,θ 从 −π/2(最左)起、周期 50f、走 2.25 个周期至 f121;y 走下凹弧(中心最低 44px);env 第一来回后 smooth 收到 0,x 与速度在 f121 同时归零(纯 sin 会在中心最快时急刹);开灯 4–10f 钨丝预热闪两下 | f121–141 iris 张开 360→1080px 全亮(out-cubic)、光锥线性收成柔和顶光(扩散/消散解耦判例) |
29
- | B 高光带 | 宽 2×卡宽,115° 渐变:宽柔光 0.14 + 窄亮芯 0.5(暖白,screen),58–90f swift 扫一次;同段卡 rotateY 21°→14°(转向光源 = 扫光的物理动机);光带下拉丝纹与蚀刻字的亮版副本被同一遮罩揭开 | 0.5 芯在钛黑上足够响又不糊;双向 clamp + 条件挂载保证只扫一次 |
30
- | 摘罩 | 扫光(B)条件挂载,扫完即卸载;A 光锥收成常驻柔和顶光 | opacity 0 残留层照样每帧合成——不用的光效层直接卸载 |
31
- | 收尾 | A ~30f / B ~55f hold;hold 段只留极缓运动(A 浮尘与顶光呼吸、B 卡 rotateY 再转 1.5°) | 不加手持抖动(Q3) |
32
-
33
- ## 已知坑
34
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
35
- 首次实战须以真实素材回验
36
- - **全片光效合计 ≤2 次**——光是最快掉价的手法,每个卡都闪一下
37
- 等于廉价模板
38
- - B 式是高标准重试通过:旧否决(2026-07-13 判例)针对当时实现不好看,
39
- 非路径不可行;四约束 = 单点+主角+圆角裁剪+只扫一次,违反任何
40
- 一条回到否决区
41
- - 深底是地基:两式全部依赖深底/深主角,白底上做光效直接跳过本卡
42
- - A 与 spotlight-hero-card 同片二选一,都是"聚光"语汇
43
-
44
- ## 参考实现
45
- demos/effects/light-play-moves/
46
- (SheenSweepRetry.tsx / SpotlightSweepReveal.tsx)
1
+ ---
2
+ name: light-play-moves
3
+ 一句话: 光效两式——spotlight-sweep 聚光扫字、sheen 单点扫光
4
+ 适用: 把光当另一种笔触(扫/擦):暗场标题揭示(A)、主角卡加冕(B)
5
+ 时长: A 170f ~5.7s / B 150f ~5s
6
+ 能量: A 中 / B 低
7
+ 标签: typography
8
+ ---
9
+
10
+ ## 意图
11
+ 库内"光"一直只有 spotlight-hero-card 一个点射手法;这两式把光做成
12
+ 体系,两种笔触两种职责:A 是**扫**——暗场里几乎不可见的标题被锥形
13
+ 光摆动扫亮,光到哪哪亮,与 spotlight-hero-card 的区别是那个打卡片、
14
+ 这个扫文字;B 是**擦**——深墨主角卡上一道 45° 高光带缓扫一次,被
15
+ 圆角裁住,无声的加冕。
16
+ 全部深底或深主角——**白底上提亮不可见**(判例)是这整张卡的地基。
17
+
18
+ ## 两式选型
19
+ | 式 | 做法 | 适用 |
20
+ |----|------|------|
21
+ | A spotlight-sweep | 双层同文本:暗版 0.07 常驻,亮版 radial mask 随光斑走,钟摆式追光摆两个半来回阻尼停在正中,iris 张开全亮定格(demo 标题「Craft the shot.」,收在 video-shotcraft 字标) | 暗场大标题揭示开场 |
22
+ | B sheen-sweep | 深墨卡(demo:钛黑金属卡,蚀刻 video-shotcraft 单色标志与字标)转向光源的同时,115° 高光带扫一次,overflow hidden 圆角裁剪 | 主角卡静止段的一次加冕 |
23
+
24
+ ## 参数表
25
+ | 参数 | 典型值 | 调节手感 |
26
+ |------|--------|----------|
27
+ | A 反差 | 暗版 0.07 vs 全亮 1.0;demo 为暖白 #f8efe2 衬线字对酒红黑天鹅绒幕布(#1a0a0d→#070203),幕布本身也只在光斑里被照亮 | 反差是本式全部;暗版 >0.15 就没有"点亮"了 |
28
+ | A 光斑 | ellipse 360px(硬芯+长软边),钟摆:x = 960+600·sin θ·env,θ 从 −π/2(最左)起、周期 50f、走 2.25 个周期至 f121;y 走下凹弧(中心最低 44px);env 第一来回后 smooth 收到 0,x 与速度在 f121 同时归零(纯 sin 会在中心最快时急刹);开灯 4–10f 钨丝预热闪两下 | f121–141 iris 张开 360→1080px 全亮(out-cubic)、光锥线性收成柔和顶光(扩散/消散解耦判例) |
29
+ | B 高光带 | 宽 2×卡宽,115° 渐变:宽柔光 0.14 + 窄亮芯 0.5(暖白,screen),58–90f swift 扫一次;同段卡 rotateY 21°→14°(转向光源 = 扫光的物理动机);光带下拉丝纹与蚀刻字的亮版副本被同一遮罩揭开 | 0.5 芯在钛黑上足够响又不糊;双向 clamp + 条件挂载保证只扫一次 |
30
+ | 摘罩 | 扫光(B)条件挂载,扫完即卸载;A 光锥收成常驻柔和顶光 | opacity 0 残留层照样每帧合成——不用的光效层直接卸载 |
31
+ | 收尾 | A ~30f / B ~55f hold;hold 段只留极缓运动(A 浮尘与顶光呼吸、B 卡 rotateY 再转 1.5°) | 不加手持抖动(Q3) |
32
+
33
+ ## 已知坑
34
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
35
+ 首次实战须以真实素材回验
36
+ - **全片光效合计 ≤2 次**——光是最快掉价的手法,每个卡都闪一下
37
+ 等于廉价模板
38
+ - B 式是高标准重试通过:旧否决(2026-07-13 判例)针对当时实现不好看,
39
+ 非路径不可行;四约束 = 单点+主角+圆角裁剪+只扫一次,违反任何
40
+ 一条回到否决区
41
+ - 深底是地基:两式全部依赖深底/深主角,白底上做光效直接跳过本卡
42
+ - A 与 spotlight-hero-card 同片二选一,都是"聚光"语汇
43
+
44
+ ## 参考实现
45
+ demos/effects/light-play-moves/
46
+ (SheenSweepRetry.tsx / SpotlightSweepReveal.tsx)
@@ -1,56 +1,56 @@
1
- ---
2
- name: radial-ripple-phone-chips
3
- 一句话: 暖沙底四层同心圆错相呼吸如水波,中央手机 mockup 屏内 feed 自动缓滚,两侧白色 chip 先后 spring pop 入场并悬浮
4
- 适用: 移动端产品的"这就是它"定格镜头;功能点分列两侧的介绍段;片头/片尾的产品全景
5
- 时长: 约5.6s(168f@30fps)
6
- 能量: 低(安静、有呼吸感,靠同心圆的持续起伏撑住不冷场)
7
- ---
8
-
9
- ## 意图
10
- 用最少的动作把手机放在画面正中并让它"活着":同心圆负责氛围呼吸,
11
- 屏内自动滚屏负责证明"里面有内容在跑",两侧 chip 负责点出功能名。
12
- 三层动作各自极慢,叠起来才不会显得静止——这是产品定格镜头的标准配法。
13
-
14
- ## 动效核心
15
- - demo 画面(look = sand,手机里是 video-shotcraft 的镜头库 feed):1080p 原生尺寸布局(不走 DesignStage 放大),
16
- 手机 430×900 占画高 83%,左下角镜刻标志 + video-shotcraft 字标在两枚 chip 落定后升起,收尾是一张产品海报
17
- - 4 层同心圆(2240/1760/1280/840px,#dccbb4→#f2eadf 由深到浅,最外两层出画铺满)各自
18
- `scale 1 ± 0.06`,全片走 1.5 个正弦周期,相邻层相位差 1.7 rad
19
- ——错相是"水波"而不是"整体缩放"的关键;每层带受光上沿 + 白色发丝外缘,中心一团暖白柔光托住手机
20
- - 手机:暖钛金属边框 12px + 黑边 9px、70px 圆角、灵动岛/侧键/玻璃斜反光,两层落地投影;
21
- 0–26f 从下方 90px snappy 升起,投影随落位收紧
22
- - 屏内为镜头设计的 feed:大标题 + 精选大卡 + 8 条单集卡(几何插画封面 / 标题 / 时长·节目 / 收听进度),
23
- 底部常驻迷你播放条(进度匀速推进、波形确定性轻跳),状态栏与播放条下方各一层屏幕底色渐隐
24
- - feed `translateY 0→−560px`,窗口 `t 0.08→0.98` **匀速无缓动**
25
- - chip pop:`springAt(t0, damping 13, stiffness 190)` 驱动 scale 0.8→1(一次可见过冲),
26
- 同时从手机一侧 snappy 外移 28px、opacity 5f 跳满;左 chip 起 37f、右 chip 起 67f
27
- - pop 完接 `sin` 悬浮 ±8px(2 周期/全片),并由 pop 后 18f 起 24f 的 smooth 渐渐介入
28
- ——不是一落位就开始飘
29
-
30
- ## 参数表
31
- | 参数 | 典型值 | 调节手感 |
32
- |------|--------|----------|
33
- | 同心圆层数/尺寸 | 4 层 2240/1760/1280/840px(1080p) | 3 层撑不满画面;最外层要出画,否则读作一块圆形色板 |
34
- | 呼吸幅度 | scale 1±0.06,1.5 周期/全片 | 0.06 已是上限;到 0.1 就读作"脉冲动画"而非水波 |
35
- | 相位差 | 相邻层 1.7 rad | 相位全同 = 整块放大缩小;差 1.7 才有波从中心荡开的错觉 |
36
- | 手机投影 | 贴近实影 0 4px 10px + 远影 0 40px 80px -20px + 环境影 0 90px 140px -40px(sand.shadow 带色相) | 投影是手机"浮在波上"的唯一依据,去掉就贴平了 |
37
- | 自动滚屏 | translateY 0→−560px,t 0.08→0.98 匀速 | 加 ease 立刻读作"有人在滑";匀速才是自动播放 |
38
- | chip pop | spring damping 13 / stiffness 190,scale 0.8→1,外移 28px | 过冲量是"弹出"的全部质感,damping >20 就平了 |
39
- | chip 时序 | 左 37f / 右 67f(1s 差) | 同时出现读作两个标签;错开才有"一个一个说"的节奏 |
40
- | chip 悬浮 | ±8px、2 周期,pop 后 18f 起 24f 渐入 | 幅度超过 ~12px 就和同心圆的呼吸抢戏 |
41
- | chip 字号 | 36px / 600 字重 + 60px 强调色图标圆 | 1080p 下 chip 是要读的字,别回到 12–20px 的贴纸尺寸 |
42
-
43
- ## 已知坑
44
- - chip 用 `right: 1920 − PX + CHIP_GAP` / `left: PX + PW + CHIP_GAP` 贴着手机外缘定位;
45
- 改手机宽度 PW 后两侧 chip 自动跟随,但要确认长文案 chip 的外缘仍在 96px 安全边距内
46
- - 屏内 feed 是假条目的占位内容,落地换真实截图时总高必须
47
- 大于「560px + 屏高」,否则滚到底露白
48
- - 手机屏只有 ~390px 宽:单集卡标题控制在 ~18 个字符、元信息 `nowrap + ellipsis`,否则折行把卡片撑高
49
- - 同心圆是实色叠放(不是描边圆环),层序必须由大到小 append,
50
- 顺序反了就只看得见最大那层
51
- - ACCENT(默认 sand 的赤陶 #c4552d)作用于屏内封面/进度条/播放键与 chip 图标,
52
- 换项目品牌色只改这一个变量即可换肤
53
-
54
- ## 参考实现
55
- demos/effects/radial-ripple-phone-chips/
56
- (RadialRipplePhoneChips.tsx)
1
+ ---
2
+ name: radial-ripple-phone-chips
3
+ 一句话: 暖沙底四层同心圆错相呼吸如水波,中央手机 mockup 屏内 feed 自动缓滚,两侧白色 chip 先后 spring pop 入场并悬浮
4
+ 适用: 移动端产品的"这就是它"定格镜头;功能点分列两侧的介绍段;片头/片尾的产品全景
5
+ 时长: 约5.6s(168f@30fps)
6
+ 能量: 低(安静、有呼吸感,靠同心圆的持续起伏撑住不冷场)
7
+ ---
8
+
9
+ ## 意图
10
+ 用最少的动作把手机放在画面正中并让它"活着":同心圆负责氛围呼吸,
11
+ 屏内自动滚屏负责证明"里面有内容在跑",两侧 chip 负责点出功能名。
12
+ 三层动作各自极慢,叠起来才不会显得静止——这是产品定格镜头的标准配法。
13
+
14
+ ## 动效核心
15
+ - demo 画面(look = sand,手机里是 video-shotcraft 的镜头库 feed):1080p 原生尺寸布局(不走 DesignStage 放大),
16
+ 手机 430×900 占画高 83%,左下角镜刻标志 + video-shotcraft 字标在两枚 chip 落定后升起,收尾是一张产品海报
17
+ - 4 层同心圆(2240/1760/1280/840px,#dccbb4→#f2eadf 由深到浅,最外两层出画铺满)各自
18
+ `scale 1 ± 0.06`,全片走 1.5 个正弦周期,相邻层相位差 1.7 rad
19
+ ——错相是"水波"而不是"整体缩放"的关键;每层带受光上沿 + 白色发丝外缘,中心一团暖白柔光托住手机
20
+ - 手机:暖钛金属边框 12px + 黑边 9px、70px 圆角、灵动岛/侧键/玻璃斜反光,两层落地投影;
21
+ 0–26f 从下方 90px snappy 升起,投影随落位收紧
22
+ - 屏内为镜头设计的 feed:大标题 + 精选大卡 + 8 条单集卡(几何插画封面 / 标题 / 时长·节目 / 收听进度),
23
+ 底部常驻迷你播放条(进度匀速推进、波形确定性轻跳),状态栏与播放条下方各一层屏幕底色渐隐
24
+ - feed `translateY 0→−560px`,窗口 `t 0.08→0.98` **匀速无缓动**
25
+ - chip pop:`springAt(t0, damping 13, stiffness 190)` 驱动 scale 0.8→1(一次可见过冲),
26
+ 同时从手机一侧 snappy 外移 28px、opacity 5f 跳满;左 chip 起 37f、右 chip 起 67f
27
+ - pop 完接 `sin` 悬浮 ±8px(2 周期/全片),并由 pop 后 18f 起 24f 的 smooth 渐渐介入
28
+ ——不是一落位就开始飘
29
+
30
+ ## 参数表
31
+ | 参数 | 典型值 | 调节手感 |
32
+ |------|--------|----------|
33
+ | 同心圆层数/尺寸 | 4 层 2240/1760/1280/840px(1080p) | 3 层撑不满画面;最外层要出画,否则读作一块圆形色板 |
34
+ | 呼吸幅度 | scale 1±0.06,1.5 周期/全片 | 0.06 已是上限;到 0.1 就读作"脉冲动画"而非水波 |
35
+ | 相位差 | 相邻层 1.7 rad | 相位全同 = 整块放大缩小;差 1.7 才有波从中心荡开的错觉 |
36
+ | 手机投影 | 贴近实影 0 4px 10px + 远影 0 40px 80px -20px + 环境影 0 90px 140px -40px(sand.shadow 带色相) | 投影是手机"浮在波上"的唯一依据,去掉就贴平了 |
37
+ | 自动滚屏 | translateY 0→−560px,t 0.08→0.98 匀速 | 加 ease 立刻读作"有人在滑";匀速才是自动播放 |
38
+ | chip pop | spring damping 13 / stiffness 190,scale 0.8→1,外移 28px | 过冲量是"弹出"的全部质感,damping >20 就平了 |
39
+ | chip 时序 | 左 37f / 右 67f(1s 差) | 同时出现读作两个标签;错开才有"一个一个说"的节奏 |
40
+ | chip 悬浮 | ±8px、2 周期,pop 后 18f 起 24f 渐入 | 幅度超过 ~12px 就和同心圆的呼吸抢戏 |
41
+ | chip 字号 | 36px / 600 字重 + 60px 强调色图标圆 | 1080p 下 chip 是要读的字,别回到 12–20px 的贴纸尺寸 |
42
+
43
+ ## 已知坑
44
+ - chip 用 `right: 1920 − PX + CHIP_GAP` / `left: PX + PW + CHIP_GAP` 贴着手机外缘定位;
45
+ 改手机宽度 PW 后两侧 chip 自动跟随,但要确认长文案 chip 的外缘仍在 96px 安全边距内
46
+ - 屏内 feed 是假条目的占位内容,落地换真实截图时总高必须
47
+ 大于「560px + 屏高」,否则滚到底露白
48
+ - 手机屏只有 ~390px 宽:单集卡标题控制在 ~18 个字符、元信息 `nowrap + ellipsis`,否则折行把卡片撑高
49
+ - 同心圆是实色叠放(不是描边圆环),层序必须由大到小 append,
50
+ 顺序反了就只看得见最大那层
51
+ - ACCENT(默认 sand 的赤陶 #c4552d)作用于屏内封面/进度条/播放键与 chip 图标,
52
+ 换项目品牌色只改这一个变量即可换肤
53
+
54
+ ## 参考实现
55
+ demos/effects/radial-ripple-phone-chips/
56
+ (RadialRipplePhoneChips.tsx)
@@ -1,49 +1,49 @@
1
- ---
2
- name: riso-print-hits
3
- 一句话: 套印错位冲击帧——riso-misregistration-hit 单发:标题撞停瞬间裂成双色 riso 印版,抖两下"啪"地套准
4
- 适用: 标题/卡片的命中强调,纸墨审美版的"故障闪";全片 1–2 次的单发高潮
5
- 时长: 4s(120f,单发)
6
- 能量: 高
7
- 标签: typography
8
- ---
9
-
10
- ## 意图
11
- RGB 色散故障闪(impact-feedback C 式的一部分)是荧光屏语言,与纸墨
12
- 调性相克。这张卡给出印刷版平替:元素裂成两份单色 riso 印版(demo:荧光粉 × 蓝;
13
- multiply 油墨感而非 screen 荧光感,两版套准时叠成深色墨),
14
- 像 risograph 没对准版,抖几下
15
- "啪"地套准——同样的冲击力,介质想象完全换成纸上油墨。单发:
16
- 撞停瞬间裂版、震荡衰减、硬切套准,给一次命中盖章。demo 是一张 video-shotcraft 的
17
- 双色 riso 宣传海报(「CRAFT IT / LOUD.」+ 三栏卖点,圆章中心是单色版镜刻标志)。
18
-
19
- ## 做法
20
- | 式 | 做法 | 适用 |
21
- |----|------|------|
22
- | misregistration-hit 单发 | 标题 8f 撞入撞停,裂两版反向错 ~40px,44f 衰减震荡后硬切套准 + scale 脉冲 + 「ON REGISTER」圆章盖下 | 全片 1–2 次的命中盖章;标题/大字的到位一瞬 |
23
-
24
- ## 参数表
25
- | 参数 | 典型值 | 调节手感 |
26
- |------|--------|----------|
27
- | 双版 | 两色 riso 油墨:荧光粉 #ff4fa3 + 蓝 #1f5fc4(套准叠成深紫)。`mix-blend-mode: multiply` 叠在再生纸(#f3eee2 + 静态纸纤维/油墨颗粒)上,位移反向;套准即两版归零重合 | multiply 叠出的重影就是"油墨没对准";screen 叠加立刻变荧光故障;两版选互补色相、套准后叠成近黑最好,别用纯灰(读作阴影) |
28
- | 错位包络 | `offset = A·cos(2πt/18)·exp(-t/60)`,A=(20,8)px 两版反向(300px 标题);帧 72 硬切归零 | 命门:套准是**硬切跳变**不是渐收——衰减到 ~11px 残余时啪地归零才有"啪";纯渐收读不出套准一拍 |
29
- | 撞入 | 8f Easing.in(cubic) 从画外撞停,命中帧即裂版 | 裂版必须与撞停同帧——晚 2f 就读作两件事 |
30
- | 套准脉冲 | 归零帧 4f scale 1.03→1;同帧圆章 scale 1.5→1 盖下;命中帧整页 1.2% 顿挫 10f 回落 | 盖章的一拍;省略则套准无重量 |
31
- | 作用域 | 错版只作用标题,背景(太阳 / 版记 / 信息栏)保持套准 | 整画面全裂读作故障而非印刷 |
32
- | 收尾 | 套准后 ≥40f 真静止 | R1 |
33
-
34
- ## 已知坑
35
- - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
36
- 首次实战须以真实素材回验
37
- - **错位幅度可感性判例(本批实渲)**:词汇表原案 ±5px 在 1920 宽画面
38
- 正常速度下肉眼几乎不可见——单版 16px/总分离 32px 起步才可感(200–300px 大标题按 20px/40px);
39
- 幅度存疑时做极端版给用户看(可感性优先)
40
- - 本卡与 impact-feedback C(负片冲击帧)语义重叠——纸墨调性片子用本卡、
41
- 游戏/动漫调性用 C 式,同片不并用(P4)
42
- - 错位方向一横一纵混合(x 为主 y 少量)更像没对准版;纯横向读作
43
- 左右晃动
44
- - 300px 大字配 −0.045em 负字距时,相邻字形的横笔可能恰好相接(如 CRAFT 的 F→T 顶横),
45
- 两边抗锯齿叠出一条发丝亮缝——给前一个字单独再收 ~0.01em 让两笔重叠即可
46
-
47
- ## 参考实现
48
- demos/effects/riso-print-hits/
49
- (RisoMisregistrationHit.tsx)
1
+ ---
2
+ name: riso-print-hits
3
+ 一句话: 套印错位冲击帧——riso-misregistration-hit 单发:标题撞停瞬间裂成双色 riso 印版,抖两下"啪"地套准
4
+ 适用: 标题/卡片的命中强调,纸墨审美版的"故障闪";全片 1–2 次的单发高潮
5
+ 时长: 4s(120f,单发)
6
+ 能量: 高
7
+ 标签: typography
8
+ ---
9
+
10
+ ## 意图
11
+ RGB 色散故障闪(impact-feedback C 式的一部分)是荧光屏语言,与纸墨
12
+ 调性相克。这张卡给出印刷版平替:元素裂成两份单色 riso 印版(demo:荧光粉 × 蓝;
13
+ multiply 油墨感而非 screen 荧光感,两版套准时叠成深色墨),
14
+ 像 risograph 没对准版,抖几下
15
+ "啪"地套准——同样的冲击力,介质想象完全换成纸上油墨。单发:
16
+ 撞停瞬间裂版、震荡衰减、硬切套准,给一次命中盖章。demo 是一张 video-shotcraft 的
17
+ 双色 riso 宣传海报(「CRAFT IT / LOUD.」+ 三栏卖点,圆章中心是单色版镜刻标志)。
18
+
19
+ ## 做法
20
+ | 式 | 做法 | 适用 |
21
+ |----|------|------|
22
+ | misregistration-hit 单发 | 标题 8f 撞入撞停,裂两版反向错 ~40px,44f 衰减震荡后硬切套准 + scale 脉冲 + 「ON REGISTER」圆章盖下 | 全片 1–2 次的命中盖章;标题/大字的到位一瞬 |
23
+
24
+ ## 参数表
25
+ | 参数 | 典型值 | 调节手感 |
26
+ |------|--------|----------|
27
+ | 双版 | 两色 riso 油墨:荧光粉 #ff4fa3 + 蓝 #1f5fc4(套准叠成深紫)。`mix-blend-mode: multiply` 叠在再生纸(#f3eee2 + 静态纸纤维/油墨颗粒)上,位移反向;套准即两版归零重合 | multiply 叠出的重影就是"油墨没对准";screen 叠加立刻变荧光故障;两版选互补色相、套准后叠成近黑最好,别用纯灰(读作阴影) |
28
+ | 错位包络 | `offset = A·cos(2πt/18)·exp(-t/60)`,A=(20,8)px 两版反向(300px 标题);帧 72 硬切归零 | 命门:套准是**硬切跳变**不是渐收——衰减到 ~11px 残余时啪地归零才有"啪";纯渐收读不出套准一拍 |
29
+ | 撞入 | 8f Easing.in(cubic) 从画外撞停,命中帧即裂版 | 裂版必须与撞停同帧——晚 2f 就读作两件事 |
30
+ | 套准脉冲 | 归零帧 4f scale 1.03→1;同帧圆章 scale 1.5→1 盖下;命中帧整页 1.2% 顿挫 10f 回落 | 盖章的一拍;省略则套准无重量 |
31
+ | 作用域 | 错版只作用标题,背景(太阳 / 版记 / 信息栏)保持套准 | 整画面全裂读作故障而非印刷 |
32
+ | 收尾 | 套准后 ≥40f 真静止 | R1 |
33
+
34
+ ## 已知坑
35
+ - demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
36
+ 首次实战须以真实素材回验
37
+ - **错位幅度可感性判例(本批实渲)**:词汇表原案 ±5px 在 1920 宽画面
38
+ 正常速度下肉眼几乎不可见——单版 16px/总分离 32px 起步才可感(200–300px 大标题按 20px/40px);
39
+ 幅度存疑时做极端版给用户看(可感性优先)
40
+ - 本卡与 impact-feedback C(负片冲击帧)语义重叠——纸墨调性片子用本卡、
41
+ 游戏/动漫调性用 C 式,同片不并用(P4)
42
+ - 错位方向一横一纵混合(x 为主 y 少量)更像没对准版;纯横向读作
43
+ 左右晃动
44
+ - 300px 大字配 −0.045em 负字距时,相邻字形的横笔可能恰好相接(如 CRAFT 的 F→T 顶横),
45
+ 两边抗锯齿叠出一条发丝亮缝——给前一个字单独再收 ~0.01em 让两笔重叠即可
46
+
47
+ ## 参考实现
48
+ demos/effects/riso-print-hits/
49
+ (RisoMisregistrationHit.tsx)