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,170 +1,170 @@
1
- # sound-design — 声音设计
2
-
3
- 声音是时间线级资产:集中管理 SFX 钉帧表,场景组件不内嵌音频。
4
- 新制作与换音统一从 **Freesound** 搜索、下载,操作见 [sfx-sourcing.md](sfx-sourcing.md)。
5
- 仓库不再维护共享 SFX 库;模板的历史音频只用于原样预览与回归验证。
6
-
7
- ## 1. 方法
8
-
9
- 1. 分镜阶段记下动作、材质、时长和音色;画面时间线锁定后再精确钉 SFX。
10
- 用户已指定 BGM 的卡点片仍先按 [music-beat-sync.md](music-beat-sync.md) 分析再分镜。
11
- 2. 先铺 BGM 定能量骨架,再钉画面独有动作。强鼓点本身已有节拍,不给每拍重复加 impact。
12
- 3. SFX 按片种与真实声源选:whoosh(运镜)、impact(落地)、riser(铺垫)、
13
- sparkle(光效)、transition(转场),有辨识度的动作另配真实拟音。
14
- 4. 候选在成片语境中试听。下载量、评分、描述、波形是筛选证据,不能被写成“已经听过”。
15
- 5. 下载到当前工程 `public/audio/sfx/`,随文件保留 `audio-manifest.json` 与
16
- `FREESOUND-CREDITS.md`;Remotion 只读这些固定本地文件,渲染时不联网找音。
17
- 6. 声音时间表从 `SHOTS` 派生并供工作台复用;时间线变更后逐条复核,最终按
18
- [final-review.md](final-review.md) 的 A 项验收。
19
-
20
- ## 2. BGM 选型与混音
21
-
22
- Freesound 路线负责 SFX。BGM 保留用户指定音乐或 `assets/audio/bgm/` 的备选,
23
- 授权见 `assets/audio/ATTRIBUTION.md`,不能把 SFX 许可套到音乐上。
24
-
25
- - 音乐能量应匹配片子结构。产品宣传片可优先试鼓点清楚的电子底;用户的调性要求优先。
26
- 候选曲垫进成片试听,避免只因“欢快/好听”选择与产品气质不符的音乐。
27
- - 音量按素材实测给。模板中 0.34 的 BGM、0.2–0.6 的 SFX 只是历史参考,
28
- `volume` 是乘法系数,不是目标响度。多轨叠加后检查削波和人声/SFX 是否被掩盖。
29
- - 用 `interpolate` 做首尾淡入淡出;有配音时在说话段压低音乐。
30
- - BGM `<Audio>` 单独受 `bgm` inputProp(默认 true)控制;配 BGM 的片子从同一
31
- 时间线交付带 BGM / 无 BGM(保留 SFX)两版。跨平台无 BGM 渲染使用
32
- `--props=props-nobgm.json`,文件内容 `{"bgm":false}`。
33
-
34
- ## 3. 音色与选材
35
-
36
- ### 3.1 从画面组织搜索词
37
-
38
- 完整选材规则和 CLI 在 [sfx-sourcing.md](sfx-sourcing.md)。先明确声源、质感、
39
- 攻击长度和尾音,再查 Freesound;不要只用 `click` 或 `impact` 这类宽泛词。
40
-
41
- | 画面 | 查询示例 | 筛选重点 |
42
- |---|---|---|
43
- | 卡片飞入 / 运镜 | `short soft whoosh` | 攻击峰位置、无过长拖尾 |
44
- | 纸卡滑入 / 翻页 | `dry paper slide` / `single page turn` | 真实纸声、单次动作 |
45
- | 开关 / 轻点 | `mechanical switch click` | 短促物理质感,避免提示音 |
46
- | 字标落地 | `short cinematic impact` | 重量感、低频不盖住 BGM |
47
- | 打字 | `computer keyboard typing` | 节奏密度、段落长度、底噪 |
48
- | 组装与余韵 | `cinematic riser` / `subtle shimmer` | 渐强能否抵达落点、尾音是否自然 |
49
-
50
- ### 3.2 连发候选先检查重复
51
-
52
- 两个名称或两个 Freesound ID 可能对应相同声音。用清单的 SHA-256 发现相同文件,
53
- 再试听确认音色差异;不同编码的同一录音可能哈希不同。不能把同一声音的改名副本
54
- 当成双样本交替。不要下载整库,只取当前动作需要的候选。
55
-
56
- ### 3.3 UI 动作仍要逐个判断音色
57
-
58
- S1 禁的是游戏式合成提示音质感,不是点击动作。真实开关、快门、玻璃、纸张拟音可用;
59
- `confirmation tone`、`bleep`、`notification` 往往是合成反馈,不能因为搜索词匹配
60
- 就入选。片子刻意表现“系统提示”时可以使用,在设计记录中说明叙事理由。
61
-
62
- 录音描述有明确声源与设备是有用线索;`made with my mouth`、`built-in mic`
63
- 可能不适合干净的产品片。设备名字不能保证质量,仍需结合片中试听。
64
-
65
- ## 4. 对齐技巧
66
-
67
- ### 4.1 钉帧、时长和音量
68
-
69
- - 中央注册表保持 `{ from, src, volume }[]`,可扩展 `durationInFrames`;
70
- 每条注释对应动作,渲染层用 `<Sequence>` 挂载。工作台从同一张表派生轨道。
71
- - 以下载文件的 `analysis` 为准,不能把网页列出的原文件时长/采样率当成预览文件实测。
72
- `get` 自动分析;处理或换文件后再运行 `analyze`,更新清单和哈希。
73
- - 动作声显式设置播放窗口,特别是 >5s 的键盘、环境与机械长样本。
74
- Sequence 裁剪贴动作时长;底噪铺满对应段落;impact 的自然混响可越过落点,避免硬截。
75
- - 峰值低于 -12dB 的轻音素材先考虑换更干净的候选,或预处理后重新分析。
76
- 必要时可用 >1 增益,但预览与渲染的行为可能不同,以成片实测防削波。
77
- - 工具给出 10ms 窗口的 RMS 能量峰、sample peak 和整体 RMS,**不是 LUFS 或 true peak**。
78
- 多次敲击或渐强素材需人工选择语义落点,不能机械地把全文件最大峰当作每个动作的落点。
79
-
80
- ### 4.2 连发防机枪感
81
-
82
- 双样本交替、音量阶梯递减(如 0.40→0.25)、间隔跟随动画加速。
83
- 密到无法逐个听清时收成 swoosh 或淡出,不让多个长尾叠成噪声。
84
-
85
- ### 4.3 riser→impact→sparkle:镜头收束句式
86
-
87
- 组装铺垫起 riser,主体落地钉 impact,余韵配 sparkle。按镜头实际落点确定
88
- 三者间隔,从 Freesound 选匹配的三个声源;不沿用模板文件名或绝对帧号。
89
- 是否使用该句式服从分镜,不强行给所有结尾套同一种声音。
90
-
91
- ### 4.4 画面返工后的复核
92
-
93
- 镜头时长、顺序或动作峰值变了,复核对应声音窗口和其后所有钉点;
94
- 只调整画面而不检查声音会导致错位。选材可以提前,精确钉帧在时间线锁定后做。
95
-
96
- ### 4.5 相对 shot 起点钉帧
97
-
98
- 写 `SHOTS.<shot>.from + offset`,卡点片写 `beatF(n)`;新项目不写裸绝对帧号。
99
- 镜头起点变化时 SFX 自动跟随,但镜头内部动作变化后仍需复核。
100
-
101
- ### 4.6 音画对齐补两项偏移(硬规则)
102
-
103
- 设计意图是"音源峰值落在目标拍帧上",从意图到成片隔着两项偏移,都
104
- 不补时会叠加——本仓库实测最重一击晚了 0.27s,明显读作音画不同步;
105
- 卡点片里差 2–3 帧就足以让观众听不出"这一下是跟着鼓的",合理的卡点
106
- 动效被读作无端抖动(S5 判例)。统一公式(浮点计算,最后一步取整):
107
-
108
- ```
109
- Sequence.from = 目标峰值帧 − 音源峰值滞后帧 − 输出音轨偏移帧
110
- ```
111
-
112
- **偏移一:最终输出音轨偏移(逐渲染管线实测)。**
113
- 渲出成片的整条音轨相对视频有一个固定滞后。根因在**输出编码/封装
114
- 链路**,不是 `<Audio>` 或 `Sequence.from` 的行为:AAC 编码器有
115
- encoder priming(头部垫入的预热样本),48kHz 下典型值 2048 samples
116
- = 1.28f@30fps。本仓库 AiflPromo 实测 click 滞后 2032 samples、
117
- impact 2066 samples(≈1.27–1.29f),与 priming 指纹吻合;且渲染品
118
- (aifl-ref.mp4)音轨的 edit list(elst media time=0)未声明裁剪这段
119
- 垫头,解码后就体现为真实偏移。Remotion 官方跟踪同族问题:
120
- remotion-dev/remotion#7099。
121
-
122
- - **按管线记录,不按"片"**:偏移由 Remotion 版本 + 音频 codec +
123
- sample rate + 容器四要素决定,实测值随四要素一起记档;四要素不变
124
- 可复用,换任何一样必须重测。priming 量级依编码器而异(ffmpeg 内置
125
- aac ≈1024、fdk-aac 2048、Apple ≈2112 samples),不能预设常数。
126
- - promo-ink 时代实测过 **4f**(≈133ms/6400 samples),量级远超
127
- priming 所能解释、根因未验证——仅作为"旧常数不可跨管线搬运"的
128
- 警示数据保留,不作机制陈述。
129
-
130
- 实测方法(渲后做,同管线量准一次通用):
131
-
132
- ```bash
133
- ffmpeg -i out/promo.mp4 -vn -acodec pcm_s16le /tmp/render-audio.wav
134
- ```
135
-
136
- 拿 2–3 个尖锐 SFX 的**原文件**对渲出音轨做归一化交叉相关(numpy
137
- `np.correlate` 即可),峰值位置减去设计帧号就是偏移量;多个探针
138
- 残差一致才算量准,只测一个点可能撞上音源自身的峰值滞后。
139
-
140
- **偏移二:音源自身的峰值滞后(逐文件量)。**
141
- 很多素材的能量峰不在文件头(渐强攻击、前置气口),按文件头对齐等于
142
- 晚到。实测例:brush-write 2f、paper-slide 10f、ink-char 深达 24f。
143
- 峰值位置用音频能量包络定位,新音效入库时随 max_volume 一并记录
144
- (见 4.1;与 music-beat-sync §4 "素材按内部峰值对齐,不按文件头
145
- 对齐"同一条原则)。
146
-
147
- 渲染层实现——SFX 表保持 §4.1 的 `{ from, src, volume }` schema 不变,
148
- 三项拆分发生在 `from` 的计算表达式里(审计链完整,绝不逐条手改帧号):
149
-
150
- ```tsx
151
- // 本管线实测:Remotion 4.x + AAC 48kHz mp4,2026-08-23,click/impact 双探针交叉相关
152
- const OUTPUT_AUDIO_OFFSET_F = 1.28;
153
- const PEAK_F: Record<string, number> = { 'impact-deep-whoosh.mp3': 2 /* 逐文件实测 */ };
154
- const sfxFrom = (targetPeakF: number, src: string) =>
155
- Math.max(0, Math.round(targetPeakF - (PEAK_F[src] ?? 0) - OUTPUT_AUDIO_OFFSET_F));
156
- // 表内写法:{ from: sfxFrom(SHOTS.outro.from + 35, 'impact-deep-whoosh.mp3'), src: …, volume: 0.55 }
157
- ```
158
-
159
- 两个边界注意:
160
- - **durationInFrames 不加偏移**:窗口整体前移后起止点在听感上一起
161
- 归位;给截断型音效(显式 durationInFrames 裁长样本的)加长窗口,
162
- 会多播出本该裁掉的内容。
163
- - `Math.max(0, …)` 兜底意味着片头约 2f 内的钉点无法完成全部补偿,
164
- 残差记进验收表;片头重音尽量不要设计在前 2 帧。
165
-
166
- BGM 侧同理但记账位置不同:源音乐网格常量 `SOURCE_BEAT0` 保持分析
167
- 真值不动,输出偏移单独设常量参与 `beatT` 换算,见 music-beat-sync
168
- §5b——两处共用同一套交叉相关实测法。
169
-
170
- 验收:补偿后重渲,对 2–3 个探针重跑交叉相关,残差 ≤0.5f 为合格。
1
+ # sound-design — 声音设计
2
+
3
+ 声音是时间线级资产:集中管理 SFX 钉帧表,场景组件不内嵌音频。
4
+ 新制作与换音统一从 **Freesound** 搜索、下载,操作见 [sfx-sourcing.md](sfx-sourcing.md)。
5
+ 仓库不再维护共享 SFX 库;模板的历史音频只用于原样预览与回归验证。
6
+
7
+ ## 1. 方法
8
+
9
+ 1. 分镜阶段记下动作、材质、时长和音色;画面时间线锁定后再精确钉 SFX。
10
+ 用户已指定 BGM 的卡点片仍先按 [music-beat-sync.md](music-beat-sync.md) 分析再分镜。
11
+ 2. 先铺 BGM 定能量骨架,再钉画面独有动作。强鼓点本身已有节拍,不给每拍重复加 impact。
12
+ 3. SFX 按片种与真实声源选:whoosh(运镜)、impact(落地)、riser(铺垫)、
13
+ sparkle(光效)、transition(转场),有辨识度的动作另配真实拟音。
14
+ 4. 候选在成片语境中试听。下载量、评分、描述、波形是筛选证据,不能被写成“已经听过”。
15
+ 5. 下载到当前工程 `public/audio/sfx/`,随文件保留 `audio-manifest.json` 与
16
+ `FREESOUND-CREDITS.md`;Remotion 只读这些固定本地文件,渲染时不联网找音。
17
+ 6. 声音时间表从 `SHOTS` 派生并供工作台复用;时间线变更后逐条复核,最终按
18
+ [final-review.md](final-review.md) 的 A 项验收。
19
+
20
+ ## 2. BGM 选型与混音
21
+
22
+ Freesound 路线负责 SFX。BGM 保留用户指定音乐或 `assets/audio/bgm/` 的备选,
23
+ 授权见 `assets/audio/ATTRIBUTION.md`,不能把 SFX 许可套到音乐上。
24
+
25
+ - 音乐能量应匹配片子结构。产品宣传片可优先试鼓点清楚的电子底;用户的调性要求优先。
26
+ 候选曲垫进成片试听,避免只因“欢快/好听”选择与产品气质不符的音乐。
27
+ - 音量按素材实测给。模板中 0.34 的 BGM、0.2–0.6 的 SFX 只是历史参考,
28
+ `volume` 是乘法系数,不是目标响度。多轨叠加后检查削波和人声/SFX 是否被掩盖。
29
+ - 用 `interpolate` 做首尾淡入淡出;有配音时在说话段压低音乐。
30
+ - BGM `<Audio>` 单独受 `bgm` inputProp(默认 true)控制;配 BGM 的片子从同一
31
+ 时间线交付带 BGM / 无 BGM(保留 SFX)两版。跨平台无 BGM 渲染使用
32
+ `--props=props-nobgm.json`,文件内容 `{"bgm":false}`。
33
+
34
+ ## 3. 音色与选材
35
+
36
+ ### 3.1 从画面组织搜索词
37
+
38
+ 完整选材规则和 CLI 在 [sfx-sourcing.md](sfx-sourcing.md)。先明确声源、质感、
39
+ 攻击长度和尾音,再查 Freesound;不要只用 `click` 或 `impact` 这类宽泛词。
40
+
41
+ | 画面 | 查询示例 | 筛选重点 |
42
+ |---|---|---|
43
+ | 卡片飞入 / 运镜 | `short soft whoosh` | 攻击峰位置、无过长拖尾 |
44
+ | 纸卡滑入 / 翻页 | `dry paper slide` / `single page turn` | 真实纸声、单次动作 |
45
+ | 开关 / 轻点 | `mechanical switch click` | 短促物理质感,避免提示音 |
46
+ | 字标落地 | `short cinematic impact` | 重量感、低频不盖住 BGM |
47
+ | 打字 | `computer keyboard typing` | 节奏密度、段落长度、底噪 |
48
+ | 组装与余韵 | `cinematic riser` / `subtle shimmer` | 渐强能否抵达落点、尾音是否自然 |
49
+
50
+ ### 3.2 连发候选先检查重复
51
+
52
+ 两个名称或两个 Freesound ID 可能对应相同声音。用清单的 SHA-256 发现相同文件,
53
+ 再试听确认音色差异;不同编码的同一录音可能哈希不同。不能把同一声音的改名副本
54
+ 当成双样本交替。不要下载整库,只取当前动作需要的候选。
55
+
56
+ ### 3.3 UI 动作仍要逐个判断音色
57
+
58
+ S1 禁的是游戏式合成提示音质感,不是点击动作。真实开关、快门、玻璃、纸张拟音可用;
59
+ `confirmation tone`、`bleep`、`notification` 往往是合成反馈,不能因为搜索词匹配
60
+ 就入选。片子刻意表现“系统提示”时可以使用,在设计记录中说明叙事理由。
61
+
62
+ 录音描述有明确声源与设备是有用线索;`made with my mouth`、`built-in mic`
63
+ 可能不适合干净的产品片。设备名字不能保证质量,仍需结合片中试听。
64
+
65
+ ## 4. 对齐技巧
66
+
67
+ ### 4.1 钉帧、时长和音量
68
+
69
+ - 中央注册表保持 `{ from, src, volume }[]`,可扩展 `durationInFrames`;
70
+ 每条注释对应动作,渲染层用 `<Sequence>` 挂载。工作台从同一张表派生轨道。
71
+ - 以下载文件的 `analysis` 为准,不能把网页列出的原文件时长/采样率当成预览文件实测。
72
+ `get` 自动分析;处理或换文件后再运行 `analyze`,更新清单和哈希。
73
+ - 动作声显式设置播放窗口,特别是 >5s 的键盘、环境与机械长样本。
74
+ Sequence 裁剪贴动作时长;底噪铺满对应段落;impact 的自然混响可越过落点,避免硬截。
75
+ - 峰值低于 -12dB 的轻音素材先考虑换更干净的候选,或预处理后重新分析。
76
+ 必要时可用 >1 增益,但预览与渲染的行为可能不同,以成片实测防削波。
77
+ - 工具给出 10ms 窗口的 RMS 能量峰、sample peak 和整体 RMS,**不是 LUFS 或 true peak**。
78
+ 多次敲击或渐强素材需人工选择语义落点,不能机械地把全文件最大峰当作每个动作的落点。
79
+
80
+ ### 4.2 连发防机枪感
81
+
82
+ 双样本交替、音量阶梯递减(如 0.40→0.25)、间隔跟随动画加速。
83
+ 密到无法逐个听清时收成 swoosh 或淡出,不让多个长尾叠成噪声。
84
+
85
+ ### 4.3 riser→impact→sparkle:镜头收束句式
86
+
87
+ 组装铺垫起 riser,主体落地钉 impact,余韵配 sparkle。按镜头实际落点确定
88
+ 三者间隔,从 Freesound 选匹配的三个声源;不沿用模板文件名或绝对帧号。
89
+ 是否使用该句式服从分镜,不强行给所有结尾套同一种声音。
90
+
91
+ ### 4.4 画面返工后的复核
92
+
93
+ 镜头时长、顺序或动作峰值变了,复核对应声音窗口和其后所有钉点;
94
+ 只调整画面而不检查声音会导致错位。选材可以提前,精确钉帧在时间线锁定后做。
95
+
96
+ ### 4.5 相对 shot 起点钉帧
97
+
98
+ 写 `SHOTS.<shot>.from + offset`,卡点片写 `beatF(n)`;新项目不写裸绝对帧号。
99
+ 镜头起点变化时 SFX 自动跟随,但镜头内部动作变化后仍需复核。
100
+
101
+ ### 4.6 音画对齐补两项偏移(硬规则)
102
+
103
+ 设计意图是"音源峰值落在目标拍帧上",从意图到成片隔着两项偏移,都
104
+ 不补时会叠加——本仓库实测最重一击晚了 0.27s,明显读作音画不同步;
105
+ 卡点片里差 2–3 帧就足以让观众听不出"这一下是跟着鼓的",合理的卡点
106
+ 动效被读作无端抖动(S5 判例)。统一公式(浮点计算,最后一步取整):
107
+
108
+ ```
109
+ Sequence.from = 目标峰值帧 − 音源峰值滞后帧 − 输出音轨偏移帧
110
+ ```
111
+
112
+ **偏移一:最终输出音轨偏移(逐渲染管线实测)。**
113
+ 渲出成片的整条音轨相对视频有一个固定滞后。根因在**输出编码/封装
114
+ 链路**,不是 `<Audio>` 或 `Sequence.from` 的行为:AAC 编码器有
115
+ encoder priming(头部垫入的预热样本),48kHz 下典型值 2048 samples
116
+ = 1.28f@30fps。本仓库 AiflPromo 实测 click 滞后 2032 samples、
117
+ impact 2066 samples(≈1.27–1.29f),与 priming 指纹吻合;且渲染品
118
+ (aifl-ref.mp4)音轨的 edit list(elst media time=0)未声明裁剪这段
119
+ 垫头,解码后就体现为真实偏移。Remotion 官方跟踪同族问题:
120
+ remotion-dev/remotion#7099。
121
+
122
+ - **按管线记录,不按"片"**:偏移由 Remotion 版本 + 音频 codec +
123
+ sample rate + 容器四要素决定,实测值随四要素一起记档;四要素不变
124
+ 可复用,换任何一样必须重测。priming 量级依编码器而异(ffmpeg 内置
125
+ aac ≈1024、fdk-aac 2048、Apple ≈2112 samples),不能预设常数。
126
+ - promo-ink 时代实测过 **4f**(≈133ms/6400 samples),量级远超
127
+ priming 所能解释、根因未验证——仅作为"旧常数不可跨管线搬运"的
128
+ 警示数据保留,不作机制陈述。
129
+
130
+ 实测方法(渲后做,同管线量准一次通用):
131
+
132
+ ```bash
133
+ ffmpeg -i out/promo.mp4 -vn -acodec pcm_s16le /tmp/render-audio.wav
134
+ ```
135
+
136
+ 拿 2–3 个尖锐 SFX 的**原文件**对渲出音轨做归一化交叉相关(numpy
137
+ `np.correlate` 即可),峰值位置减去设计帧号就是偏移量;多个探针
138
+ 残差一致才算量准,只测一个点可能撞上音源自身的峰值滞后。
139
+
140
+ **偏移二:音源自身的峰值滞后(逐文件量)。**
141
+ 很多素材的能量峰不在文件头(渐强攻击、前置气口),按文件头对齐等于
142
+ 晚到。实测例:brush-write 2f、paper-slide 10f、ink-char 深达 24f。
143
+ 峰值位置用音频能量包络定位,新音效入库时随 max_volume 一并记录
144
+ (见 4.1;与 music-beat-sync §4 "素材按内部峰值对齐,不按文件头
145
+ 对齐"同一条原则)。
146
+
147
+ 渲染层实现——SFX 表保持 §4.1 的 `{ from, src, volume }` schema 不变,
148
+ 三项拆分发生在 `from` 的计算表达式里(审计链完整,绝不逐条手改帧号):
149
+
150
+ ```tsx
151
+ // 本管线实测:Remotion 4.x + AAC 48kHz mp4,2026-08-23,click/impact 双探针交叉相关
152
+ const OUTPUT_AUDIO_OFFSET_F = 1.28;
153
+ const PEAK_F: Record<string, number> = { 'impact-deep-whoosh.mp3': 2 /* 逐文件实测 */ };
154
+ const sfxFrom = (targetPeakF: number, src: string) =>
155
+ Math.max(0, Math.round(targetPeakF - (PEAK_F[src] ?? 0) - OUTPUT_AUDIO_OFFSET_F));
156
+ // 表内写法:{ from: sfxFrom(SHOTS.outro.from + 35, 'impact-deep-whoosh.mp3'), src: …, volume: 0.55 }
157
+ ```
158
+
159
+ 两个边界注意:
160
+ - **durationInFrames 不加偏移**:窗口整体前移后起止点在听感上一起
161
+ 归位;给截断型音效(显式 durationInFrames 裁长样本的)加长窗口,
162
+ 会多播出本该裁掉的内容。
163
+ - `Math.max(0, …)` 兜底意味着片头约 2f 内的钉点无法完成全部补偿,
164
+ 残差记进验收表;片头重音尽量不要设计在前 2 帧。
165
+
166
+ BGM 侧同理但记账位置不同:源音乐网格常量 `SOURCE_BEAT0` 保持分析
167
+ 真值不动,输出偏移单独设常量参与 `beatT` 换算,见 music-beat-sync
168
+ §5b——两处共用同一套交叉相关实测法。
169
+
170
+ 验收:补偿后重渲,对 2–3 个探针重跑交叉相关,残差 ≤0.5f 为合格。