dsh-drawai 0.3.4 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +4142 -0
- package/README.md +43 -10
- package/lib/audio-media.js +147 -0
- package/lib/audio-service.js +66 -0
- package/lib/canvas-format.js +134 -0
- package/lib/client.js +5075 -181
- package/lib/comfyui-default-workflow.mjs +1825 -0
- package/lib/comfyui-workflow.mjs +426 -0
- package/lib/document-commands.js +12 -0
- package/lib/document-core.js +29 -0
- package/lib/drawing-tasks.js +26 -0
- package/lib/imagegen.mjs +596 -0
- package/lib/index.js +1758 -129
- package/lib/media.js +26 -13
- package/lib/mgstyle-core.js +75 -0
- package/lib/motion/apply.js +180 -0
- package/lib/motion/asset-pack-lock.js +10 -0
- package/lib/motion/asset-pack.js +335 -0
- package/lib/motion/assets.js +290 -0
- package/lib/motion/audio.js +103 -0
- package/lib/motion/audiolevel.js +63 -0
- package/lib/motion/audiomix.js +144 -0
- package/lib/motion/beats.js +337 -0
- package/lib/motion/builtin-assets.js +62 -0
- package/lib/motion/canvas-spec.js +442 -0
- package/lib/motion/capture.js +95 -0
- package/lib/motion/cards.js +80 -0
- package/lib/motion/collect.js +447 -0
- package/lib/motion/delivery.js +112 -0
- package/lib/motion/edge-speech.py +90 -0
- package/lib/motion/entry.jsx +73 -0
- package/lib/motion/export.js +200 -0
- package/lib/motion/ffmpeg.js +42 -0
- package/lib/motion/fonts.js +71 -0
- package/lib/motion/jobs.js +113 -0
- package/lib/motion/json.js +4 -0
- package/lib/motion/media-catalog.js +59 -0
- package/lib/motion/mgstyles/BRIEF-TEMPLATE.md +63 -0
- package/lib/motion/mgstyles/briefs/01-flat-vector.md +104 -0
- package/lib/motion/mgstyles/briefs/02-line-art.md +97 -0
- package/lib/motion/mgstyles/briefs/03-isometric.md +108 -0
- package/lib/motion/mgstyles/briefs/05-cel-boil.md +145 -0
- package/lib/motion/mgstyles/briefs/06-collage.md +149 -0
- package/lib/motion/mgstyles/briefs/07-liquid.md +106 -0
- package/lib/motion/mgstyles/briefs/08-morph.md +111 -0
- package/lib/motion/mgstyles/briefs/09-bauhaus.md +150 -0
- package/lib/motion/mgstyles/briefs/10-synthwave.md +151 -0
- package/lib/motion/mgstyles/briefs/12-aurora-glass.md +147 -0
- package/lib/motion/mgstyles/briefs/18-hanazi.md +140 -0
- package/lib/motion/mgstyles/briefs/19-paperclip.md +156 -0
- package/lib/motion/mgstyles/briefs/20-pixel.md +118 -0
- package/lib/motion/mgstyles/briefs/22-hud.md +118 -0
- package/lib/motion/mgstyles/catalog.d/01-flat-vector.json +34 -0
- package/lib/motion/mgstyles/catalog.d/02-line-art.json +34 -0
- package/lib/motion/mgstyles/catalog.d/03-isometric.json +35 -0
- package/lib/motion/mgstyles/catalog.d/05-cel-boil.json +28 -0
- package/lib/motion/mgstyles/catalog.d/06-collage.json +28 -0
- package/lib/motion/mgstyles/catalog.d/07-liquid.json +28 -0
- package/lib/motion/mgstyles/catalog.d/08-morph.json +28 -0
- package/lib/motion/mgstyles/catalog.d/09-bauhaus.json +28 -0
- package/lib/motion/mgstyles/catalog.d/10-synthwave.json +28 -0
- package/lib/motion/mgstyles/catalog.d/12-aurora-glass.json +28 -0
- package/lib/motion/mgstyles/catalog.d/18-hanazi.json +28 -0
- package/lib/motion/mgstyles/catalog.d/19-paperclip.json +28 -0
- package/lib/motion/mgstyles/catalog.d/20-pixel.json +28 -0
- package/lib/motion/mgstyles/catalog.d/22-hud.json +28 -0
- package/lib/motion/mgstyles/catalog.json +1356 -0
- package/lib/motion/mgstyles/upstream/README.md +147 -0
- package/lib/motion/mgstyles/upstream/README.zh-CN.md +147 -0
- package/lib/motion/mgstyles/upstream/demos/01-flat-vector/cues.json +1 -0
- package/lib/motion/mgstyles/upstream/demos/01-flat-vector/index.html +712 -0
- package/lib/motion/mgstyles/upstream/demos/02-line-art/cues.json +331 -0
- package/lib/motion/mgstyles/upstream/demos/02-line-art/film.js +676 -0
- package/lib/motion/mgstyles/upstream/demos/02-line-art/index.html +18 -0
- package/lib/motion/mgstyles/upstream/demos/02-line-art/tools/dump_timing.mjs +26 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/cues.json +109 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/index.html +25 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/anim.js +82 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/main.js +219 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/night5.js +180 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/render.js +202 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/title.js +167 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/title5.js +294 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/ui.js +141 -0
- package/lib/motion/mgstyles/upstream/demos/03-isometric/js/world.js +1399 -0
- package/lib/motion/mgstyles/upstream/demos/05-cel-boil/cues.json +157 -0
- package/lib/motion/mgstyles/upstream/demos/05-cel-boil/index.html +34 -0
- package/lib/motion/mgstyles/upstream/demos/05-cel-boil/js/engine.js +326 -0
- package/lib/motion/mgstyles/upstream/demos/05-cel-boil/js/scene.js +2036 -0
- package/lib/motion/mgstyles/upstream/demos/06-collage/assets/gen/layout.json +157 -0
- package/lib/motion/mgstyles/upstream/demos/06-collage/cues.json +80 -0
- package/lib/motion/mgstyles/upstream/demos/06-collage/index.html +889 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/cues.json +100 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/index.html +108 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/engine.js +153 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/links.js +64 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/lookdev.js +46 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/scene.js +963 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/shaders.js +647 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/textsdf.js +114 -0
- package/lib/motion/mgstyles/upstream/demos/07-liquid/js/type.js +50 -0
- package/lib/motion/mgstyles/upstream/demos/08-morph/cues.json +131 -0
- package/lib/motion/mgstyles/upstream/demos/08-morph/glyphs.json +1 -0
- package/lib/motion/mgstyles/upstream/demos/08-morph/index.html +901 -0
- package/lib/motion/mgstyles/upstream/demos/09-bauhaus/cues.json +270 -0
- package/lib/motion/mgstyles/upstream/demos/09-bauhaus/film.js +697 -0
- package/lib/motion/mgstyles/upstream/demos/09-bauhaus/index.html +12 -0
- package/lib/motion/mgstyles/upstream/demos/10-synthwave/cues.json +44 -0
- package/lib/motion/mgstyles/upstream/demos/10-synthwave/index.html +1028 -0
- package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/cues.json +67 -0
- package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/index.html +16 -0
- package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/main.js +967 -0
- package/lib/motion/mgstyles/upstream/demos/12-aurora-glass/shaders.js +468 -0
- package/lib/motion/mgstyles/upstream/demos/18-hanazi/cues.json +117 -0
- package/lib/motion/mgstyles/upstream/demos/18-hanazi/index.html +541 -0
- package/lib/motion/mgstyles/upstream/demos/19-paperclip/assets/countries-110m.json +1 -0
- package/lib/motion/mgstyles/upstream/demos/19-paperclip/assets/stickers/meta.json +34 -0
- package/lib/motion/mgstyles/upstream/demos/19-paperclip/cues.json +285 -0
- package/lib/motion/mgstyles/upstream/demos/19-paperclip/index.html +599 -0
- package/lib/motion/mgstyles/upstream/demos/20-pixel/cues.json +42 -0
- package/lib/motion/mgstyles/upstream/demos/20-pixel/film.js +914 -0
- package/lib/motion/mgstyles/upstream/demos/20-pixel/index.html +18 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/cues.json +108 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/index.html +125 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/js/holo.js +275 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/js/hud.js +855 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/js/post.js +150 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/js/util.js +65 -0
- package/lib/motion/mgstyles/upstream/demos/22-hud/js/v5.js +142 -0
- package/lib/motion/mgstyles/upstream/harness/render.mjs +319 -0
- package/lib/motion/mgstyles/upstream/manifest.json +269 -0
- package/lib/motion/mgstyles/upstream/prompts/01-flat-vector.md +98 -0
- package/lib/motion/mgstyles/upstream/prompts/02-line-art.md +95 -0
- package/lib/motion/mgstyles/upstream/prompts/03-isometric.md +97 -0
- package/lib/motion/mgstyles/upstream/prompts/05-cel-boil.md +95 -0
- package/lib/motion/mgstyles/upstream/prompts/06-collage.md +95 -0
- package/lib/motion/mgstyles/upstream/prompts/07-liquid.md +98 -0
- package/lib/motion/mgstyles/upstream/prompts/08-morph.md +95 -0
- package/lib/motion/mgstyles/upstream/prompts/09-bauhaus.md +96 -0
- package/lib/motion/mgstyles/upstream/prompts/10-synthwave.md +95 -0
- package/lib/motion/mgstyles/upstream/prompts/12-aurora-glass.md +96 -0
- package/lib/motion/mgstyles/upstream/prompts/18-hanazi.md +95 -0
- package/lib/motion/mgstyles/upstream/prompts/19-paperclip.md +96 -0
- package/lib/motion/mgstyles/upstream/prompts/20-pixel.md +96 -0
- package/lib/motion/mgstyles/upstream/prompts/22-hud.md +95 -0
- package/lib/motion/mgstyles/upstream/rubric.md +51 -0
- package/lib/motion/mgstyles/upstream/template.md +36 -0
- package/lib/motion/pixelqa.js +198 -0
- package/lib/motion/preview.js +95 -0
- package/lib/motion/project.js +395 -0
- package/lib/motion/qa.js +290 -0
- package/lib/motion/reference-media.jsx +10 -0
- package/lib/motion/render-settings.js +112 -0
- package/lib/motion/render.js +159 -0
- package/lib/motion/scene-kit.js +183 -0
- package/lib/motion/sfx.js +232 -0
- package/lib/motion/shotcraft/ClipCard.tsx +204 -0
- package/lib/motion/shotcraft/catalog.json +2461 -0
- package/lib/motion/shotcraft/upstream/SKILL.md +286 -0
- package/lib/motion/shotcraft/upstream/assets/lib/Caption.tsx +54 -0
- package/lib/motion/shotcraft/upstream/assets/lib/ClipCard.tsx +200 -0
- package/lib/motion/shotcraft/upstream/assets/lib/DigitRoll.tsx +45 -0
- package/lib/motion/shotcraft/upstream/assets/lib/FlashCut.tsx +20 -0
- package/lib/motion/shotcraft/upstream/assets/lib/FlatPanel.tsx +65 -0
- package/lib/motion/shotcraft/upstream/assets/lib/PageCam.tsx +151 -0
- package/lib/motion/shotcraft/upstream/assets/lib/VerticalTicker.tsx +129 -0
- package/lib/motion/shotcraft/upstream/assets/lib/helpers/camera.tsx +75 -0
- package/lib/motion/shotcraft/upstream/assets/lib/helpers/motion.ts +40 -0
- package/lib/motion/shotcraft/upstream/assets/lib/helpers/rand.ts +11 -0
- package/lib/motion/shotcraft/upstream/assets/lib/helpers/shake.ts +10 -0
- package/lib/motion/shotcraft/upstream/assets/scripts/__pycache__/sfx-source.cpython-313.pyc +0 -0
- package/lib/motion/shotcraft/upstream/assets/scripts/build-readme-cover.mjs +49 -0
- package/lib/motion/shotcraft/upstream/assets/scripts/capture-template.mjs +210 -0
- package/lib/motion/shotcraft/upstream/assets/scripts/sfx-source.py +423 -0
- package/lib/motion/shotcraft/upstream/assets/scripts/smoke-render-demos.py +170 -0
- package/lib/motion/shotcraft/upstream/assets/scripts/test_sfx_source.py +157 -0
- package/lib/motion/shotcraft/upstream/demos/README.md +120 -0
- package/lib/motion/shotcraft/upstream/demos/_fixtures/Brand.tsx +112 -0
- package/lib/motion/shotcraft/upstream/demos/_fixtures/Fixtures.tsx +647 -0
- package/lib/motion/shotcraft/upstream/demos/_fixtures/Look.tsx +316 -0
- package/lib/motion/shotcraft/upstream/demos/_fixtures/Motion.tsx +82 -0
- package/lib/motion/shotcraft/upstream/demos/_fixtures/PageCam2D.tsx +115 -0
- package/lib/motion/shotcraft/upstream/demos/_fixtures/Polish.tsx +243 -0
- package/lib/motion/shotcraft/upstream/demos/_textures/live-layout.json +389 -0
- package/lib/motion/shotcraft/upstream/demos/camera/basic-3d-scene/Basic3DScene.tsx +250 -0
- package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashImpactReal.tsx +305 -0
- package/lib/motion/shotcraft/upstream/demos/camera/crash-zoom-punch/CrashZoomReal.tsx +246 -0
- package/lib/motion/shotcraft/upstream/demos/camera/cursor-flyover/CursorFlyover.tsx +390 -0
- package/lib/motion/shotcraft/upstream/demos/camera/depth-layer-moves/MultiplaneReal.tsx +138 -0
- package/lib/motion/shotcraft/upstream/demos/camera/graze-face-tour/GrazeFaceTour.tsx +542 -0
- package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/OverheadTabletopDrop.tsx +315 -0
- package/lib/motion/shotcraft/upstream/demos/camera/overhead-camera-moves/TiltReveal.tsx +299 -0
- package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/DroneDiveLanding.tsx +173 -0
- package/lib/motion/shotcraft/upstream/demos/camera/space-camera-moves/ExplodedView.tsx +348 -0
- package/lib/motion/shotcraft/upstream/demos/camera/steep-tilt-glide/SteepTiltGlide.tsx +366 -0
- package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/BulletTimeFreezeOrbit.tsx +279 -0
- package/lib/motion/shotcraft/upstream/demos/camera/tension-camera-moves/PullBackIsolation.tsx +184 -0
- package/lib/motion/shotcraft/upstream/demos/camera/terminal-3d/Terminal3D.tsx +390 -0
- package/lib/motion/shotcraft/upstream/demos/data/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +155 -0
- package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/AxisRescaleShockV2.tsx +303 -0
- package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/OscilloscopeStreamV2.tsx +290 -0
- package/lib/motion/shotcraft/upstream/demos/data/chart-live-moves/UnitDotSwarmRegroupV2.tsx +278 -0
- package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/NeedleSweepSelftest.tsx +307 -0
- package/lib/motion/shotcraft/upstream/demos/data/gauge-readout-moves/TapeScrollFixedPointer.tsx +215 -0
- package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/BrakeReticleLock.tsx +299 -0
- package/lib/motion/shotcraft/upstream/demos/data/scroll-brake-moves/ChangelogScrollBrake.tsx +232 -0
- package/lib/motion/shotcraft/upstream/demos/data/timeline-travel/TimelineTravel.tsx +290 -0
- package/lib/motion/shotcraft/upstream/demos/effects/assemble-then-type-flyin/AssembleThenTypeFlyin.tsx +273 -0
- package/lib/motion/shotcraft/upstream/demos/effects/aurora-bloom-bg-flip/AuroraBloomBgFlip.tsx +167 -0
- package/lib/motion/shotcraft/upstream/demos/effects/brand-frame-snap/BrandFrameSnap.tsx +536 -0
- package/lib/motion/shotcraft/upstream/demos/effects/fui-hud-moves/ReticleLockOn.tsx +164 -0
- package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/FlylineArc.tsx +175 -0
- package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/GlowOrbAmbient.tsx +197 -0
- package/lib/motion/shotcraft/upstream/demos/effects/glow-flyline-moves/OrbFlylineRelay.tsx +241 -0
- package/lib/motion/shotcraft/upstream/demos/effects/icon-performance-moves/AttentionBounce.tsx +279 -0
- package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/AnimeImpact.tsx +230 -0
- package/lib/motion/shotcraft/upstream/demos/effects/impact-feedback/HitCounter.tsx +345 -0
- package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SheenSweepRetry.tsx +275 -0
- package/lib/motion/shotcraft/upstream/demos/effects/light-play-moves/SpotlightSweepReveal.tsx +229 -0
- package/lib/motion/shotcraft/upstream/demos/effects/radial-ripple-phone-chips/RadialRipplePhoneChips.tsx +312 -0
- package/lib/motion/shotcraft/upstream/demos/effects/riso-print-hits/RisoMisregistrationHit.tsx +222 -0
- package/lib/motion/shotcraft/upstream/demos/effects/scan-bracket-sweep/ScanBracketSweep.tsx +295 -0
- package/lib/motion/shotcraft/upstream/demos/effects/scanline-annotate-focus/ScanlineAnnotateFocus.tsx +329 -0
- package/lib/motion/shotcraft/upstream/demos/effects/scanline-assemble-flyin/ScanlineAssembleFlyin.tsx +315 -0
- package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ImpactBurstKit.tsx +264 -0
- package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/KanadaPerspectiveSnap.tsx +260 -0
- package/lib/motion/shotcraft/upstream/demos/effects/slam-entrance-moves/ScoreSlam.tsx +263 -0
- package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/CornerSpotlightReveal.tsx +123 -0
- package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +187 -0
- package/lib/motion/shotcraft/upstream/demos/effects/spotlight-sweep-moves/SlideSpotlightPan.tsx +175 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/autolayout-gap-dial/AutolayoutGapDial.tsx +305 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/DiagramCascadeBuild.tsx +350 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +352 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/chip-grid-single-select-blackout/ChipGridSingleSelectBlackout.tsx +218 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/collab-cursor-moves/CursorCastEnsemble.tsx +297 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/glass-pill-dictation-typing/GlassPillDictationTyping.tsx +157 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +218 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/picker-carousel-feature-cycle/PickerCarouselFeatureCycle.tsx +202 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/segmented-thumb-hero/SegmentedThumbHero.tsx +265 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/PaletteThemeRipple.tsx +457 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/theme-switch-moves/ThemeSweepToggle.tsx +446 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/type-and-filter/TypeAndFilter.tsx +249 -0
- package/lib/motion/shotcraft/upstream/demos/interaction/voice-waveform-live/VoiceWaveformLive.tsx +278 -0
- package/lib/motion/shotcraft/upstream/demos/opening/crane-rise-reveal/CraneRiseReveal.tsx +332 -0
- package/lib/motion/shotcraft/upstream/demos/opening/dataviz-landscape-open/DatavizLandscapeOpen.tsx +358 -0
- package/lib/motion/shotcraft/upstream/demos/opening/fracture/Fracture.tsx +201 -0
- package/lib/motion/shotcraft/upstream/demos/opening/icon-field-colorize/IconFieldColorize.tsx +200 -0
- package/lib/motion/shotcraft/upstream/demos/opening/letterspace-materialize/LetterspaceMaterialize.tsx +208 -0
- package/lib/motion/shotcraft/upstream/demos/opening/magician-card-flourish/MagicianCardFlourish.tsx +341 -0
- package/lib/motion/shotcraft/upstream/demos/opening/orbit-ring-title-open/OrbitRingTitleOpen.tsx +389 -0
- package/lib/motion/shotcraft/upstream/demos/opening/spotlight-hero-card/SpotlightHeroCard.tsx +293 -0
- package/lib/motion/shotcraft/upstream/demos/opening/stroke-segment-build/StrokeSegmentBuild.tsx +183 -0
- package/lib/motion/shotcraft/upstream/demos/opening/text-as-mask/TextAsMask.tsx +245 -0
- package/lib/motion/shotcraft/upstream/demos/outro/grain-dissolve/GrainDissolve.tsx +222 -0
- package/lib/motion/shotcraft/upstream/demos/outro/logo-shrink-wordmark-lockup/LogoShrinkWordmarkLockup.tsx +223 -0
- package/lib/motion/shotcraft/upstream/demos/outro/neon-triple-marquee/NeonTripleMarquee.tsx +217 -0
- package/lib/motion/shotcraft/upstream/demos/outro/outro-group-photo-launch/OutroGroupPhotoLaunch.tsx +343 -0
- package/lib/motion/shotcraft/upstream/demos/outro/ui-strip-away-outro/UiStripAwayOutro.tsx +357 -0
- package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/IconFlipBloomLogo.tsx +187 -0
- package/lib/motion/shotcraft/upstream/demos/outro/ui-to-brand-morph/InputMorphsIntoLogo.tsx +333 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/beat-cut-moves/PaparazziFlash.tsx +274 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +270 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/panel-grid-moves/ComicPanelSplit.tsx +430 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/quad-split-parallel-scenes/QuadSplitParallelScenes.tsx +252 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/rhythm-interrupt-moves/JumpCutPunchIn.tsx +106 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/sakuga-timing-shift/SakugaTimingShift.tsx +288 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/speed-ramp-freeze/FreezeAnnotateReal.tsx +362 -0
- package/lib/motion/shotcraft/upstream/demos/rhythm/trailer-grammar-moves/TrailerBumper.tsx +168 -0
- package/lib/motion/shotcraft/upstream/demos/transition/bottom-push-stack-wipe/BottomPushStackWipe.tsx +310 -0
- package/lib/motion/shotcraft/upstream/demos/transition/card-flip-reveal/CardFlipReveal.tsx +261 -0
- package/lib/motion/shotcraft/upstream/demos/transition/card-flock-tumble/CardFlockTumble.tsx +459 -0
- package/lib/motion/shotcraft/upstream/demos/transition/circle-match-iris/CircleMatchIris.tsx +294 -0
- package/lib/motion/shotcraft/upstream/demos/transition/gradient-transition/GradientTransition.tsx +161 -0
- package/lib/motion/shotcraft/upstream/demos/transition/line-carry-transition/LineCarryTransition.tsx +248 -0
- package/lib/motion/shotcraft/upstream/demos/transition/mosaic-reframe/MosaicReframe.tsx +359 -0
- package/lib/motion/shotcraft/upstream/demos/transition/page-turn-transitions/BarnDoorSplit.tsx +227 -0
- package/lib/motion/shotcraft/upstream/demos/transition/print-texture-transitions/InkBleedReveal.tsx +162 -0
- package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/PortalWipeV2.tsx +248 -0
- package/lib/motion/shotcraft/upstream/demos/transition/shot-transitions/WhipBrakeReal.tsx +186 -0
- package/lib/motion/shotcraft/upstream/demos/transition/tear-streak-transitions/GlitchDisplace.tsx +355 -0
- package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/InvisibleCut.tsx +272 -0
- package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/LightLeakBurn.tsx +262 -0
- package/lib/motion/shotcraft/upstream/demos/transition/transition-hidden-cut/VersusSlam.tsx +217 -0
- package/lib/motion/shotcraft/upstream/demos/transition/transition-travel/LetterformZoom.tsx +285 -0
- package/lib/motion/shotcraft/upstream/demos/transition/white-flash-logo-simplify-cut/WhiteFlashLogoSimplifyCut.tsx +205 -0
- package/lib/motion/shotcraft/upstream/demos/transition/wipe-transitions/BlindsSlice.tsx +178 -0
- package/lib/motion/shotcraft/upstream/demos/typography/blur-slide/BlurSlide.tsx +147 -0
- package/lib/motion/shotcraft/upstream/demos/typography/brace-expand/BraceExpand.tsx +143 -0
- package/lib/motion/shotcraft/upstream/demos/typography/brand-ink-open/BrandInkOpen.tsx +134 -0
- package/lib/motion/shotcraft/upstream/demos/typography/countdown-arc-scatter/CountdownArcScatter.tsx +217 -0
- package/lib/motion/shotcraft/upstream/demos/typography/flying-words/FlyingWords.tsx +198 -0
- package/lib/motion/shotcraft/upstream/demos/typography/glitch-cycle/GlitchCycle.tsx +221 -0
- package/lib/motion/shotcraft/upstream/demos/typography/gradient-word-sweep/GradientWordSweep.tsx +312 -0
- package/lib/motion/shotcraft/upstream/demos/typography/lead-word-zoom-assemble/LeadWordZoomAssemble.tsx +261 -0
- package/lib/motion/shotcraft/upstream/demos/typography/marker-underline-title/MarkerUnderlineTitle.tsx +121 -0
- package/lib/motion/shotcraft/upstream/demos/typography/outline-word-fill/OutlineWordFill.tsx +153 -0
- package/lib/motion/shotcraft/upstream/demos/typography/paper-title-card/PaperTitleCard.tsx +179 -0
- package/lib/motion/shotcraft/upstream/demos/typography/pill-chip-slot-cycle-handled/PillChipSlotCycleHandled.tsx +140 -0
- package/lib/motion/shotcraft/upstream/demos/typography/pill-slot-cycle/PillSlotCycle.tsx +309 -0
- package/lib/motion/shotcraft/upstream/demos/typography/text-column-converge/TextColumnConverge.tsx +191 -0
- package/lib/motion/shotcraft/upstream/demos/typography/title-demote-to-label/TitleDemoteToLabel.tsx +292 -0
- package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/LetterformDriftAssembly.tsx +135 -0
- package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/SplitTextStagger.tsx +124 -0
- package/lib/motion/shotcraft/upstream/demos/typography/type-assembly-moves/TextOnPath.tsx +255 -0
- package/lib/motion/shotcraft/upstream/demos/typography/type-entrance-moves/LetterDropPhysics.tsx +173 -0
- package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/FontWeightPump.tsx +225 -0
- package/lib/motion/shotcraft/upstream/demos/typography/type-rhythm-sync/KaraokeFillSync.tsx +141 -0
- package/lib/motion/shotcraft/upstream/demos/typography/typewriter-moves/TypewriterErrorRetype.tsx +137 -0
- package/lib/motion/shotcraft/upstream/demos/typography/vertical-word-roll-blur-cycle/VerticalWordRollBlurCycle.tsx +147 -0
- package/lib/motion/shotcraft/upstream/demos/typography/word-relay-filmstrip/WordRelayFilmstrip.tsx +409 -0
- package/lib/motion/shotcraft/upstream/demos/typography/word-relay-geometry/WordRelayGeometry.tsx +280 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/avatar-bracket-carousel/AvatarBracketCarousel.tsx +271 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/bezier-source-converge-merge/BezierSourceConvergeMerge.tsx +385 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/card-stack/CardStack.tsx +312 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/carousel-3d/Carousel3D.tsx +303 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/clipcard-looping/ClipCardLooping.tsx +77 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/cloner-depth-echo/ClonerDepthEcho.tsx +311 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/deck-deal-flyin/DeckDealFlyin.tsx +307 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/doc-park-left-pill-deal/DocParkLeftPillDeal.tsx +349 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/document-typewriter-reveal/DocumentTypewriterReveal.tsx +255 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/draw-svg-trace/DrawSvgTrace.tsx +244 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/element-body-moves/ContactShadowLift.tsx +217 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/integration-hub-map/IntegrationHubMap.tsx +652 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-reveal/ListReveal.tsx +153 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/list-stack-press/ListStackPress.tsx +238 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-forerun/NeonFrameForerun.tsx +324 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +354 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/PageWaterfallWall.tsx +101 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/page-waterfall-wall/VerticalTicker.tsx +129 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/product-card-progressive-assemble/ProductCardProgressiveAssemble.tsx +297 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/radial-wave/RadialWave.tsx +57 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/research-card-stack-scroll/ResearchCardStackScroll.tsx +155 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/row-embed/RowEmbed.tsx +175 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/value-stagger-gradient/ValueStaggerGradient.tsx +153 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/BentoLightUp.tsx +146 -0
- package/lib/motion/shotcraft/upstream/demos/ui-entrance/wall-reveal-moves/WireframeDrawOn.tsx +226 -0
- package/lib/motion/shotcraft/upstream/gallery/api/library.json +1 -0
- package/lib/motion/shotcraft/upstream/manifest.json +2715 -0
- package/lib/motion/shotcraft/upstream/references/aesthetic-rules.md +193 -0
- package/lib/motion/shotcraft/upstream/references/final-review.md +121 -0
- package/lib/motion/shotcraft/upstream/references/guided-free-creation.md +199 -0
- package/lib/motion/shotcraft/upstream/references/jianying-export.md +183 -0
- package/lib/motion/shotcraft/upstream/references/music-beat-sync.md +257 -0
- package/lib/motion/shotcraft/upstream/references/pipeline.md +382 -0
- package/lib/motion/shotcraft/upstream/references/publish-upload-post.md +111 -0
- package/lib/motion/shotcraft/upstream/references/sequences/promo-energy-arc.md +50 -0
- package/lib/motion/shotcraft/upstream/references/sfx-sourcing.md +95 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/basic-3d-scene.md +41 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/crash-zoom-punch.md +52 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/cursor-flyover.md +39 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/depth-layer-moves.md +39 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/graze-face-tour.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/overhead-camera-moves.md +51 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/space-camera-moves.md +46 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/steep-tilt-glide.md +52 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/tension-camera-moves.md +43 -0
- package/lib/motion/shotcraft/upstream/references/shots/camera/terminal-3d.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/data/before-after-slider-scrub.md +48 -0
- package/lib/motion/shotcraft/upstream/references/shots/data/chart-live-moves.md +52 -0
- package/lib/motion/shotcraft/upstream/references/shots/data/gauge-readout-moves.md +45 -0
- package/lib/motion/shotcraft/upstream/references/shots/data/scroll-brake-moves.md +46 -0
- package/lib/motion/shotcraft/upstream/references/shots/data/timeline-travel.md +44 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/assemble-then-type-flyin.md +63 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/aurora-bloom-bg-flip.md +54 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/brand-frame-snap.md +58 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/fui-hud-moves.md +35 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/glow-flyline-moves.md +53 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/icon-performance-moves.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/impact-feedback.md +50 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/light-play-moves.md +46 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/radial-ripple-phone-chips.md +56 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/riso-print-hits.md +49 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/scan-bracket-sweep.md +50 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-annotate-focus.md +53 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/scanline-assemble-flyin.md +53 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/slam-entrance-moves.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/effects/spotlight-sweep-moves.md +52 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/autolayout-gap-dial.md +60 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/canvas-materialize-moves.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/chip-grid-single-select-blackout.md +51 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/collab-cursor-moves.md +41 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/glass-pill-dictation-typing.md +53 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/hashtag-to-pill-materialize.md +60 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/picker-carousel-feature-cycle.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/segmented-thumb-hero.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/theme-switch-moves.md +47 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/type-and-filter.md +37 -0
- package/lib/motion/shotcraft/upstream/references/shots/interaction/voice-waveform-live.md +54 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/brand-ink-open.md +36 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/crane-rise-reveal.md +56 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/dataviz-landscape-open.md +56 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/fracture.md +40 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/icon-field-colorize.md +60 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/letterspace-materialize.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/magician-card-flourish.md +73 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/orbit-ring-title-open.md +87 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/spotlight-hero-card.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/stroke-segment-build.md +50 -0
- package/lib/motion/shotcraft/upstream/references/shots/opening/text-as-mask.md +59 -0
- package/lib/motion/shotcraft/upstream/references/shots/outro/grain-dissolve.md +38 -0
- package/lib/motion/shotcraft/upstream/references/shots/outro/logo-shrink-wordmark-lockup.md +38 -0
- package/lib/motion/shotcraft/upstream/references/shots/outro/neon-triple-marquee.md +59 -0
- package/lib/motion/shotcraft/upstream/references/shots/outro/outro-group-photo-launch.md +39 -0
- package/lib/motion/shotcraft/upstream/references/shots/outro/ui-strip-away-outro.md +61 -0
- package/lib/motion/shotcraft/upstream/references/shots/outro/ui-to-brand-morph.md +52 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-cut-moves.md +50 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/beat-step-list-theme-cycle.md +66 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/panel-grid-moves.md +43 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/quad-split-parallel-scenes.md +38 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/rhythm-interrupt-moves.md +38 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/sakuga-timing-shift.md +56 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/speed-ramp-freeze.md +44 -0
- package/lib/motion/shotcraft/upstream/references/shots/rhythm/trailer-grammar-moves.md +38 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/bottom-push-stack-wipe.md +63 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/card-flip-reveal.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/card-flock-tumble.md +63 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/circle-match-iris.md +58 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/gradient-transition.md +45 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/line-carry-transition.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/mosaic-reframe.md +49 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/page-turn-transitions.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/shot-transitions.md +45 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/tear-streak-transitions.md +48 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/transition-hidden-cut.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/transition-travel.md +43 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md +41 -0
- package/lib/motion/shotcraft/upstream/references/shots/transition/wipe-transitions.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/blur-slide.md +59 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/brace-expand.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/countdown-arc-scatter.md +65 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/document-typewriter-reveal.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/flying-words.md +64 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/glitch-cycle.md +64 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/gradient-word-sweep.md +54 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/lead-word-zoom-assemble.md +91 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/marker-underline-title.md +51 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/outline-word-fill.md +66 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/paper-title-card.md +38 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/pill-chip-slot-cycle-handled.md +66 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/pill-slot-cycle.md +58 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/text-column-converge.md +61 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/title-demote-to-label.md +64 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/type-assembly-moves.md +45 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/type-entrance-moves.md +41 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/type-rhythm-sync.md +51 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/typewriter-moves.md +42 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/vertical-word-roll-blur-cycle.md +63 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-filmstrip.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/typography/word-relay-geometry.md +75 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/avatar-bracket-carousel.md +59 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/bezier-source-converge-merge.md +67 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/card-stack.md +60 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/carousel-3d.md +66 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/cloner-depth-echo.md +40 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/deck-deal-flyin.md +45 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/doc-park-left-pill-deal.md +62 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/draw-svg-trace.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/element-body-moves.md +37 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/integration-hub-map.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-reveal.md +50 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/list-stack-press.md +43 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-forerun.md +55 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/neon-frame-orbit-drop.md +51 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/page-waterfall-wall.md +51 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/product-card-progressive-assemble.md +56 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/radial-wave.md +49 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/research-card-stack-scroll.md +57 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/row-embed.md +36 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/value-stagger-gradient.md +64 -0
- package/lib/motion/shotcraft/upstream/references/shots/ui-entrance/wall-reveal-moves.md +47 -0
- package/lib/motion/shotcraft/upstream/references/sound-design.md +170 -0
- package/lib/motion/shotcraft/upstream/references/workbench.md +157 -0
- package/lib/motion/shotcraft/upstream/template/TEMPLATE.md +103 -0
- package/lib/motion/shotcraft/upstream/template/THEMES.md +44 -0
- package/lib/motion/shotcraft/upstream/template/package.json +20 -0
- package/lib/motion/shotcraft/upstream/template/remotion.config.ts +6 -0
- package/lib/motion/shotcraft/upstream/template/src/Root.tsx +17 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/Caption.tsx +65 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/DigitRoll.tsx +48 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/FlashCut.tsx +24 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/Main.tsx +192 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/PaperTitleCard.tsx +111 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/PageCam.tsx +150 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneDetail.tsx +158 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneFlyIn.tsx +468 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOpen.tsx +552 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneOutroLive.tsx +411 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/ScenePapers.tsx +200 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live/SceneWbr.tsx +324 -0
- package/lib/motion/shotcraft/upstream/template/src/aifl/live-layout.json +389 -0
- package/lib/motion/shotcraft/upstream/template/src/index.ts +4 -0
- package/lib/motion/shotcraft/upstream/template/src/themes/ThemedFilm.tsx +7 -0
- package/lib/motion/shotcraft/upstream/template/src/themes/manifest.tsx +68 -0
- package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.json +1 -0
- package/lib/motion/shotcraft/upstream/template/src/themes/palette-assets.ts +24 -0
- package/lib/motion/shotcraft/upstream/template/src/themes/palettes.json +74 -0
- package/lib/motion/shotcraft/upstream/template/src/themes/visual-theme.tsx +91 -0
- package/lib/motion/shotcraft/upstream/template/src/workbench.ts +213 -0
- package/lib/motion/shotcraft/upstream/template/tsconfig.json +15 -0
- package/lib/motion/spec.js +113 -0
- package/lib/motion/style-engine.js +153 -0
- package/lib/motion/style-frames.js +268 -0
- package/lib/motion/sync.js +214 -0
- package/lib/motion/theme.js +121 -0
- package/lib/motion/voice.js +417 -0
- package/lib/motion-agent-files.js +82 -0
- package/lib/motion-agent-protocol.js +66 -0
- package/lib/motion-agent-tools.js +196 -0
- package/lib/motion-agent.js +171 -0
- package/lib/motion-capture.js +92 -0
- package/lib/motion-core.js +238 -0
- package/lib/motion-film-review.js +71 -0
- package/lib/motion-library.js +210 -0
- package/lib/motion-planner.js +254 -0
- package/lib/motion-project.js +80 -0
- package/lib/motion-render-worker.js +145 -0
- package/lib/motion-session.js +32 -0
- package/lib/motion-source.js +49 -0
- package/lib/motion-tasks.js +452 -0
- package/lib/motion-vision.js +43 -0
- package/lib/mxfile.js +27 -7
- package/lib/routing/node-runtime.js +14 -0
- package/lib/routing/router.js +211 -0
- package/lib/routing/vendor/README.md +96 -0
- package/lib/routing/vendor/libavoid-routing.js +753 -0
- package/lib/routing/vendor/libavoid.min.js +59 -0
- package/lib/shotcard-core.js +39 -0
- package/lib/shotcard-reference.js +56 -0
- package/lib/style-kernel.js +37 -3
- package/lib/task-patches.js +26 -2
- package/lib/video-export.js +17 -2
- package/package.json +29 -4
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: card-flock-tumble
|
|
3
|
+
一句话: 三张 UI 页卡从侧棱薄边 3D 翻飞成阶梯站定(全程清晰、样条连续丝滑),站定后保持慢转不停,快速收束吸入中心,炸出单个湍流烟雾环扩散,巨字横贯收场
|
|
4
|
+
适用: 能量高潮段(功能页群→品牌口号的爆点转场);霓虹/极光暗场调性;"多页面能力"收束成一句话的段落
|
|
5
|
+
时长: 翻飞 ~1.5s + 慢转展示 ~0.3s + 收束 0.3s + 烟环+巨字 ~2s;全段 4.5s
|
|
6
|
+
能量: 极高(全片能量顶点用)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
三张页卡像被甩出的扑克在 3D 空间翻飞列队,站定亮相后被瞬间
|
|
11
|
+
吸入中心,炸出一圈烟雾环,品牌巨字穿环而出——"能力展示→能量
|
|
12
|
+
坍缩→口号爆发"一气呵成。命门有三:**丝滑**(侧棱→翻飞→站定
|
|
13
|
+
一条 Catmull-Rom 样条导数连续,分段插值的顿挫会被读出来)、
|
|
14
|
+
**不许停**(站定后保持低角速度慢转到收束,静止段被裁"不要停住,
|
|
15
|
+
保持旋转"——高潮段没有静帧)、**全程清晰**(motion blur/景深糊
|
|
16
|
+
全删,被裁"不要加模糊效果")。
|
|
17
|
+
|
|
18
|
+
## 动效核心
|
|
19
|
+
- 翻飞:三卡各自 k0(近 90° 侧棱薄边)→k1(翻飞中段)→k2(阶梯
|
|
20
|
+
站定)Catmull-Rom 样条,Easing.out(cubic) 驱动,~44f
|
|
21
|
+
- 站定慢转:idle 漂移 ry +0.34°/f、rx -0.1°/f、rz +0.05°/f(14f
|
|
22
|
+
平方缓入避免与样条衔接顿挫),到收束时刻不停
|
|
23
|
+
- 收束:10f Easing.in(quad) 从慢转姿态直接加速吸入中心缩小,
|
|
24
|
+
透明度前 60% 满格("吸入"运动要清晰可读)
|
|
25
|
+
- 闪核:吸入到点同一帧(70f)中心一团白热核 + 全屏 12% 微曝,6f
|
|
26
|
+
指数衰减,环从闪核里长出——补上收束与巨字之间的能量断档;只用
|
|
27
|
+
径向光,不画几何描边环、不加粒子(两者都在判例里被裁过)
|
|
28
|
+
- 烟雾环:**单个**(多圈被裁),feTurbulence 三组位移(絮边/亮斑/
|
|
29
|
+
暗斑)+ 顶部奶桃 → 粉 → 紫渐变(aurora 色带),screen 叠加——破碎絮边、
|
|
30
|
+
明暗斑块、减速外扩缓慢长大、衰减极慢驻留,中心无水面光;粒子零残留
|
|
31
|
+
- 巨字:收束后 4f(74f)就"砸"进来——14f snappy 从 1.22 缩到 1、字距
|
|
32
|
+
由 +0.06em 收到 −0.025em,之后极缓长大不停;实心白热芯→淡紫竖向
|
|
33
|
+
渐变填充 + 粉紫双层泛光(落地瞬间更亮再回落),282px 斜体横贯约 80%
|
|
34
|
+
画宽;环心内上方眉题(demo:video-shotcraft 标志描出 + 小写字标)、
|
|
35
|
+
下方 44px 标语(品牌短句)错峰升起,尾帧是发布海报
|
|
36
|
+
- 背景:两行 300px 单色淡紫描边字墙反向缓移 + 卡后一团极光主光托起
|
|
37
|
+
卡片群;收束时字墙随吸入向心收缩淡出。卡片群与收束点、环心、巨字
|
|
38
|
+
共用一个中心(画面中心下移 30px)
|
|
39
|
+
|
|
40
|
+
## 参数表
|
|
41
|
+
| 参数 | 典型值 | 调节手感 |
|
|
42
|
+
|------|--------|----------|
|
|
43
|
+
| 三卡间距/大小 | 大幅重叠成一叠阶梯、scale 1.6–1.74 | 两轮加码判例:"再靠近一些,再大些"——阶梯要读作一组不是三张 |
|
|
44
|
+
| 站定慢转 | ry ~0.34°/f 连续 | **不许静止**(判例);>1°/f 读作还没站定 |
|
|
45
|
+
| 收束时长 | 10f ease-in | 22f 版被裁"要快";透明度早退=吸入不可读(返工判例) |
|
|
46
|
+
| 烟雾环 | 单圈、湍流絮边、衰减极慢 | 多圈被裁;平滑霓虹圈/粒子版被裁——对照原片密帧做湍流质感 |
|
|
47
|
+
| 模糊 | 全程零 blur | 翻飞/收束加 blur 均被裁 |
|
|
48
|
+
| 样条 | 一条 Catmull-Rom 贯穿 | 分段 lerp 有速度台阶,"丝滑流畅"是裁决原话 |
|
|
49
|
+
| 巨字入场 | 收束到点后 4f、14f snappy 1.22→1 + 字距收拢 | 原版等 14f 才出字,中间一段只有小环的黑场,高潮断气;慢放大(0.7→1 / 34f)读作淡入而不是砸 |
|
|
50
|
+
| 闪核 | 径向白热核 + 全屏 12% 微曝,6f 衰减 | 去掉后环像凭空冒出;加描边亮环立刻廉价(判例同烟雾环) |
|
|
51
|
+
|
|
52
|
+
## 已知坑
|
|
53
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
54
|
+
首次实战须以真实素材回验
|
|
55
|
+
- 烟雾环质感判例:干净图形环(描边圆/同心波)三轮被裁,最终版
|
|
56
|
+
feTurbulence 湍流絮边对照原片密帧逐格校——"要一样";残余差距
|
|
57
|
+
是噪声场静态(整体旋转+长大),无逐帧湍流滚动,极近看流动感弱
|
|
58
|
+
- 烟雾环是能量坍缩的余波,不是庆祝打击点——禁加粒子礼花
|
|
59
|
+
|
|
60
|
+
## 参考实现
|
|
61
|
+
demos/transition/card-flock-tumble/
|
|
62
|
+
(CardFlockTumble.tsx)
|
|
63
|
+
原片出处:clickup-30.mp4
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: circle-match-iris
|
|
3
|
+
一句话: 圆心匹配光圈切——光圈从页面上圆形元素的圆心炸开,圈内新页的圆形图表接在同一个圆上;匹配剪辑给光圈一个语义锚点
|
|
4
|
+
适用: 前景有圆形元素(头像/图标/圆钮)、后景有圆形主体(donut 图/圆环进度)的接缝;转场技法卡
|
|
5
|
+
时长: 5.5s / 165f(入场+定睛 40f + 蓄力 7f + 接圆开圈 37f + sweep 58f + 静止 47f)
|
|
6
|
+
能量: 中高
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
普通 iris 光圈(词汇表原条目)从任意点开圈,观众只读到"换页了"。
|
|
11
|
+
本卡把它和 match-cut 焊死:光圈必须从前景一个**真实圆形元素**的圆心
|
|
12
|
+
炸开,圈内长出的新页里有个圆形图表恰好接在同一个圆上——观众看到的
|
|
13
|
+
是"头像的圆变成了图表的圆",圆形本身完成叙事(这个人→这个人的数据)。
|
|
14
|
+
这是 match-cut 在 UI 语境里的落地形态:不靠构图巧合,靠语义圆对圆。
|
|
15
|
+
与穿越三式同属"后景在前景里预先在场",但锚点是抽象形状而非容器。
|
|
16
|
+
|
|
17
|
+
## 动效核心
|
|
18
|
+
- **两景的圆严格同心是命门**:锚点圆心写死为一组常量(demo:CX=540,
|
|
19
|
+
CY=540,= 榜单行左缘 + 内边距 + 名次列 + 头像半径),头像、涟漪、
|
|
20
|
+
clip-path circle、新景圆环、刻度盘全部引用同一组常量——坐标各算各的必然错心
|
|
21
|
+
- 定睛引导:其余行压到 ~32% 亮度、锚点所在行抬亮;头像两次放大脉冲 +
|
|
22
|
+
两道扩散光环(18f / 30f);相机以锚点为 transform-origin 缓推 3%
|
|
23
|
+
(锚点在屏幕上不动),40–47f 头像收到 0.9 做预备
|
|
24
|
+
- **接圆 = 实心圆镂空成圆环**:开圈瞬间新景圆环的描边宽 = 直径(看上去
|
|
25
|
+
就是那颗实心头像),28f 内半径 36→300、描边收到 44px(expo-out),
|
|
26
|
+
颜色由荧光实心退成暗轨;光圈半径 = 圆环外沿 + 一段 ease-in 加速外扩
|
|
27
|
+
(54–84f 加 2400px),所以是"圆环把光圈撑开"——接圆必然发生在吃满屏之前
|
|
28
|
+
- 旧页同时以锚点为心放大 1.03→1.22 并压暗(ease-in),光圈外沿一圈落影 +
|
|
29
|
+
一道只在开圈初段出现的荧光受光环——新景"压"在旧页之上
|
|
30
|
+
- 圆环 sweep:strokeDasharray = sweep×周长,rotate(-90) 从顶部起笔,
|
|
31
|
+
60–118f 慢起长尾到 87%,中央 200px 数字随 sweep 同步计数,弧头柔光跟笔尖
|
|
32
|
+
|
|
33
|
+
## 参数表
|
|
34
|
+
| 参数 | 典型值 | 调节手感 |
|
|
35
|
+
|------|--------|----------|
|
|
36
|
+
| 锚点脉冲 | 2 次 scale 1→1.16 + 光环扩两道(18f / 30f 起,各 22f) | 没有定睛引导,开圈瞬间观众找不到圆心 |
|
|
37
|
+
| 接圆 | 实心盘→圆环:r 36→300、描边 72→44px / 28f expo-out | 圆环与光圈各长各的,"头像变成图表"就读不出来 |
|
|
38
|
+
| 光圈扩张 | 圆环外沿 + 0→2400px / 30f bezier(.62,0,.32,1) | 快于 20f 接圆读不到;圆心偏移 >10px 一眼穿帮 |
|
|
39
|
+
| 旧页推远 | scale 1.03→1.22 + 亮度 1→0.45 / 34f ease-in | 旧页不动,新景像贴在上面的圆形贴纸 |
|
|
40
|
+
| sweep | 60–118f 到 87%,bezier(.4,0,.12,1),数字同步计数 | 数字与 sweep 异步读作两个动画;太快(<40f)数字读不出在爬 |
|
|
41
|
+
| 收尾 | sweep 完成后静止 47f(只留刻度盘 0.06°/f 慢转 + 弧光呼吸) | R1 |
|
|
42
|
+
|
|
43
|
+
## 已知坑
|
|
44
|
+
- demo 是手搓的 video-shotcraft 出片周榜(暗场荧光绿;景 A 创作者排行 → 景 B 本周出片目标圆环)——参数是调校起点非实战定稿,
|
|
45
|
+
首次实战须以真实素材回验
|
|
46
|
+
- 真实素材上锚点坐标从截图量测(devtools/标尺),量到的是元素盒不是
|
|
47
|
+
视觉圆心——带内边距的头像取内容圆心;量完渲一帧对不齐就调常量,
|
|
48
|
+
别信第一次量的数(同 transition-travel A 字腔穿越的腔心判例)
|
|
49
|
+
- 前景锚点必须是**真圆**:圆角方块(border-radius < 50%)当锚点,
|
|
50
|
+
开圈瞬间方圆错型一眼假;真实截图里锚点是圆角方块时,先用同色补丁盖住再叠真圆
|
|
51
|
+
- 语义要成对:头像→个人数据、产品图标→产品指标——圆对圆只是形,
|
|
52
|
+
"这个圆的内容变成它的展开"才是匹配剪辑成立的因
|
|
53
|
+
- 一缝一式规矩同 shot-transitions;本卡自带图表生长段,圈内新景
|
|
54
|
+
别再叠入场动效
|
|
55
|
+
|
|
56
|
+
## 参考实现
|
|
57
|
+
demos/transition/circle-match-iris/
|
|
58
|
+
(CircleMatchIris.tsx)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gradient-transition
|
|
3
|
+
一句话: 背景在 linear、radial、conic 三类 CSS 渐变间平滑过渡——角度、色标、中心、半径逐参数插值,段间交叉淡化换类型
|
|
4
|
+
适用: 氛围底/章节底色的连续变奏;给静态排版段落提供"活着"的背景层
|
|
5
|
+
时长: 约 6.7s(200f@30fps;linear 0–2.3s · radial 1.9–4.4s · conic 3.9–6.7s)
|
|
6
|
+
能量: 低(纯背景运动,为前景内容让路)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
渐变不是静态贴图而是可动画的参数集:同类型渐变内部任何参数都能插值出丝滑变化,跨类型则用短交叉淡化衔接。作背景层用,给"没有主体运动"的段落一层持续的低速能量。
|
|
11
|
+
|
|
12
|
+
## 动效核心
|
|
13
|
+
- 三层各持一种渐变类型,同一时刻只有一层主导,交叉淡化窗口很窄(12–14f)且两层在窗内都在动
|
|
14
|
+
- linear 段(0–68f):角度 18°→198°(swift in-out),三档明度色标(64→40→7)在 HSL 空间三通道插值
|
|
15
|
+
(`mixH` 对 h/s/l 分别 lerp,比 RGB 不发灰)——明度拉开,亮带走向才看得出"角度在扫"
|
|
16
|
+
- radial 段(56–132f):圆心 (24%,72%)→(68%,38%) 对角迁移 + 半径 48%→80% 扩张,外圈近黑,
|
|
17
|
+
光斑像在画面里游走并聚焦
|
|
18
|
+
- conic 段(118–200f):A→B→C→A 三色环(紫 / 品红 / 冰蓝,首尾同色)`from` 0→250° 旋转,
|
|
19
|
+
慢起长尾 ease 越转越慢落定;圆心放在主体右后方 (64%,54%),外圈与文字侧再压暗
|
|
20
|
+
- **小画布作画**:三层渐变画在 480×270 上再 `transform: scale(4)` 铺满——合成期放大天然柔化,
|
|
21
|
+
conic 的 blur(9px) 在小画布上做(≈全分辨率 36px),每帧代价是全屏实时模糊的 1/16;上面叠颗粒防色带
|
|
22
|
+
- demo 前景:每段一句大字(180px),动词描述该段的参数运动(Bend light. / Focus it. / video-shotcraft 字标 + 品牌短句),
|
|
23
|
+
换句与换类型同拍;底部 mono 注记实时读出正在插值的渐变参数
|
|
24
|
+
|
|
25
|
+
## 参数表
|
|
26
|
+
| 参数 | 典型值 | 调节手感 |
|
|
27
|
+
|------|--------|----------|
|
|
28
|
+
| 段窗口重叠 | 相邻段起点比前段终点早 12f | 重叠保证淡化时两层都在动;无重叠会看到"接管瞬间静止" |
|
|
29
|
+
| 交叉淡化 | 56–68f / 118–132f(smooth in-out) | 拉宽会同屏看到两种渐变结构打架;窄淡化 + 参数同动是"换类型不换气"的关键 |
|
|
30
|
+
| HSL 插值 | h/s/l 三通道独立 lerp | 色相差 >180° 时会绕远路(如 340→160),需要短路径时给起点 +360 |
|
|
31
|
+
| 色标明度差 | linear 亮 64 / 中 40 / 暗 7 | 明度差 <20 时角度扫过读不出来,只剩一块在变色的平底 |
|
|
32
|
+
| radial 迁移 | 中心对角走位 + 半径 48%→80% | 中心不动只扩半径会读作"呼吸"不是"游走" |
|
|
33
|
+
| conic 旋转 | from 0→250°(不满一圈,ease-out 长尾) | 转满 360° 收尾与开头同帧,接循环时用;单次播放留缺口避免"回到原点"感 |
|
|
34
|
+
| 色标组 | 三段同一组紫 / 品红 / 冰蓝 | 换项目色时保持"亮色+暗色"配对结构,radial 外圈必须暗(光斑成立的前提) |
|
|
35
|
+
|
|
36
|
+
## 已知坑
|
|
37
|
+
- 这是背景卡:前景放排版/UI 时在文字一侧叠暗色 scrim(demo 左侧线性压暗 + 外圈暗角),否则 conic 段的亮色会吃掉前景对比度
|
|
38
|
+
- `radial-gradient(circle R …)` 的 R 只接受长度:写成 `circle 45%` 整条渐变失效、该段渲成纯黑——百分比半径要么换算成 px(demo 以小画布宽 480px 为 100%),要么改用 `ellipse X% Y%`
|
|
39
|
+
- CSS 渐变字符串每帧重写触发 repaint 而非 composite——大画幅 + 低端设备需实测;Remotion 服务端渲染无此顾虑
|
|
40
|
+
- conic 段用三色循环(A→B→C→A);七段彩虹色环是"演出"性质,品牌化场景别用
|
|
41
|
+
- 三段各自独立可拆用:只要 linear 段(0–68f 重归一化)就是一张"角度扫过"的极简底
|
|
42
|
+
|
|
43
|
+
## 参考实现
|
|
44
|
+
demos/transition/gradient-transition/
|
|
45
|
+
(GradientTransition.tsx)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: line-carry-transition
|
|
3
|
+
一句话: 线条接力横移转场——场景 A 的进度条延伸出画,镜头跟线横移,线在移动中拐角围出场景 B 的卡框,全程无剪切
|
|
4
|
+
适用: 两个有图形亲缘的场景之间(进度条→卡框、下划线→图表轴);一支片子的招牌转场位,Catch Me If You Can 片头的图形接力
|
|
5
|
+
时长: ~6.3s / 190f(进度条走满 36f + 冲出 10f + 横移 56f + 收框 24f + 框内海报 30f + 静止 24f)
|
|
6
|
+
能量: 中
|
|
7
|
+
标签: camera
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 意图
|
|
11
|
+
转场库三大族(穿越/藏切/体块)都在回答"场景怎么换";本卡的回答是
|
|
12
|
+
**根本不换——一条线牵着你走过去**。进度条走满后末端延伸成长线冲出
|
|
13
|
+
卡缘,镜头跟着线横移 1920px 进入新世界,线在移动中拐直角围出 B 场景
|
|
14
|
+
的卡框,框闭合、内容淡入,从头到尾观众的眼睛没离开过这条线。图形
|
|
15
|
+
连续性本身就是转场。与 match-cut 的区别:那是切点两侧形状对位——
|
|
16
|
+
终究还是切;这是连续绘制——**没有切**。线的身份要有叙事逻辑(进度条
|
|
17
|
+
"走完了"所以延伸出去),无来由的线只是装饰。
|
|
18
|
+
|
|
19
|
+
## 动效核心
|
|
20
|
+
- 3840 宽世界容器 translateX 当镜头,56–112f 移 1920px,smooth in-out(bezier .65,0,.35,1)
|
|
21
|
+
- 一条手写折线 path(进度条 648 + 冲出段 + 直角 + 720×480 矩形框,总长 4944)全程
|
|
22
|
+
dasharray evolve,分段驱动 drawn 长度
|
|
23
|
+
- **命门:横移段 drawn = 1144 + cam,线生长与镜头同速**——笔头钉在画面 x≈1480 偏右,
|
|
24
|
+
永不出画也永不落后;一旦失速,观众跟丢线就等于跟丢了转场
|
|
25
|
+
- **交接处速度连续**:进度条 ease-out 落到零速 → 满格停 6f(状态翻成完成、对勾弹出)→
|
|
26
|
+
冲出段两端零速(swift)→ 镜头 in-out 零速起步 → 收框 in-out 零速接住镜头的落点
|
|
27
|
+
- 笔头是全片唯一的强调色点(赤陶 r=14 + 晕圈),框闭合后 136–142f 消散并条件卸载(摘罩判例)
|
|
28
|
+
- 横移时世界内容(卡、点阵、展签)按镜头速度做水平运动模糊(SpeedBlur,≤16px),线与笔头在模糊层外始终锐利;
|
|
29
|
+
线经过后在线下长出制图刻度,横移中段画面里只有线时给眼睛一个速度参照
|
|
30
|
+
- B 的展签标题在框外,可以在镜头到位前后先升起;框内海报必须等框闭合(136f 起)才长出
|
|
31
|
+
|
|
32
|
+
## 参数表
|
|
33
|
+
| 参数 | 典型值 | 调节手感 |
|
|
34
|
+
|------|--------|----------|
|
|
35
|
+
| 线体 | 8px 墨色实线,方头 + 直角 miter | 太细横移中读丢;虚线读作未完成态 |
|
|
36
|
+
| 横移配比 | 1920px / 56f(均速 34px/f) | 更远的横移等比拉长时长,别提速——峰速 >80px/f 笔头开始跟丢 |
|
|
37
|
+
| 笔头位置 | 画面 x≈1480(约 77% 处偏右) | 居中读作"线追镜头";贴边一颤就出画 |
|
|
38
|
+
| 拐角 | 直角硬拐,不倒圆 | 圆角软拐丢掉制图感,Saul Bass 味就没了 |
|
|
39
|
+
| 框闭合 | 闭合帧起框内内容再出 | 框没闭合内容先出,线的悬念白搭 |
|
|
40
|
+
| 收尾 | 海报长完后 ≥24f 真静止 | 笔头墨点必须条件卸载,残留即毁静止 |
|
|
41
|
+
|
|
42
|
+
## 已知坑
|
|
43
|
+
- demo 是手搓的 video-shotcraft 渲染场景(米色纸 + 墨 + 赤陶;A 渲染发布片进度卡 → B 这支片的海报)——参数是调校起点非实战定稿,
|
|
44
|
+
首次实战须以真实素材回验
|
|
45
|
+
- 与 draw-svg-trace 的关系:那是元素级描边点名(线属于元素),这是
|
|
46
|
+
场景级线条接力(线属于镜头)——同片可共存,但线的语义要一致:
|
|
47
|
+
同为 ink 8px 几何硬线,或同为手绘感,混用读作两套美术
|
|
48
|
+
- 全片 ≤1 次——这是招牌转场不是常规转场,第二次出现魔法就穿帮
|
|
49
|
+
- 起点必须是已有图形构件的自然延伸(进度条走满、下划线画完),
|
|
50
|
+
凭空起线读作屏保
|
|
51
|
+
- 声音:线生长一声持续笔擦、框闭合一声轻叩(sound-design §4.5)
|
|
52
|
+
|
|
53
|
+
## 参考实现
|
|
54
|
+
demos/transition/line-carry-transition/
|
|
55
|
+
(LineCarryTransition.tsx)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mosaic-reframe
|
|
3
|
+
一句话: 12 张瓦片在规则网格、feature mosaic、对角瀑布串三种排版间连续变形,位置宽高各自插值、逐片微错峰,段间留 hold
|
|
4
|
+
适用: "同一批内容多种看法"的陈列转场:作品集/模板库/相册产品的布局能力展示
|
|
5
|
+
时长: 约 7.1s(214f@30fps;浮现 0–22f · hold A · A→B 56–92f · hold B · B→C 132–176f · hold C 至 214f)
|
|
6
|
+
能量: 中(连续流动的重排,无爆点,气质从容)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
让观众看见"布局本身在思考":同样 12 张内容,从整齐档案态(网格)变成有主次的策展态(feature mosaic),再变成有态度的动态态(对角瀑布)。## 动效核心
|
|
11
|
+
- 三套布局按 1920×1080 原生像素硬编码为坐标表(内容区 x 96–1824、y 212–984):A=4×3 规则网格(间距 24);
|
|
12
|
+
B=6×4 单元格 mosaic(首片占 3×2 大位,间距 16);C=竖幅相纸 300×372 沿 (850,214)→(1724,930) 对角摊开,
|
|
13
|
+
`rot = −15° + i·3°` 递增旋转
|
|
14
|
+
- 每片对中心 x/y、w/h、rot **独立插值**,不走 transform 整体缩放——宽高真实变化,圆角阴影不变形;
|
|
15
|
+
位置先到:w/h 晚 2f、旋转晚 4f 收敛,B→C 的旋转带一次轻过冲(bezier 0.45,0,0.3,1.22)
|
|
16
|
+
- 换位曲线 bezier(0.75,0,0.15,1)(慢起 → 急走 → 长尾软落),A→B 每片 26f、B→C 每片 30f;
|
|
17
|
+
途中按段进度 sin 包络抬起(放大 3.5% + 阴影变大变虚),落位贴回
|
|
18
|
+
- 因果驱动:右上角分段控件 Grid / Mosaic / Cascade 的强调色胶囊先滑到下一档(snappy 12f,途中横向拉长),
|
|
19
|
+
瓦片晚 4f 才开始重排(父先动、子跟随)
|
|
20
|
+
- 错峰:A→B 按序号先密后疏扫过(10f 跨度);B→C 像发牌一样等间隔依次摊开(14f 跨度),
|
|
21
|
+
B→C 起叠放次序切换为"后发的压上面"(B 态无重叠,切换不可见)
|
|
22
|
+
- 三态三种语气:B 态主图压衬线大字图注(Featured shot / Golden Hour / Shot 01 · Crash zoom · 4.5 s 逐词升起);
|
|
23
|
+
C 态瓦片长出 14px 相纸白边,左下留白处升起衬线大标题 + 副行,尾帧是完整海报
|
|
24
|
+
(demo 是 video-shotcraft 的 12 镜分镜板:页眉标志 + 字标 + Storyboard,收尾「Every shot, in sequence.」+ 品牌 tagline)
|
|
25
|
+
- 开场:12 张照片沿对角线错峰升起(16f snappy),全程相机极缓推近 1→1.025
|
|
26
|
+
|
|
27
|
+
## 参数表
|
|
28
|
+
| 参数 | 典型值 | 调节手感 |
|
|
29
|
+
|------|--------|----------|
|
|
30
|
+
| 段时长 / hold | A→B 26f、B→C 30f;hold A 30f、B 36f、C 34f | hold 是读版面的呼吸位,压到 <20f 三段糊成一段 |
|
|
31
|
+
| 控件→瓦片滞后 | 4f | 0 = 读不出因果;>8f 像控件失灵 |
|
|
32
|
+
| 错峰跨度 | A→B 10f、B→C 14f | 0 = 整版机械闪变;>24f 波浪抢过版面本身 |
|
|
33
|
+
| 瀑布参数 | 相纸 300×372,中心间距约 (79,65)px,rot −15°+3°/片 | 旋转递增是"串"的灵魂;等角会退化成斜排网格 |
|
|
34
|
+
| mosaic 大位 | 首片 3×2 单元格 | 换 slots 表可重排主次;保证有一块 ≥2×2 的锚点位 |
|
|
35
|
+
| 抬起包络 | scale +3.5%、阴影 elevation 6→40 | 太大像弹窗乱飞,0 读作平面滑块 |
|
|
36
|
+
| 瓦片内容 | SVG 程序照片(viewBox + slice ≈ cover,八式暖调胶片风) | 换真实照片时保留 overflow:hidden 圆角容器 + object-fit: cover |
|
|
37
|
+
|
|
38
|
+
## 已知坑
|
|
39
|
+
- 中心/宽高独立插值意味着**不能**换成 `transform: scale`——宽高动画会引发子元素重排,图片要用 `object-fit: cover`
|
|
40
|
+
- C 段末片有意越出画框底边,画框裁切是构图的一部分;C 的对角线要避开左上字标和右上控件,左下留给标题
|
|
41
|
+
- 竖幅相纸会把横幅照片裁成中间一条:照片主体放画面水平中心附近;主图的太阳偏右,给左下图注让位
|
|
42
|
+
- 叠放次序只能在"无重叠"的态切换(B→C 起跳帧),在重叠中途换 zIndex 会看到瓦片跳层
|
|
43
|
+
- 段窗口 + 错峰 + 滞后叠加后末片 B→C 约 176f 才落定,再加段落需压缩前段而不是顺延
|
|
44
|
+
|
|
45
|
+
缩前段而不是顺延(保证 t=1 前全部落定)
|
|
46
|
+
|
|
47
|
+
## 参考实现
|
|
48
|
+
demos/transition/mosaic-reframe/
|
|
49
|
+
(MosaicReframe.tsx)
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: page-turn-transitions
|
|
3
|
+
一句话: 整页体块转场——barn-door-split 对开门裂幕(旧页裂两半滑出、新页迎上)
|
|
4
|
+
适用: 章节级换页:新旧交替的两个大段落之间的"翻篇"仪式;与 shot-transitions 系(镜头交棒)分工——那是"航拍机移过去",这是"页面自己是实体"
|
|
5
|
+
时长: 单式 150f(前态建立 30–40f + 转场 24–40f + 跟随与收尾 ≥70f),约 5.0s
|
|
6
|
+
能量: 中高
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
shot-transitions 三式和 transition-travel/hidden-cut 都把页面当"场景"
|
|
11
|
+
——相机在场景间移动。本卡把页面当**实体**:它有厚度、有重量、会
|
|
12
|
+
裂开。体块隐喻的仪式感更强,适合章节级大换页(功能 A 讲完→功能 B)
|
|
13
|
+
而非镜头级小交棒。对开门是"旧的让位"——旧页从正中撕开滑走、新页
|
|
14
|
+
从底下迎上来,暗示取代关系,专管新旧交替。
|
|
15
|
+
|
|
16
|
+
## 单式选型
|
|
17
|
+
| 式 | 做法 | 适用 |
|
|
18
|
+
|----|------|------|
|
|
19
|
+
| A barn-door-split | 旧页两个 960px overflow 容器对位拼合,同时向外 ease-in 加速滑出画外(按速度挂横向运动模糊);裂缝里透出新页的光——门内缘 10px 切面被照亮、门面近缝处被光染暖,新页带一次过曝光束 scale 1.08→1 迎上;demo 为同版式的 video-shotcraft 版本更替:「Shotcraft 3」冷灰旧页 → 「Shotcraft 4」余烬发布页(眉题挂镜刻标志),数据从旧值滚到新值(示意值) | 新旧交替:改版前后、方案 A→方案 B、版本发布 |
|
|
20
|
+
|
|
21
|
+
## 参数表
|
|
22
|
+
| 参数 | 典型值 | 调节手感 |
|
|
23
|
+
|------|--------|----------|
|
|
24
|
+
| 预告 | 裂前中缝一条发丝亮线(带泛光)自中点向上下描出(20–30f),30–40f 裂缝 ease-in 撑开 0→16px 成一道光缝 | 直接裂开观众没看到裂点在哪;硬开关闪线读作渲染故障 |
|
|
25
|
+
| 滑出 | 各 translateX ∓1000px / 24f,bezier(0.42,0,0.8,0.25) 加速 | ease-out 滑出是"被推走",ease-in 才是"让位";quart-in 太猛会读作"停住→最后一帧消失" |
|
|
26
|
+
| 新页迎上 | scale 1.08→1(snappy 36f,晚门 2f 起跳),过曝光束随门远去 ~30f 衰减;新旧两页同版式同槽位 | 新旧页版式不同就读不出"取代" |
|
|
27
|
+
| 撕裂边 | 内边缘 10px 受光切面(亮→强调色→暗)+ 门面近缝 620px 光染(screen),门不向新页投影 | 无边线两半读作普通左右擦除;门往缝里投影会把光压灰 |
|
|
28
|
+
| 收尾 | 新页落定后跟随动作(数据滚动 / 清单打勾)+ hold ≥30f,hold 段相机极缓推近 1.5–2% | R1 |
|
|
29
|
+
|
|
30
|
+
## 已知坑
|
|
31
|
+
- demo 在为镜头手搓的页面上调校——参数是调校起点非实战定稿,
|
|
32
|
+
首次实战须以真实素材回验
|
|
33
|
+
- 一缝一式规矩同 shot-transitions;体块转场比镜头交棒更重,
|
|
34
|
+
**全片 ≤2 次**,连续两缝都用体块读作 PPT 翻页
|
|
35
|
+
- 两半必须**对位拼合无缝**(右半内层 translateX(−960px))——
|
|
36
|
+
静止时看出接缝就穿帮;真实截图注意奇数宽度取整
|
|
37
|
+
- 转场前后两页都要有 ≥30f 静止建立/收尾——两端都在动,体块感被
|
|
38
|
+
运动淹没
|
|
39
|
+
|
|
40
|
+
## 参考实现
|
|
41
|
+
demos/transition/page-turn-transitions/
|
|
42
|
+
(BarnDoorSplit.tsx)
|
package/lib/motion/shotcraft/upstream/references/shots/transition/print-texture-transitions.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: print-texture-transitions
|
|
3
|
+
一句话: 印刷质感转场——ink-bleed-reveal 墨渗揭示(须状渗边洇开吃掉旧景)
|
|
4
|
+
适用: 换景接缝的纸墨审美款;与交棒三式/穿越式并列的第三族——"介质显影"型转场
|
|
5
|
+
时长: 4–4.5s(洇开段 55–80f + 静止收尾 ≥30f)
|
|
6
|
+
能量: 中(渐进显形,无冲击拍)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
转场语言已有交棒(shot-transitions 三式)和穿越(transition-travel)
|
|
11
|
+
,都是空间/光学隐喻。本式开第三族:**介质隐喻**——新画面不是"到来"
|
|
12
|
+
而是"印染"出来的,直接调用库内纸墨审美的物理想象:像一滴墨落在
|
|
13
|
+
宣纸上洇开吃掉旧景,有机、书写感。天然亲和 paper/ink 调性的片子,
|
|
14
|
+
是 light-leak-burn(强调色漏光)之外的另一个"介质系"接缝选择。
|
|
15
|
+
|
|
16
|
+
## 单式选型
|
|
17
|
+
| 式 | 做法 | 适用 |
|
|
18
|
+
|----|------|------|
|
|
19
|
+
| A ink-bleed-reveal 墨渗揭示 | 新页透过须状渗边的有机圆形遮罩从落墨点洇开,快慢不匀吃掉旧景 | 旧景→新景替换;书写感、叙事调性 |
|
|
20
|
+
|
|
21
|
+
## 参数表
|
|
22
|
+
| 参数 | 典型值 | 调节手感 |
|
|
23
|
+
|------|--------|----------|
|
|
24
|
+
| 渗边 | SVG mask 白圆挂 `feTurbulence(fractalNoise, baseFrequency 0.02, octaves 3, seed 固定)` + `feDisplacementMap scale 60→160 随帧涨` | filter 只揉遮罩形状、内容始终清晰;seed 必须写死(确定性) |
|
|
25
|
+
| 洇开 | 半径 [20,98f]→[0,1450px] Easing.out(quad),乘 `1+0.08·sin(0.32f)·env` 快慢不匀扰动(env 末 20f 衰减归零) | 匀速圆扩张读作普通 iris——扰动即"墨的脾气" |
|
|
26
|
+
| 墨边 | 两层遮罩圆领先新景 20–42px:外沿 0.42 不透明 + 3.2px 羽化、内芯 0.86 + 1px 羽化,再外一圈 +110px 重羽化湿晕(0.12);14–22f 先落一个小墨点 | 无墨边读作普通 iris 擦除;墨边太宽太实读作烧纸洞 |
|
|
27
|
+
| 显影 | 新景在遮罩内 scale 1.035→1(20–100f ease-out),摘罩前精确回到 1 | 不收会在摘罩帧跳一下 |
|
|
28
|
+
| 收尾摘罩 | 洇满后(帧 ~100)摘掉 SVG mask 直接铺新景 | feTurbulence 有亚像素抖动,不摘则结尾永不真静止(本批实渲判例) |
|
|
29
|
+
| 收尾 | 新景就位后真静止 ≥30f | R1 |
|
|
30
|
+
|
|
31
|
+
## 已知坑
|
|
32
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
33
|
+
首次实战须以真实素材回验
|
|
34
|
+
- 一缝一式规矩同 shot-transitions:介质转场不与白闪/震屏叠加;
|
|
35
|
+
本式与 light-leak-burn 介质系同片合计 ≤2 次,多了片子读作印刷厂宣传
|
|
36
|
+
- 洇开中段旧景内容会透过噪声孔洞碎片式短暂露出——读作墨渍肌理
|
|
37
|
+
属可接受有机效果,但旧景若是人脸/logo 等高辨识元素会读作故障,避开
|
|
38
|
+
- 慢转场(55–80f 动作段),高节奏连打段落别用——那里去 shot-transitions B 式甩镜
|
|
39
|
+
|
|
40
|
+
## 参考实现
|
|
41
|
+
demos/transition/print-texture-transitions/
|
|
42
|
+
(InkBleedReveal.tsx)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: shot-transitions
|
|
3
|
+
一句话: 镜头交棒三式——推进流白、whip-pan 甩镜(急刹款)、mask-wipe 穿窗(纵深款),按能量落差与接缝语义选型
|
|
4
|
+
适用: 任何两镜衔接处(技法卡,分镜阶段排完镜头后逐个接缝选一式)
|
|
5
|
+
时长: n/a(技法卡;各式占用帧数见参数表,从相邻镜头预算里划)
|
|
6
|
+
能量: n/a(技法卡,不占能量位)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
库内各镜头卡只管自己的入场和收尾,镜与镜"怎么接"一直没有词汇——
|
|
11
|
+
接缝裸切会把逐镜头攒出的电影感一次漏光。公认优秀的发布片
|
|
12
|
+
(Linear Releases/Agent,2026-07-11 抽帧逆向)全程没有一次裸切:
|
|
13
|
+
换景要么靠深度旅行、要么靠焦点接力、要么靠黑场字卡蓄力。本卡收三式:
|
|
14
|
+
白闪盖切、甩镜借糊帧换景、穿窗点进详情世界。
|
|
15
|
+
|
|
16
|
+
## 三式选型
|
|
17
|
+
|
|
18
|
+
| 式 | 做法 | 适用接缝 |
|
|
19
|
+
|----|------|----------|
|
|
20
|
+
| A 推进流白 flash-cut | 前镜相机推进,切点跨骑一层白闪盖住换页 | 交互穿透、能量相近的页面→页面(库内已有,收编)|
|
|
21
|
+
| B whip-pan 甩镜(急刹款) | 机位一拍横甩到下一场景,中段运动模糊糊到不可辨,借糊帧换景;落点前急刹、长尾滑入 | 快节奏功能段连打(高能量→高能量的轻快款);落点是"要读内容"的镜头 |
|
|
22
|
+
| C mask-wipe 穿窗(纵深款) | 页面内真实元素(卡片)放大成全屏窗口,新场景从窗内长出接管 | 语义化接缝:功能总览→该功能详情("点开这张卡进入它的世界")|
|
|
23
|
+
|
|
24
|
+
## 参数表
|
|
25
|
+
| 参数 | 典型值 | 调节手感 |
|
|
26
|
+
|------|--------|----------|
|
|
27
|
+
| A flash-cut | `assets/lib/FlashCut.tsx`,from = 切点 − 5,两侧各 5f | 用法详见 type-and-filter 卡;白闪只盖硬切,不当装饰光效(Q4)|
|
|
28
|
+
| B 甩镜急刹款 | 起点 hold ≥20f → 前 70% 路程用 30% 时间(糊段,峰值 ~300px/f)→ 后 30% 路程 ease-out 长尾 ~48f 滑入落位;用一条连续速度曲线(3f 起步 + 指数衰减)积分出位移,别分段各套 ease-out(分段处速度会二次起跳);按瞬时速度做方向性运动模糊(`_fixtures/Polish` 的 `SpeedBlur`,sd ≈ 0.085×速度、封顶 64px),只在甩动段生效;参考实现把同一条位移曲线接到一只机械滚轮索引计数器(Nº 02→09)和随长廊走的刻度尺 + 固定播放头上,落定后目标卡抬到 1.2× 可读 | 适合落点是"要读内容"的镜头——长尾给观众视线一个追上的坡;长尾 >60f 偷走后镜入场,宁短勿长;跨度按"峰值速度 ≥300px/f"配,不足则糊不透露出换景穿帮;两景同一水平线上拼接(页面空间同 y);CameraMotionBlur 子帧叠加在 8bit 下会整片偏黄、拖影呈一格格回波,亮场 UI 甩镜别用 |
|
|
29
|
+
| C 穿窗纵深款 portal-wipe | 目标卡先悬浮抬起作预备(−10px、1.03×,邻卡退暗)→ 窗放大 40f 用 bezier(0.7,0,0.3,1) 先慢后快,窗内新景从 ~0.42 缩放反向补偿长到 1(与窗几何同一个 t),卡面在前 ~28% 行程内渐隐(opacity 1−t·3.6,再慢会被拉成满屏巨字残影);窗内**只 2 层**视差(远景面板系数 0.08 + 近景 2 卡 0.3,不加 blur),穿窗完成后 8f 缓停 → 静止 ≥30f 读清新景;窗内世界最好是被点开卡的封面"长大"(参考实现:video-shotcraft Workspace 里「Premiere Forecast」项目卡的钴蓝波形封面 → 同款波形地貌的观看量预测世界 + 玻璃面板 + 2 枚指标浮卡,曲线随 t 画完)| 窗几何与窗内景必须同步驱动,异步读作穿帮;层数/散开是可读性命门——3 层+0.85 散开+blur 版被裁,收敛后过;穿完必须真停,视差飘着不停偷走后镜阅读 |
|
|
30
|
+
|
|
31
|
+
## 已知坑
|
|
32
|
+
- 分镜表阶段就逐接缝标注转场式(写进"关键动效"列),逐镜头阶段才补
|
|
33
|
+
等于全线挪帧——转场占用的帧从相邻镜头预算划走,规矩同 hold 预算(R3)
|
|
34
|
+
- 转场不叠加:一个接缝只用一式;甩镜糊段、穿窗途中再加 flash 白闪读作穿帮
|
|
35
|
+
- B/C 式参数经占位素材调校+真实素材转正,非用户
|
|
36
|
+
实战判例——单例判例,与判例冲突时判例优先
|
|
37
|
+
- C 式窗内新景语义应是被点开元素的"详情世界"(实战接真实详情页
|
|
38
|
+
截图)——窗里塞无关场景语义断裂,沦为花哨擦除;被放大元素用高清纹理(Q2,全程被特写)
|
|
39
|
+
- C 纵深款参数系手搓占位 UI(video-shotcraft Workspace / 观看量预测世界)调校起点、未经真实截图验证;
|
|
40
|
+
参考实现 demos/transition/shot-transitions/PortalWipeV2.tsx
|
|
41
|
+
|
|
42
|
+
## 参考实现
|
|
43
|
+
A 式:template/src/aifl/Main.tsx flash-cut 层(组件 `assets/lib/FlashCut.tsx`);
|
|
44
|
+
B 式(whip 甩镜急刹款):demos/transition/shot-transitions/WhipBrakeReal.tsx;
|
|
45
|
+
C 式(mask-wipe 穿窗纵深款):demos/transition/shot-transitions/PortalWipeV2.tsx。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: tear-streak-transitions
|
|
3
|
+
一句话: 撕裂转场——glitch-displace 噪声撕裂(16 横条错位抖动中硬切),数字故障语义的条带级撕裂
|
|
4
|
+
适用: 高能换页:数字故障/断裂语义;页面完整性不破、能量拉满的条带级撕裂
|
|
5
|
+
时长: 前态 ≥40f + 撕裂 16–24f + 收尾 ≥40f,约 4.5s(135f)
|
|
6
|
+
能量: 高
|
|
7
|
+
标签: effects
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 意图
|
|
11
|
+
本卡管**条带级撕裂**——页面被切成横条高速运动,但每条内容完整。
|
|
12
|
+
这是反复裁决划出的品味分界:碎块系转场三连否(doom-melt 竖条坠落、
|
|
13
|
+
pixel-dissolve 方块翻黑、facade-block 砖块翻飞全部淘汰),条带系过关。碎块读作"页面被破坏",条带读作"页面在高速
|
|
14
|
+
运动"——完整性不破、能量却拉满。横向撕:条带左右错位抖动 +
|
|
15
|
+
双色剪影重影(RGB split 的克制版:同一页内容的两份单色剪影,只用画面强调色两色,±12px 错开)。
|
|
16
|
+
适用系统故障/瞬间跳变语义——demo 用它做"发布控制台从 Rolling out 99% 跳到 is live"的状态跳变。
|
|
17
|
+
|
|
18
|
+
## 单式选型
|
|
19
|
+
| 式 | 做法 | 适用 |
|
|
20
|
+
|----|------|------|
|
|
21
|
+
| A glitch-displace | 16 条不等高水平条带(外层裁剪+内层整页 translateY 对位),每条 translateX 由库标 h(i*31+f*7) 驱动 ±70px 抖动,叠双色剪影重影 + 扫描亮线;54f 满幅抖动中硬切 B 页,再抖 6f 至 60f 归位 | 故障/断裂语义;状态跳变(上线、切换版本);高潮前的暴力换页 |
|
|
22
|
+
|
|
23
|
+
## 参数表
|
|
24
|
+
| 参数 | 典型值 | 调节手感 |
|
|
25
|
+
|------|--------|----------|
|
|
26
|
+
| 抖幅 | ±70px,按条分能量(约两成不动 / 三成满幅 / 其余轻颤),位移过指数 0.6 推向两端;底层垫完整页防露底缝 | 峰值帧条带错位必须肉眼明显——±12px 级读不出撕裂;全员同幅乱抖像水波 |
|
|
27
|
+
| 包络 | 44–47f out-cubic 冲起 → 平台 → 54–60f 线性消散 | 冲击判例:扩散 out-cubic、消散线性 |
|
|
28
|
+
| 重影 | ±12px 双色剪影(页面内容的强调色单色副本,screen 叠加,随条一起错位,只给错位大的条) | 无重影只是抖不是 glitch;剪影只画内容不画底,暗场上才不发灰 |
|
|
29
|
+
| 切边 / 扫描线 | 错位 >25px 的条上沿 1.5px 亮线、下沿 3px 暗渐变;每帧 2 根随机高度全宽扫描亮线 | 每条都画亮边会读成横格纸——只给重撕条 |
|
|
30
|
+
| 切点掩护 | 54f 曝光 1.28 / 55f 1.12 + 整屏 1.6% 冲击放大 6f 收回;30–31f 两条细条 ±12px 前兆 | 前兆是预备:观众先"感到不对"再撕 |
|
|
31
|
+
| 摘罩 | 60f 起条带、重影、扫描线、filter 全部条件卸载直出裸 B | opacity 0 不算摘;滤镜残留毁真静止 |
|
|
32
|
+
| 收尾 | 75f(余波 40f:区域格青绿波、计数、指标升起 + hold 35f) | R1;余波只在页面内容层,不再有撕裂元素 |
|
|
33
|
+
|
|
34
|
+
## 已知坑
|
|
35
|
+
- demo 在程序绘制的暗场控制台页(midnight look)上调校——参数是调校起点非实战定稿,
|
|
36
|
+
首次实战须以真实素材回验;亮底页面上剪影重影改 multiply 才看得见
|
|
37
|
+
- **条带不碎块**——后续同类手法一律做条带:横条各自完整,
|
|
38
|
+
绝不裂成方块/砖块/独立坠落物(三连否判例,见意图)
|
|
39
|
+
- 高能转场,与 whip-pan/crash 系同片注意能量预算——
|
|
40
|
+
高能转场挤在一起互相稀释
|
|
41
|
+
- 硬切藏在满幅抖动中(54f 切、60f 归位)——切点暴露在静止帧上
|
|
42
|
+
就失去了 glitch 的掩护
|
|
43
|
+
- 条带页必须自带不透明底(渐变 + 点阵),暗角与颗粒只在最上层画一次——
|
|
44
|
+
透明条带会和底层整页叠影,暗角跟着条带错位会露馅
|
|
45
|
+
|
|
46
|
+
## 参考实现
|
|
47
|
+
demos/transition/tear-streak-transitions/
|
|
48
|
+
(GlitchDisplace.tsx)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: transition-hidden-cut
|
|
3
|
+
一句话: 藏切点转场三式——前景遮挡隐形切、对撞开屏、暖色漏光,硬切藏进遮挡/撞击/光峰的 1-3 帧里,观众看不见剪刀
|
|
4
|
+
适用: 两镜衔接处需要"无痕换景"或"仪式感开屏"时(技法卡,与 shot-transitions 三式同层选型)
|
|
5
|
+
时长: n/a(技法卡;各式占用帧数见参数表,从相邻镜头预算里划)
|
|
6
|
+
能量: n/a(技法卡,不占能量位)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
与 shot-transitions A 式 flash-cut 同族:flash-cut 用一层白闪盖住硬切,
|
|
11
|
+
这三式换了三种"障眼物"——扫过的前景卡片(A)、对撞的撞击帧(B)、
|
|
12
|
+
爬到顶峰的漏光(C)。共同原理是魔术误导:观众的眼睛被大动作/强光
|
|
13
|
+
吸走的那 1-3 帧里完成硬切,回过神来景已经换了,全程"看不见剪刀"。
|
|
14
|
+
flash-cut 是最素的一款;要方向感选 A,要仪式感选 B,要温度选 C。
|
|
15
|
+
|
|
16
|
+
## 三式选型
|
|
17
|
+
| 式 | 做法 | 适用接缝 |
|
|
18
|
+
|----|------|----------|
|
|
19
|
+
| A invisible-cut 前景遮挡隐形切 | 一块贴着镜头掠过的失焦前景物(超画幅、软边 = 失焦+运动模糊)横扫,盖满全屏的遮挡帧内背景 A→B 硬切,前景扫出观众以为还是同一镜 | 想让换景完全无痕的页面→页面;伪"一条 take"的主力款 |
|
|
20
|
+
| B versus-slam 对撞开屏 | 左右两半屏(两张对比海报)带斜切边从画外加速对冲撞合,撞击帧白闪+震屏+VS 盖章,切点就是撞击本身 | 对比/对阵语义的开屏或章节头(新旧方案、双产品、before/after)|
|
|
21
|
+
| C light-leak-burn 暖色漏光 | 三段色温的暖色漏光沿对角线斜扫,光峰帧吞掉旧画面七成以上时硬切新画面,光退散时新画面已就位 | 想要暖调/胶片味的章节过渡;比白闪柔、有方向、有温度 |
|
|
22
|
+
|
|
23
|
+
## 参数表
|
|
24
|
+
| 参数 | 典型值 | 调节手感 |
|
|
25
|
+
|------|--------|----------|
|
|
26
|
+
| A 遮挡物 | 纯渐变绘制的深棕失焦前景:实心核 2600px + 两侧 340px 软边(总宽 3280),前缘一道赤陶轮廓光;右→左 14f(32–46f),bezier(0.3,0,0.7,1);切点 = 实心核盖满 0..1920 的那一帧(demo 里 f39,前后各一帧由软边盖住) | 软边渐变本身就是失焦+运动模糊,不必 CameraMotionBlur(12 倍采样太贵);遮挡物上的明暗叠层要用 mask 限在实心区,否则在透明软边上画出硬边 |
|
|
27
|
+
| A 近物遮光 | 遮挡物前方 640px 软投影(0→0.38→0.5)随之扫过页面 | 卖"贴着镜头掠过"的距离感 |
|
|
28
|
+
| A 一条 take | 全程内容慢横移 +40→−40px(smooth)贯穿切点;切前 A 被拖左 28px(ease-in),切后 B 从右 28px 14f 回稳(ease-out);B 页排版整体右移 40px 抵消横移终点 | 卖"同一镜被风带了一下"的错觉,是无痕感的一半功劳;横移会吃安全边,终点要预留 |
|
|
29
|
+
| A 因果 | 24f 按下 Render(0.96 缩放 + 压暗 + Rendering… 转圈)→ 扫过 → B「That's a wrap.」渲染完成票根 + 印章弹簧落座、对勾描画 | 遮挡前给一个动作,切后给结果,观众读成"一晃就办好了" |
|
|
30
|
+
| B 斜缝几何 | clip-path polygon 斜边约 78°(缝顶 x=1075→缝底 x=845);两半屏从 ±1240px 以 ease-in(cubic) 10f 对冲到位(18–28f),按速度横向运动模糊(封顶 36px) | ease-in 加速才有"砸"感;垂直缝读作 PPT 分屏 |
|
|
31
|
+
| B 撞击三件套 | 撞击帧(28f)同发:纸白闪 0.85→0 共 3f + 整机 shake 16px·e^(−t/1.7) 约 5f 收干 + VS 圆章弹簧压出(damping 12 / stiffness 260,scale 1.9→1,一次可见过冲);另加冲击环 16f + 12 根放射速度线 7f | 三件必须同帧起跑,错开一帧就散;震屏幅度须过肉眼阈值(可感性判例)|
|
|
32
|
+
| B 版式 | 两方做成色块海报:墨黑「The old way」vs 朱红「With video-shotcraft」,各一个 340px 大数字(14 days / 1 prompt)+ 44px 说明 + 32px 清单;撞后数字 1.05→1 回弹(晚 2f),说明左先右后错峰;54f 起底部结论条(镜刻标志 + 品牌口号)压在斜缝上 | 数字本身就是对比结论;建立段放一句设问,墨线预示斜缝(字带处留空不划字) |
|
|
33
|
+
| C 光层 | 3 团沿对角线拉长(1.35:1、转 −34°)的径向渐变椭圆(#c2311a / #ff5a1f / #ffb347,长径 3000/2300/1700px,screen,不用 blur 滤镜)+ 右上缘片门溢光线性光带,沿右上→左下扫 71f | 光团偏移沿扫掠方向拖尾排布,避免完美同心的"手电筒感";渐变本身就软,省掉 90px 大模糊 |
|
|
34
|
+
| C 光强包络 | ease-in(t²)爬升 28f(24–52,蓄力)→ 峰值帧藏切 → ease-out 收敛 43f(余温);峰值叠 40% 全屏暖罩 + 近白热核(opacity=intensity³)+ 切点 2f 轻抬 | 爬升慢收敛快会读作故障闪光;热核只在临近峰值烧起来 |
|
|
35
|
+
| C 冲淡 | 峰值时页面 filter:brightness 抬 85%、contrast 降 50%、saturate 降 25%;旧画面标题随光强淡到 ~25% | 这是"烧穿"感的来源——光只叠不冲淡,读作贴了张贴纸;标题不跟着烧淡,切点会看到字突然换掉 |
|
|
36
|
+
|
|
37
|
+
## 已知坑
|
|
38
|
+
- demo 在程序绘制的画面上调校(A 暖沙 video-shotcraft 渲染页 / B 纸面对比海报 / C 暗场 video-shotcraft 取景器夜→黄昏,
|
|
39
|
+
品牌短句「Frame motion. / Craft the shot.」被光峰切成两半)——
|
|
40
|
+
参数是调校起点非实战定稿,首次实战须以真实素材回验
|
|
41
|
+
- C 式是 Q4 光效判例解封后首个入库光效手法——严守 Q4 三约束:
|
|
42
|
+
单点使用(一支片一处,不群发)、正常速度回放自检好看才算过、
|
|
43
|
+
光效服务切点而非装饰;与 flash-cut 同片混用算两次光效藏切
|
|
44
|
+
- A 式遮挡物必须真的全遮:demo 里实心核 2600px 才留出约 1 帧的全遮窗口
|
|
45
|
+
(中段速度 ~530px/帧)——改扫掠时长或宽度后先逐帧算/看切点帧有没有露出背景边缘,
|
|
46
|
+
露一条缝整个魔术就穿帮
|
|
47
|
+
- B 式 VS 字块语义仅适配"对比/对阵"内容——没有两方对峙关系时
|
|
48
|
+
别当通用转场用;去掉 VS 只留对撞则退化为一款斜缝 wipe,语义要求同降
|
|
49
|
+
- 转场不叠加(规矩同 shot-transitions):一个接缝只用一式;
|
|
50
|
+
这三式与 shot-transitions 三式同层选型,同片同类接缝别既用 flash-cut 又用 C 式
|
|
51
|
+
- 分镜表阶段就逐接缝标注(写进"关键动效"列),帧预算从相邻镜头划(R3)
|
|
52
|
+
|
|
53
|
+
## 参考实现
|
|
54
|
+
demos/transition/transition-hidden-cut/
|
|
55
|
+
(InvisibleCut.tsx / LightLeakBurn.tsx / VersusSlam.tsx)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: transition-travel
|
|
3
|
+
一句话: 穿越式转场——字腔穿越:巨型章节标题的字形就是一扇窗,镜头钻进字形笔画完成换景
|
|
4
|
+
适用: 前后两镜存在"元素/容器"级空间关系的接缝(技法卡,与 shot-transitions 三式互补选用)
|
|
5
|
+
时长: n/a(技法卡;demo 150f,主推动作段 52f,前后 hold 另计,帧数从相邻镜头预算里划)
|
|
6
|
+
能量: n/a(技法卡,不占能量位)
|
|
7
|
+
标签: camera
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 意图
|
|
11
|
+
shot-transitions 三式是"交棒"型——前镜收尾、后镜入场,接缝靠白闪/糊帧/
|
|
12
|
+
窗口盖住换页瞬间。本卡是"穿越"型——后景在前景画面里
|
|
13
|
+
以真实元素存在(字形洞),镜头一条连续空间运动钻进去,
|
|
14
|
+
观众从头到尾跟着同一个物体,没有交棒瞬间。选型口径:后景能在前景里"预先
|
|
15
|
+
在场"→穿越;两景只是先后关系、无空间嵌套→交棒。字腔穿越的语义是
|
|
16
|
+
"标题即是门"(章节字卡与转场二合一)。
|
|
17
|
+
|
|
18
|
+
## 选型表
|
|
19
|
+
|
|
20
|
+
| 式 | 做法 | 适用接缝 |
|
|
21
|
+
|----|------|----------|
|
|
22
|
+
| A 字腔穿越 letterform-zoom | 巨型标题字形(SVG mask 挖洞)透出新页,指数推进穿洞,洞撑满瞬间接管、残余笔画甩出画外 | 章节标题→正文;替代 paper-title-card 章节字卡的高能量款 |
|
|
23
|
+
|
|
24
|
+
## 参数表
|
|
25
|
+
| 参数 | 典型值 | 调节手感 |
|
|
26
|
+
|------|--------|----------|
|
|
27
|
+
| A 穿腔主推 | 盖板 SVG mask(白底+黑字 900 字重)挖洞,transform-origin 对准字形笔画(洞)中心——锚在字腔里推到底撑满的是盖板不是洞(demo:「EDITS」560px 的 I 竖笔中心 973,515,竖笔 107px×30 > 画宽;选词时让 I 竖笔落在画面中线附近,洞才从正中撑开);scale=30^u,u 52f bezier(0.6,0,0.85,0.5) 慢起陡收,推前 26–34f 后吸 2% 预备 | ZOOM_MAX 按"洞撑满画面"配,笔画越细倍数越大;慢起段留给观众看清"洞里有东西" |
|
|
28
|
+
| A 洞里有东西 | 盖板暗、洞里亮:暖黑盖板 vs 熔金渐变 video-shotcraft 发布页,洞里的卡片也做成亮面(奶白磨砂);字缘一圈模糊橙色描边只画在盖板区域(光从洞里漏出来)+ 1.5px 暖白切口边 | 洞里有深色块时那几个字母读作"实心字",穿洞的悬念就没了 |
|
|
29
|
+
| A 洞里只给光不给字 | 字卡 hold 期页面的文字/卡片层完全隐去,洞里只透出暖色渐变 + 柔光形(卡片位一团奶白光、标题位一抹暗赤);主推中段 64–90f 内容层由 18px 失焦淡入合焦(EASE.out),接管时已清晰 | 洞里能读到页面标题时,两层可读文字互相抢,标题字读作"杂乱"而不是一个干净的镂空 |
|
|
30
|
+
| A 撤场与拖影 | scale∈[14,26] 盖板 opacity 1→0;u>0.35 起期望模糊 0→20px(除以 scale 写进 blur)+ 四层更早 0.8–3.2 帧的半透明盖板残影叠成径向变焦拖尾;接管瞬间页面 brightness +12% 一闪回落 | blur 不除 scale 会被放大成糊墙;只用两层残影会读成硬边半透明色块,四层才连成拖尾 |
|
|
31
|
+
| A 后景视差 | 页面只推 1→1.08(主推期 0.7·u,接管后 quint-out 补完,交接处速度连续)+ 0–100f 向左漂 28px;接管后渲染卡上的镜头计数 0→12、时长条错峰填满、DONE 标签弹出 | 后景不动则洞里是张死图;后景推太多会和盖板同速,纵深消失 |
|
|
32
|
+
|
|
33
|
+
## 已知坑
|
|
34
|
+
- 推进锚点要按渲染帧实测(demo 的竖笔坐标是从静帧量出来的),换字体/换词/渲染器字距
|
|
35
|
+
不同都会漂——渲后看推进方向,洞不居中就微调 origin,别信字宽 em 值手推的数;
|
|
36
|
+
锚点笔画离画面中线太远(如「FILM」的 I 在 x≈726)时,洞偏在一侧撑开、另一侧盖板久久不退,换词让竖笔居中
|
|
37
|
+
- 后景页面推到 1.08 时四周会被裁掉 4%:版面安全边距要按"推完后"留(demo 左右 200/230、顶 122)
|
|
38
|
+
- 字腔穿越与交棒三式同一接缝不叠加,一缝一式;穿越式已自带高能量,
|
|
39
|
+
再包白闪/震屏读作穿帮(规矩同 shot-transitions)
|
|
40
|
+
|
|
41
|
+
## 参考实现
|
|
42
|
+
demos/transition/transition-travel/
|
|
43
|
+
(LetterformZoom.tsx)
|
package/lib/motion/shotcraft/upstream/references/shots/transition/white-flash-logo-simplify-cut.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: white-flash-logo-simplify-cut
|
|
3
|
+
一句话: 液态金属质感的彩色词标静置流光,蓄力后从字心炸出一记白闪过曝,曝光回落时同一位置已是扁平版字标——一次闪白完成质感降维
|
|
4
|
+
适用: 品牌段落收束(华丽演绎→干净定妆);情绪从炫技切换到正式宣告的转场拍
|
|
5
|
+
时长: 约 4s(120f@30fps;演出 0–34f · 蓄力 34–46f · 冲白 44–54f · 曝光回落 54–76f · 锁定 72–96f · hold 至 120f)
|
|
6
|
+
能量: 中高(一次脉冲式重音,前后都是静场)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
先给足华丽(虹彩液态金属在字面上流动、一次斜向高光扫过),再用一次白闪把它"净化"成扁平单色字标——观众读到的是"演出结束,这就是它的正式形象"。降维是修辞:从感性质感切到理性识别。两版同字号同位置,读作"同一个字标被净化了",不是换了张图。
|
|
11
|
+
|
|
12
|
+
## 动效核心
|
|
13
|
+
- 液态层(demo 词标是 video-shotcraft 字标「video-shotcraft」,字标字体 190px 700 字重、全小写,中心 y=500):一个 span 叠四层背景并全部 `background-clip:text`——
|
|
14
|
+
①虹彩底色 `background-size:300%` 每帧 1.1% 缓流 ②纵向体积(顶亮底暗)③字腰镀铬反光带 ④斜向高光
|
|
15
|
+
6–34f 扫过一次(Q4:只给主角一次、裁进字形);字下同色 bloom(blur 38px)+ 地面翻转倒影(0.22、渐隐 mask);整幅 0–44f 缓推 1→1.035
|
|
16
|
+
- 蓄力 34–46f(EASE.exit 越来越快):字标 brightness 1→1.7、bloom 加强;一条横向变形眩光从字心拉开(宽软光晕 + 4px 细亮核,核两端渐隐)
|
|
17
|
+
- 冲白 44–50f:径向白团从字心撑满全屏(半径 80→1580px,二次 ease-in,后 3 帧肉眼可见地吞掉字标);50–54f 纯白 hold(呼吸位),并在 50f 全白时换场
|
|
18
|
+
- 曝光回落 54–76f:白层 1→0(quint-out,先快后慢,像眼睛适应强光)——底下扁平字标早已在位,只做 1.03→1 对焦收束
|
|
19
|
+
- 锁定:琥珀 96px 短线 72–86f 从中间画出、字标上方镜刻标志 74–96f 描出(取景框先揭开、琥珀斜切后划入)、品牌短句「Frame motion. Craft the shot.」逐词升起(78f 起);96–120f 极缓前推 1→1.01
|
|
20
|
+
|
|
21
|
+
## 参数表
|
|
22
|
+
| 参数 | 典型值 | 调节手感 |
|
|
23
|
+
|------|--------|----------|
|
|
24
|
+
| 冲白窗口 | 44–50f 径向撑满(t² ease-in)+ 50–54f 纯白 | 冲白必须"快进";整屏均匀淡入读作剪辑软切,从字心炸出才读作"字在发光过曝" |
|
|
25
|
+
| 蓄力 | 34–46f,brightness ×1.7 + 横向眩光 | 砍掉蓄力则白闪没有预兆、像丢帧;眩光核加 box-shadow 会带一圈暗边(实测) |
|
|
26
|
+
| 曝光回落 | 54–76f,白层 quint-out 退去 | 用扁平字标淡入代替回落,会出现"白底上浮出一个字"的二次动作;回落让字标"一直在那儿" |
|
|
27
|
+
| 扁平入场 | 1.03→1(snappy,52–78f) | >1.06 读作字标弹出;同时做淡入就和回落叠成两次揭示 |
|
|
28
|
+
| 字标尺寸 | 液态 / 扁平同为 190px、同中心(15 字符字标按画宽压的字号;4 字母短词可放到 300px) | 两版位置或字号不同,读作换皮不换人 |
|
|
29
|
+
| 品牌常量 | `PAPER` / `FLAT_INK` / `FLAT_ACCENT`(块顶定义;demo 已收编为 video-shotcraft 的剪辑纸 / 片场墨 / 镜琥珀) | 换成项目品牌色即完成收编;液态层虹彩一般保留(它是"演出"不是品牌);标志只在扁平段出现、不上液态质感(品牌规范禁渐变/发光) |
|
|
30
|
+
|
|
31
|
+
## 已知坑
|
|
32
|
+
- 换场发生在 50f 全白帧(暗场与纸面二选一渲染),白层不能在 50f 前退——否则两场同时可见
|
|
33
|
+
- `WORD` = `BRAND.name`(15 字符),换词需同步调字号 `FS`;液态层 / bloom / 倒影 / 扁平层四处共用 `wordStyle` 与 `wordText`
|
|
34
|
+
- 字标带 +0.03em 字距时「ft」两道横笔恰好相接,大字号下接缝露出一条抗锯齿亮线——demo 让 f 后字距归零、两笔重叠
|
|
35
|
+
- 冲白配 SFX 是必选项(impact/whoosh-bright 类),无声的白闪读作素材丢帧
|
|
36
|
+
- 高光必须裁进字形(background-clip:text)——做成盖在字上的径向光斑会溢出字形、在黑底上糊成白雾(Q4 光溢出)
|
|
37
|
+
- 后半场底色是亮纸面——若下一镜是暗场需另接转场,或复用本卡结尾直切
|
|
38
|
+
|
|
39
|
+
## 参考实现
|
|
40
|
+
demos/transition/white-flash-logo-simplify-cut/
|
|
41
|
+
(WhiteFlashLogoSimplifyCut.tsx)
|