hyper-animator-codex 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -7
- package/bin/hyper-animator-codex.mjs +31 -9
- package/bin/postinstall.mjs +19 -0
- package/lib/install-options.mjs +3 -0
- package/lib/install-skill.mjs +84 -2
- package/lib/minimax-config.mjs +3 -3
- package/package.json +3 -2
- package/skills/hyper-animator-codex/SKILL.md +58 -20
- package/skills/hyper-animator-codex/agents/openai.yaml +2 -2
- package/skills/hyper-animator-codex/contracts/shot-plan.schema.json +214 -0
- package/skills/hyper-animator-codex/contracts/workflow-policy.json +85 -0
- package/skills/hyper-animator-codex/references/HyperFrames-AI-Generation-Patterns-codex.md +788 -0
- package/skills/hyper-animator-codex/references/beat-sync-workflow.md +7 -0
- package/skills/hyper-animator-codex/references/examples/shot-plan-dual-catalog.json +69 -0
- package/skills/hyper-animator-codex/references/hyperframes-agent-pseudocode.ts +1 -1
- package/skills/hyper-animator-codex/references/hyperframes-catalog-map.json +97 -230
- package/skills/hyper-animator-codex/references/hyperframes-intent-workflow.md +23 -7
- package/skills/hyper-animator-codex/references/minimax-music-workflow.md +24 -4
- package/skills/hyper-animator-codex/references/narration-audio-workflow.md +31 -1
- package/skills/hyper-animator-codex/references/shotcraft/LICENSE +202 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/ai-stream-response/README.md +46 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/autolayout-gap-dial/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/beat-cut-moves/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/beat-step-list-theme-cycle/README.md +59 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/before-after-slider-scrub/README.md +47 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/bottom-push-stack-wipe/README.md +58 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/brand-frame-snap/README.md +51 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/brand-ink-open/README.md +35 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/bubble-swarm-takeover/README.md +62 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/canvas-materialize-moves/README.md +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/card-flip-reveal/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/card-flock-tumble/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/cel-flash-stomp/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/chart-live-moves/README.md +51 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/circle-match-iris/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/cloner-depth-echo/README.md +38 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/collab-cursor-moves/README.md +48 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/color-block-step-wipe/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/command-palette-summon/README.md +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/crane-rise-reveal/README.md +47 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/crash-zoom-punch/README.md +38 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/dataviz-landscape-open/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/deck-deal-flyin/README.md +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/depth-layer-moves/README.md +40 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/document-typewriter-reveal/README.md +40 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/draw-svg-trace/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/edit-hook-moves/README.md +38 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/element-body-moves/README.md +49 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/fui-hud-moves/README.md +44 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/gauge-readout-moves/README.md +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/glow-flyline-moves/README.md +51 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/gradient-word-sweep/README.md +49 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/graze-face-tour/README.md +56 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/hashtag-to-pill-materialize/README.md +57 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/hires-rasterize-3d-text/README.md +34 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/icon-field-colorize/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/icon-performance-moves/README.md +46 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/impact-feedback/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/input-trigger-moves/README.md +49 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/integration-hub-map/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/letterspace-materialize/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/light-play-moves/README.md +49 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/line-boil/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/line-carry-transition/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/list-stack-press/README.md +43 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/magician-card-flourish/README.md +63 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/marker-underline-title/README.md +48 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/montage-rhythm-moves/README.md +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/morph-from-primitive/README.md +51 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/neon-frame-forerun/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/neon-frame-orbit-drop/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/neon-triple-marquee/README.md +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/odometer-digit-roll/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/outro-group-photo-launch/README.md +39 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/overhead-camera-moves/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/page-turn-transitions/README.md +48 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/page-waterfall-wall/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/panel-grid-moves/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/paper-craft-moves/README.md +46 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/paper-plane-messenger/README.md +62 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/paper-title-card/README.md +36 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/particle-celebrate-hits/README.md +42 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/particle-sand-fill/README.md +39 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/pill-slot-cycle/README.md +57 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/print-texture-transitions/README.md +40 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/rhythm-interrupt-moves/README.md +44 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/riso-print-hits/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/row-embed/README.md +36 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/runway-ground-skim/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/sakuga-timing-shift/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/scene-locked-title/README.md +43 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/scroll-brake-moves/README.md +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/segmented-thumb-hero/README.md +57 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/shot-transitions/README.md +60 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/skeleton-reveal/README.md +54 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/slam-entrance-moves/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/smear-multiples/README.md +49 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/space-camera-moves/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/spectrum-morph-ui/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/speed-ramp-freeze/README.md +42 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/split-flap-title/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/spotlight-hero-card/README.md +39 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/spotlight-sweep-moves/README.md +51 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/steep-tilt-glide/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/stroke-segment-build/README.md +43 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/tear-streak-transitions/README.md +43 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/tension-camera-moves/README.md +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/text-as-mask/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/text-column-converge/README.md +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/theme-switch-moves/README.md +44 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/timeline-travel/README.md +43 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/title-demote-to-label/README.md +58 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/trailer-grammar-moves/README.md +51 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/transition-hidden-cut/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/transition-travel/README.md +48 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/type-and-filter/README.md +37 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/type-assembly-moves/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/type-entrance-moves/README.md +46 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/type-rhythm-sync/README.md +47 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/typewriter-moves/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/ui-strip-away-outro/README.md +63 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/ui-to-brand-morph/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/voice-waveform-live/README.md +52 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/wall-reveal-moves/README.md +53 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/wipe-transitions/README.md +47 -0
- package/skills/hyper-animator-codex/references/shotcraft/cards/word-relay-filmstrip/README.md +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/catalog.json +3946 -0
- package/skills/hyper-animator-codex/references/shotcraft/references/aesthetic-rules.md +157 -0
- package/skills/hyper-animator-codex/references/shotcraft/references/final-review.md +107 -0
- package/skills/hyper-animator-codex/references/shotcraft/references/guided-free-creation.md +197 -0
- package/skills/hyper-animator-codex/references/shotcraft/references/music-beat-sync.md +125 -0
- package/skills/hyper-animator-codex/references/shotcraft/references/pipeline.md +357 -0
- package/skills/hyper-animator-codex/references/shotcraft/references/sound-design.md +126 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/Caption.tsx +50 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/DigitRoll.tsx +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/FlashCut.tsx +20 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/FlatPanel.tsx +65 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/PageCam.tsx +151 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/VerticalTicker.tsx +129 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/camera.tsx +75 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/motion.ts +40 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/rand.ts +11 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/assets/lib/helpers/shake.ts +10 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/_fixtures/Fixtures.tsx +83 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/ai-stream-response/StreamResponse.tsx +146 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/autolayout-gap-dial/AutolayoutGapDial.tsx +174 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-cut-moves/BeatCutAccelerando.tsx +77 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-cut-moves/PaparazziFlash.tsx +115 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/beat-step-list-theme-cycle/BeatStepListThemeCycle.tsx +98 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/before-after-slider-scrub/BeforeAfterSliderScrub.tsx +99 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/bottom-push-stack-wipe/BottomPushStackWipe.tsx +79 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/brand-frame-snap/BrandFrameSnap.tsx +110 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/bubble-swarm-takeover/BubbleSwarmTakeover.tsx +189 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/canvas-materialize-moves/DiagramCascadeBuild.tsx +172 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/canvas-materialize-moves/PanelToCanvasMaterialize.tsx +254 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/card-flip-reveal/CardFlipReveal.tsx +139 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/card-flock-tumble/CardFlockTumble.tsx +382 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/cel-flash-stomp/CelFlashStomp.tsx +111 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/AxisRescaleShockV2.tsx +282 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/OscilloscopeStreamV2.tsx +227 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/chart-live-moves/UnitDotSwarmRegroupV2.tsx +248 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/circle-match-iris/CircleMatchIris.tsx +124 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/cloner-depth-echo/ClonerDepthEcho.tsx +90 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/collab-cursor-moves/CursorCastEnsemble.tsx +136 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/collab-cursor-moves/CursorDialogueDuet.tsx +145 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/color-block-step-wipe/ColorBlockStepWipe.tsx +157 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/command-palette-summon/CommandPaletteSummon.tsx +173 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/crane-rise-reveal/CraneRiseReveal.tsx +91 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/crash-zoom-punch/CrashImpactReal.tsx +63 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/crash-zoom-punch/CrashZoomReal.tsx +60 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/dataviz-landscape-open/DatavizLandscapeOpen.tsx +401 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/depth-layer-moves/DollyZoomReal.tsx +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/depth-layer-moves/MultiplaneReal.tsx +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/draw-svg-trace/DrawSvgTrace.tsx +199 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/edit-hook-moves/LogoStingButton.tsx +106 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/element-body-moves/AxialStretch.tsx +112 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/element-body-moves/ContactShadowLift.tsx +117 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/fui-hud-moves/LineUnfoldPanel.tsx +125 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/fui-hud-moves/ReticleLockOn.tsx +139 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/gauge-readout-moves/NeedleSweepSelftest.tsx +146 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/gauge-readout-moves/TapeScrollFixedPointer.tsx +120 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/FlylineArc.tsx +158 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/GlowOrbAmbient.tsx +131 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/glow-flyline-moves/OrbFlylineRelay.tsx +268 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/gradient-word-sweep/GradientWordSweep.tsx +307 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/graze-face-tour/GrazeFaceTour.tsx +469 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/hashtag-to-pill-materialize/HashtagToPillMaterialize.tsx +166 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-field-colorize/IconFieldColorize.tsx +93 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-performance-moves/AttentionBounce.tsx +193 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/icon-performance-moves/PopBurstConfirm.tsx +162 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/impact-feedback/AnimeImpact.tsx +149 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/impact-feedback/HitCounter.tsx +147 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/input-trigger-moves/CursorPerformancePunchIn.tsx +154 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/input-trigger-moves/KeycapSmashCut.tsx +217 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/integration-hub-map/IntegrationHubMap.tsx +554 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/letterspace-materialize/LetterspaceMaterialize.tsx +85 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/HalationBloom.tsx +139 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/SheenSweepRetry.tsx +85 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/light-play-moves/SpotlightSweepReveal.tsx +102 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/line-boil/LineBoil.tsx +140 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/line-carry-transition/LineCarryTransition.tsx +151 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/magician-card-flourish/MagicianCardFlourish.tsx +294 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/marker-underline-title/MarkerUnderlineTitle.tsx +87 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/DominoCascade.tsx +125 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/DropBlackoutSlam.tsx +135 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/montage-rhythm-moves/WrightTripleCut.tsx +175 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/morph-from-primitive/MorphFromPrimitive.tsx +190 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-frame-forerun/NeonFrameForerun.tsx +279 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-frame-orbit-drop/NeonFrameForerunOrbit.tsx +273 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/neon-triple-marquee/NeonTripleMarquee.tsx +111 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/odometer-digit-roll/OdometerDigitRoll.tsx +178 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/overhead-camera-moves/OverheadTabletopDrop.tsx +129 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/overhead-camera-moves/TiltReveal.tsx +55 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-turn-transitions/BarnDoorSplit.tsx +138 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-turn-transitions/CubeRotate.tsx +114 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-waterfall-wall/PageWaterfallWall.tsx +76 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/page-waterfall-wall/VerticalTicker.tsx +129 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/ComicPanelSplit.tsx +171 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/FlipGridReflow.tsx +121 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/panel-grid-moves/GridFlashMosaic.tsx +182 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-craft-moves/MaskingTapeSlap.tsx +163 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-craft-moves/PopupBookRise.tsx +134 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/paper-plane-messenger/PaperPlaneMessenger.tsx +183 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-celebrate-hits/ConfettiCrossfire.tsx +115 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-celebrate-hits/CounterTickSparks.tsx +103 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/particle-sand-fill/ParticleSandFill.tsx +119 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/pill-slot-cycle/PillSlotCycle.tsx +220 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/print-texture-transitions/InkBleedReveal.tsx +81 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/rhythm-interrupt-moves/JumpCutPunchIn.tsx +72 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/rhythm-interrupt-moves/StrobeBlackFrames.tsx +99 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/riso-print-hits/RisoBeatPump.tsx +155 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/riso-print-hits/RisoMisregistrationHit.tsx +120 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/runway-ground-skim/RunwayGroundSkim.tsx +258 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/sakuga-timing-shift/SakugaTimingShift.tsx +178 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/scene-locked-title/SceneLockedTitle.tsx +98 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/scroll-brake-moves/BrakeReticleLock.tsx +171 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/scroll-brake-moves/ChangelogScrollBrake.tsx +117 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/segmented-thumb-hero/SegmentedThumbHero.tsx +213 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/MaskWipeReal.tsx +67 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/PortalWipeV2.tsx +128 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/WhipBrakeReal.tsx +60 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/shot-transitions/WhipPanReal.tsx +45 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/skeleton-reveal/SkeletonReveal.tsx +283 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/ImpactBurstKit.tsx +185 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/KanadaPerspectiveSnap.tsx +91 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/slam-entrance-moves/ScoreSlam.tsx +225 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/smear-multiples/SmearMultiples.tsx +88 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/DroneDiveLanding.tsx +91 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/ExplodedView.tsx +178 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/space-camera-moves/SnorricamLock.tsx +130 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/spectrum-morph-ui/SpectrumMorphUi.tsx +129 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/speed-ramp-freeze/FreezeAnnotateReal.tsx +70 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/speed-ramp-freeze/SpeedRampReal.tsx +58 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/split-flap-title/SplitFlapFlip.tsx +189 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/CornerSpotlightReveal.tsx +121 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/GlowWakeSleepPanel.tsx +183 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/spotlight-sweep-moves/SlideSpotlightPan.tsx +171 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/steep-tilt-glide/SteepTiltGlide.tsx +315 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/stroke-segment-build/StrokeSegmentBuild.tsx +126 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/tear-streak-transitions/GlitchDisplace.tsx +107 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/BulletTimeFreezeOrbit.tsx +219 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/DutchRollToLevel.tsx +110 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/PullBackIsolation.tsx +120 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/tension-camera-moves/SlowPushIn.tsx +96 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/text-as-mask/TextAsMask.tsx +94 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/text-column-converge/TextColumnConverge.tsx +122 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/theme-switch-moves/PaletteThemeRipple.tsx +207 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/theme-switch-moves/ThemeSweepToggle.tsx +123 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/timeline-travel/TimelineTravel.tsx +123 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/title-demote-to-label/TitleDemoteToLabel.tsx +174 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/CardFootageCadence.tsx +118 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/SmashCut.tsx +105 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/trailer-grammar-moves/TrailerBumper.tsx +103 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/InvisibleCut.tsx +93 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/LightLeakBurn.tsx +122 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-hidden-cut/VersusSlam.tsx +104 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-travel/LetterformZoom.tsx +141 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/transition-travel/SharedElementMorph.tsx +101 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/LetterformDriftAssembly.tsx +107 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/SplitTextStagger.tsx +101 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/TextOnPath.tsx +92 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-assembly-moves/TrackingExpandReveal.tsx +109 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-entrance-moves/LetterDropPhysics.tsx +100 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-entrance-moves/ScrambleDecode.tsx +90 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-rhythm-sync/FontWeightPump.tsx +124 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/type-rhythm-sync/KaraokeFillSync.tsx +93 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/typewriter-moves/TerminalTypewriter.tsx +122 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/typewriter-moves/TypewriterErrorRetype.tsx +109 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-strip-away-outro/UiStripAwayOutro.tsx +218 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-to-brand-morph/IconFlipBloomLogo.tsx +199 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/ui-to-brand-morph/InputMorphsIntoLogo.tsx +215 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/voice-waveform-live/VoiceWaveformLive.tsx +171 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/wall-reveal-moves/BentoLightUp.tsx +135 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/wipe-transitions/BlindsSlice.tsx +107 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/wipe-transitions/ClockWipe.tsx +83 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/demos/word-relay-filmstrip/WordRelayFilmstrip.tsx +300 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/Root.tsx +15 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/Caption.tsx +49 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/DigitRoll.tsx +44 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/FlashCut.tsx +19 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/Main.tsx +163 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/PaperTitleCard.tsx +89 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/PageCam.tsx +145 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneDetail.tsx +146 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneFlyIn.tsx +447 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneOpen.tsx +532 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneOutroLive.tsx +394 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/ScenePapers.tsx +185 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/aifl/live/SceneWbr.tsx +299 -0
- package/skills/hyper-animator-codex/references/shotcraft/source/template/src/index.ts +4 -0
- package/skills/hyper-animator-codex/references/shotcraft/source-notes.md +10 -0
- package/skills/hyper-animator-codex/scripts/generate_minimax_music.mjs +27 -10
- package/skills/hyper-animator-codex/scripts/generate_minimax_tts.mjs +142 -13
- package/skills/hyper-animator-codex/scripts/generate_subtitles.mjs +42 -3
- package/skills/hyper-animator-codex/scripts/minimax_runtime_config.mjs +3 -3
- package/skills/hyper-animator-codex/scripts/query_shotcraft.mjs +140 -0
- package/skills/hyper-animator-codex/scripts/validate_hyperframes_html.py +22 -0
- package/skills/hyper-animator-codex/scripts/validate_provider_policy.mjs +108 -0
- package/skills/hyper-animator-codex/scripts/validate_shot_plan.mjs +193 -0
- package/skills/hyper-animator-codex/vendor/music-beat-detector/beat_detector/analyzer.py +3 -1
- package/skills/hyper-animator-codex/vendor/music-beat-detector/beat_detector/beat.py +37 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: riso-print-hits
|
|
3
|
+
一句话: 套印错位两式——riso-misregistration-hit 单发冲击帧(撞停裂双色版抖两下套准)与 riso-beat-pump 节拍泵(逐拍跳大+错版逐次加码)
|
|
4
|
+
适用: 标题/卡片的命中强调,纸墨审美版的"故障闪";A 单发高潮、B 节奏段连打
|
|
5
|
+
时长: A 4s(单发);B 4.7s(四拍)
|
|
6
|
+
能量: 高
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
RGB 色散故障闪(impact-feedback C 式的一部分)是荧光屏语言,与纸墨
|
|
11
|
+
调性相克。这两式给出印刷版平替:元素裂成浅灰/深墨两份单色印版
|
|
12
|
+
(multiply 油墨感而非 screen 荧光感),像 risograph 没对准版,抖几下
|
|
13
|
+
"啪"地套准——同样的冲击力,介质想象完全换成纸上油墨。A 是单发:
|
|
14
|
+
撞停瞬间裂版、震荡衰减、硬切套准,给一次命中盖章;B 是它的节奏化:
|
|
15
|
+
每个鼓点整画面跳大 8% + 标题裂版,错位逐拍加码,越打越狠——
|
|
16
|
+
卡点段的视觉低音鼓。同技术根(衰减震荡的双版错位),单发/连打二选一。
|
|
17
|
+
|
|
18
|
+
## 两式选型
|
|
19
|
+
| 式 | 做法 | 适用 |
|
|
20
|
+
|----|------|------|
|
|
21
|
+
| A misregistration-hit 单发 | 标题 8f 撞入撞停,裂两版反向错 ~32px,44f 衰减震荡后硬切套准 + scale 脉冲 | 全片 1–2 次的命中盖章;标题/大字的到位一瞬 |
|
|
22
|
+
| B beat-pump 节拍泵 | 每 24f 一拍:整画面瞬跳 1.08 指数回落 + 标题错版逐拍 8/14/22/32px 加码套准 | 音乐卡点段;"越打越狠"的蓄力连打 |
|
|
23
|
+
|
|
24
|
+
## 参数表
|
|
25
|
+
| 参数 | 典型值 | 调节手感 |
|
|
26
|
+
|------|--------|----------|
|
|
27
|
+
| 双版 | 浅灰版(G.mid)+ 深墨版(G.ink),`mix-blend-mode: multiply`,位移反向 | multiply 叠出的重影灰阶就是"油墨没对准";screen 叠加立刻变荧光故障 |
|
|
28
|
+
| A 错位包络 | `offset = A·cos(2πt/18)·exp(-t/60)`,A=(16,7)px 两版反向;帧 72 硬切归零 | 命门:套准是**硬切跳变**不是渐收——衰减到 ~14px 残余时啪地归零才有"啪";纯渐收读不出套准一拍 |
|
|
29
|
+
| A 撞入 | 8f Easing.in(cubic) 从画外撞停,命中帧即裂版 | 裂版必须与撞停同帧——晚 2f 就读作两件事 |
|
|
30
|
+
| A 套准脉冲 | 归零帧 4f scale 1.03→1 | 盖章的一拍;省略则套准无重量 |
|
|
31
|
+
| B 泵 | `scale = 1 + 0.08·exp(-t/3)`(t=0 即满值、一帧到位无渐入),14f 窗口外精确归 1 | 瞬跳是"顿推"本体——加渐入就成了普通 zoom 呼吸 |
|
|
32
|
+
| B 错版加码 | AMP 逐拍 4/7/11/16px(单版,双版反向即总分离 8/14/22/32px),`AMP·cos(2πt/6)·exp(-t/3)` 12f 窗口 | 逐次加码是命门(同 hit-counter 判例):四拍一样大读不出"越打越狠" |
|
|
33
|
+
| B 作用域 | scale 作用整画面容器,错版只作用标题 | 整画面全裂读作故障而非印刷 |
|
|
34
|
+
| B 节拍参照物 | 底部节拍刻度点,命中闪深常驻 | 静音预览环境的节拍可读性 |
|
|
35
|
+
| 收尾 | A 套准后 ≥40f / B 末拍归零后 ≥20f 真静止 | R1 |
|
|
36
|
+
|
|
37
|
+
## 已知坑
|
|
38
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
39
|
+
首次实战须以真实素材回验
|
|
40
|
+
- **错位幅度可感性判例(本批实渲)**:词汇表原案 ±5px 在 1920 宽画面
|
|
41
|
+
正常速度下肉眼几乎不可见——单版 16px/总分离 32px 起步才可感;
|
|
42
|
+
幅度存疑时做极端版给用户看(可感性优先)
|
|
43
|
+
- 两式与 impact-feedback C(负片冲击帧)语义重叠——纸墨调性片子用本卡、
|
|
44
|
+
游戏/动漫调性用 C 式,同片不并用(P4)
|
|
45
|
+
- B 式是声音强依赖:命中帧必须钉鼓点(sound-design §4.5);无音轨
|
|
46
|
+
段落读作画面抽搐
|
|
47
|
+
- A 式错位方向一横一纵混合(x 为主 y 少量)更像没对准版;纯横向读作
|
|
48
|
+
左右晃动
|
|
49
|
+
- B 式四拍后必须接足量 hold(≥24f)——连打完不还呼吸,观众的耳朵还
|
|
50
|
+
在等第五拍
|
|
51
|
+
|
|
52
|
+
## 参考实现
|
|
53
|
+
demos/riso-print-hits/
|
|
54
|
+
(RisoBeatPump.tsx / RisoMisregistrationHit.tsx)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: row-embed
|
|
3
|
+
一句话: 内容行像卡片一样从空中降下、rotateX 收平、嵌入瞬间底边亮一道强调色的缝
|
|
4
|
+
适用: "结构化数据长进页面"的详情页/列表镜头;行级内容的批量入场
|
|
5
|
+
时长: 约 2s(12–68f)
|
|
6
|
+
能量: 中
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
详情页的行不是"显示出来"而是"长进去"——每一行从空中降下并严丝合缝嵌入页面布局,嵌入瞬间的强调色缝是"咔哒"扣上的视觉拟音。
|
|
11
|
+
|
|
12
|
+
## 动效核心
|
|
13
|
+
- 行按节拍逐条从上空飞入,rotateX 从仰角收平,scale 略过冲后 press 回弹
|
|
14
|
+
- 行位先盖页面底色补丁占位,落地后补丁消失让纹理透出
|
|
15
|
+
- 嵌入瞬间行底边一道 2px 强调色缝从中心向两侧展开后淡出
|
|
16
|
+
- 相机同时匀速下摇,行雨与运镜并行
|
|
17
|
+
|
|
18
|
+
## 参数表
|
|
19
|
+
| 参数 | 典型值 | 调节手感 |
|
|
20
|
+
|------|--------|----------|
|
|
21
|
+
| 节拍 | 第 i 行 cue = 12 + i·9,飞行 12f,最后一行 60f 落地、强调色缝 68f 收尾 ≤ 镜头 70f 预算 | 先算"最后一行何时落地"再定 cue 间隔——节拍×行数要对预算(同 document-typewriter-reveal 卡的核心算术) |
|
|
22
|
+
| 飞行姿态 | `perspective(900px) translateY(−120·air) rotateX(16°·air)`,scale 1.06→0.995 再 4f press-bounce 回 1 | rotateX 收平是"嵌入"的关键读感;纯垂直下落读作贴纸 |
|
|
23
|
+
| 飞行体 | backgroundImage 取整页截图、backgroundPosition 负偏移裁出该行 | 纹理裁片不重绘内容(Q1)——重绘的行和页面字体渲染有肉眼可见差异 |
|
|
24
|
+
| 空槽补丁 | 行位先盖页面底色 patch,落地后 2f 消失 | 无补丁时纹理里烤入的行会先透出来,飞入变成"重影" |
|
|
25
|
+
| 嵌入闪光 | 底边 2px 强调色缝从中心向两侧 5f 展开(Easing.out cubic)、8f 淡出,带 6px 辉光 | 缝只在底边、只闪一次;四边都闪读作选中框 |
|
|
26
|
+
| 相机 | cy 300→760 匀速 75f 下摇 | 运镜与行雨并行制造"边看边长"的感觉;相机若等行落完再动,镜头会拖 |
|
|
27
|
+
|
|
28
|
+
## 声音
|
|
29
|
+
段落切入钉 transition-soft(模板片钉在 f475);行落地不逐条配音——行数多、间隔匀时逐条 pop 会机枪化,靠画面的强调色缝做"视觉拟音"即可(S2 反面自检)。
|
|
30
|
+
|
|
31
|
+
## 已知坑
|
|
32
|
+
- 飞入终点必须是页面布局真实槽位、落地即嵌入(Q9)——要"从空中飞入,嵌入 dashboard";悬浮其上不落地会显得假
|
|
33
|
+
- 强调色缝等光效必须裁进承载元素圆角边界内(Q4 判例),光溢出圆角是廉价感典型来源
|
|
34
|
+
|
|
35
|
+
## 参考实现
|
|
36
|
+
template/src/aifl/live/SceneDetail.tsx
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: runway-ground-skim
|
|
3
|
+
一句话: 低角度掠地机位下 UI 卡片群从空中一阵急雨式快速贴落(起点微错、下落大量重叠并行、着地即停零回弹),落齐后整页立起、视角转正收尾
|
|
4
|
+
适用: 仪表盘/卡片流界面的登场(内容"从天而降完成自己");低角度炫技段后的收正;clickup 系悬空贴落语言的"齐落"重型版
|
|
5
|
+
时长: 悬空展示 ~0.4s + 贴落 ~1.2s + 立起转正 ~1.8s;全段 4s
|
|
6
|
+
能量: 高(掉落感是戏眼,立起转正是收束)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
把界面拍成跑道:低角度透视里 UI 卡片悬空在不同高度,随后按界面
|
|
11
|
+
位置顺序(行优先左→右)一阵急雨式贴落——掉落感=干脆利落。
|
|
12
|
+
三个命门:**重叠并行**(起点只错 1.5f、下落 9f ⇒ 空中恒有 5–6 张
|
|
13
|
+
同时在落,"几乎一起但有涟漪感";串行等待两轮被裁)、**零回弹**
|
|
14
|
+
(着地即停,弹起被裁)、**快**(下落 9f,15f 版被裁"快一点")。
|
|
15
|
+
落齐后页面从躺倒立起(rotateX 66°→0°)、镜头拉远居中,观众从
|
|
16
|
+
"看戏"回到"看界面"。
|
|
17
|
+
|
|
18
|
+
## 动效核心
|
|
19
|
+
- 机位:低角度强透视(rotateX ~66° 起),页面平躺如跑道
|
|
20
|
+
- 悬空:卡片初始悬浮 560–880px(高度错落),空中卡追光提亮
|
|
21
|
+
~1.35x(判例:被环境压黑带吞掉=悬空不可感)
|
|
22
|
+
- 贴落:起点 = 6 + i×1.5f + jitter(≤1.2f)(保序),下落 9f 重力
|
|
23
|
+
加速(距离∝t²),着地即停零回弹
|
|
24
|
+
- 立起:全员落定后 rotateX 66°→0° + 镜头拉远归中(easeRise),
|
|
25
|
+
终态正视整页
|
|
26
|
+
- 压黑带控制在 ~32%,给空中卡留可见度
|
|
27
|
+
|
|
28
|
+
## 参数表
|
|
29
|
+
| 参数 | 典型值 | 调节手感 |
|
|
30
|
+
|------|--------|----------|
|
|
31
|
+
| 起点差 | 1.5f/张(jitter ≤1.2f 不乱序) | 3f 版被裁"不需要一个落下了再启动第二个";0 差读作开关(那是 orbit 的同帧语法) |
|
|
32
|
+
| 下落时长 | 9f 重力加速 | 15f 被裁慢;<6f 读不出下落方向 |
|
|
33
|
+
| 回弹 | 零(着地即停) | 压弹 4.5% 版被裁"去掉弹起"——掉落感=干脆利落 |
|
|
34
|
+
| 悬浮高度 | 560–880px 错落 | 同高读作阅兵;>1000px 落地时间拉长 |
|
|
35
|
+
| 空中提亮 | ~1.35x 追光 | 不提亮悬空不可感(返工判例) |
|
|
36
|
+
| 立起段 | rotateX 66→0 + 拉远,~56f | 只落不立起=没有收束;立起太快读作弹板 |
|
|
37
|
+
|
|
38
|
+
## 已知坑
|
|
39
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
40
|
+
首次实战须以真实素材回验
|
|
41
|
+
- 贴落节奏语义(三卡判例族):本卡=急雨式重叠错峰;
|
|
42
|
+
graze-face-tour=巡礼错峰;neon-frame-orbit-drop=同帧齐落。
|
|
43
|
+
按镜头语义选,错用即被裁
|
|
44
|
+
- 与 deck-deal-flyin 分工:那张是卡片飞入列队(水平方向运动);
|
|
45
|
+
本卡是垂直贴落+页面立起的两段式,掉落感是本体
|
|
46
|
+
- 立起段原片无对应参考(用户口述新增),终态版式对齐 clickup11
|
|
47
|
+
正视图
|
|
48
|
+
|
|
49
|
+
## 参考实现
|
|
50
|
+
demos/runway-ground-skim/
|
|
51
|
+
(RunwayGroundSkim.tsx)
|
|
52
|
+
原片出处:clickup-30.mp4 ≈46–50s
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: sakuga-timing-shift
|
|
3
|
+
一句话: 一拍三转一拍一——元素先以每 3 帧一步的手翻书顿挫移动,高潮瞬间切成逐帧丝滑冲刺,帧率量化的突变本身就是看点
|
|
4
|
+
适用: 单元素的强调性位移(卡片入场、指标冲线);需要"手工感→高潮爆发"反差的段落
|
|
5
|
+
时长: ~5s
|
|
6
|
+
能量: 中高
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
库内时间轴操纵已有 speed-ramp 连续变速与 hit-counter 的局部顿帧。
|
|
11
|
+
本卡是另一种——**改的不是速度是帧率本身**:
|
|
12
|
+
顿挫段驱动帧 q=floor(f/3)*3,元素每 3 帧才动一步(10fps 手翻书),
|
|
13
|
+
切换帧起改用原始 f 逐帧驱动,丝滑冲刺。一拍三的钝与一拍一的滑
|
|
14
|
+
同屏对切,日式作画的拍数演出(shooting on 3s / on 1s)。顿挫段
|
|
15
|
+
不是低级感是手工感,切换点即高潮标记。
|
|
16
|
+
|
|
17
|
+
## 动效核心
|
|
18
|
+
- 顿挫段:q = Math.floor(f/3)*3 当驱动帧,位置线性 X 120→1380,
|
|
19
|
+
每步 ≈79px;姿势 sin(q) rotate ±5°,一步一个样
|
|
20
|
+
- f48 切换:改原始 f 连续驱动,Easing.out(poly(4)) 高初速冲刺
|
|
21
|
+
折返中央 + 过冲 36px + 3f scaleX 0.9 回弹急停
|
|
22
|
+
- 冲刺段运动拉伸由位置差分速度驱动(scaleX 峰值 ≈1.35 /
|
|
23
|
+
scaleY 0.88),残影 2 层**条件挂载**——速度低即摘除,非 opacity 0
|
|
24
|
+
- 角标 "on 3s"/"on 1s" 随段切换,切换瞬间 pop 1.35×;角标
|
|
25
|
+
line-boil 用 h() 伪随机、f=108 后冻结
|
|
26
|
+
- f108–150 真静止 42f,全画面无任何动画
|
|
27
|
+
|
|
28
|
+
## 参数表
|
|
29
|
+
| 参数 | 典型值 | 调节手感 |
|
|
30
|
+
|------|--------|----------|
|
|
31
|
+
| 拍数 | 顿挫段 floor(f/3)(一拍三) | /2 顿感不足、/4 以上读作播放器卡死 |
|
|
32
|
+
| 每步位移 | ≈79px(总程 ÷ 步数倒推) | <30px 读作卡顿掉帧不是顿挫——命门 |
|
|
33
|
+
| 步间姿势 | sin(q) rotate ±5° | 无姿势变化的纯位移顿挫像 bug 不像手翻书 |
|
|
34
|
+
| 切换帧 | f48(顿挫:冲刺 ≈ 3:2) | 切换必须一帧完成,任何补间都毁掉"换拍"感 |
|
|
35
|
+
| 冲刺缓动 | Easing.out(poly(4)) + 过冲 36px + 3f 回弹 | 初速要猛,与顿挫段拉满反差 |
|
|
36
|
+
| 收尾 | 真静止 ≥42f,角标沸腾同步冻结 | 沸腾残留毁真静止(feTurbulence 摘罩判例同族) |
|
|
37
|
+
|
|
38
|
+
## 已知坑
|
|
39
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
40
|
+
首次实战须以真实素材回验
|
|
41
|
+
- 同一镜头单一时间操纵者判例:与 speed-ramp / hit-counter 顿帧
|
|
42
|
+
互斥,一个镜头只能有一个人动时间轴
|
|
43
|
+
- 顿挫段每步位移 ≥30px 才读得出"顿"——微步顿挫读作渲染掉帧,
|
|
44
|
+
这是本卡命门;步幅不够就缩短总时长换大步幅
|
|
45
|
+
- 切换点必须有标注(角标 "on 3s"→"on 1s" 或一声打点,
|
|
46
|
+
sound-design §4.5)——无标注观众只觉得"变快了",读不出"换拍"
|
|
47
|
+
|
|
48
|
+
## 参考实现
|
|
49
|
+
demos/sakuga-timing-shift/
|
|
50
|
+
(SakugaTimingShift.tsx)
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scene-locked-title
|
|
3
|
+
一句话: 透视锁定标题——大标题"钉"在页面所处的 3D 空间里,相机动字随透视变形,与 UI 共享灭点
|
|
4
|
+
适用: 品牌开场/章节标题要"住进"产品空间的段落;与 C3 判例(3D 注记同空间)同源的标题级放大版
|
|
5
|
+
时长: 4–5s
|
|
6
|
+
能量: 低中(氛围型开场,字是主角)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
标题贴在屏幕玻璃上是字幕,钉在场景空间里是实体(《战栗空间》片头判例)。
|
|
11
|
+
dashboard 躺倒在 3D 空间,巨大标题悬浮其前方不同深度,只动相机——
|
|
12
|
+
字随透视变形、层间视差分离、必要时被画框裁切,观众读到"字放在
|
|
13
|
+
产品世界里"。C3 判例(3D 镜头注记文字活在同一空间)的开场标题版。
|
|
14
|
+
|
|
15
|
+
## 动作阶段
|
|
16
|
+
| 阶段 | 帧段参考 | 内容 |
|
|
17
|
+
|------|------|------|
|
|
18
|
+
| 1 静置 | f0–12 | 初始构图定住,让观众看清空间关系 |
|
|
19
|
+
| 2 相机行 | f12–112 | 相机缓慢横移+轻转(in-out cubic),标题/副题/面板三层视差分离 |
|
|
20
|
+
| 3 定格 | 末 ≥35f | 相机停稳真静止,可接 shot-transitions 交棒 |
|
|
21
|
+
|
|
22
|
+
## 参数表
|
|
23
|
+
| 参数 | 典型值 | 调节手感 |
|
|
24
|
+
|------|--------|----------|
|
|
25
|
+
| 空间摆位 | perspective 1200;场景层 rotateX 50° rotateZ -16° 躺倒 | 躺角太小读不出"空间",太大 UI 不可辨 |
|
|
26
|
+
| 深度分层 | 标题 translateZ 150 / 副题 60 / 面板 0 | 层距 <60px 视差不可感(视差可见性判例同源) |
|
|
27
|
+
| 相机行程 | X ±280px、Y ∓40px、rotateY ±8°,只动最外相机层 | 行程小于 ~500px 总位移读作静态海报 |
|
|
28
|
+
| 裁切 | 标题可被画框裁掉一角 | 裁切是"实体感"来源之一,别刻意避开 |
|
|
29
|
+
| 阴影 | 标题在 UI 表面投柔和阴影(模糊文字复制层) | 无阴影字浮空,与场景失联 |
|
|
30
|
+
|
|
31
|
+
## 已知坑
|
|
32
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
33
|
+
首次实战须以真实素材回验
|
|
34
|
+
- 遮挡关系是升级项:让某个 UI 浮层从字前面划过遮住一角,
|
|
35
|
+
字瞬间变实体(《战栗空间》关键一笔;demo 未做,实战可加)
|
|
36
|
+
- 文字可读性优先:标题被裁切/变形后仍要能读(Q6 同源),
|
|
37
|
+
持续画面里标题完整可读时间 ≥2s
|
|
38
|
+
- 与 hires-rasterize-3d-text 分工:那卡解决 3D 文字清晰度技术链路,
|
|
39
|
+
本卡是空间叙事手法,实战两卡合用
|
|
40
|
+
|
|
41
|
+
## 参考实现
|
|
42
|
+
demos/scene-locked-title/
|
|
43
|
+
(SceneLockedTitle.tsx)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: scroll-brake-moves
|
|
3
|
+
一句话: 长卷急刹两式——changelog-scroll-brake 基本款(高速长卷指数减速精准停位+目标抬升)与 brake-reticle-lock 组合款(急刹帧同帧准星咬合)
|
|
4
|
+
适用: changelog/发布史/长列表段落:"一直在发货,今天这条最大";要给停点更强打击感用 B
|
|
5
|
+
时长: A 4–5s / B 5s
|
|
6
|
+
能量: 高开中收(速度对比型)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
Linear changelog 视频语法:一整年的更新日志作为长卷高速掠过
|
|
11
|
+
(糊成色带),指数减速精准急刹停在本次发布那条上,该条抬升离面
|
|
12
|
+
高亮、其余退暗——密度感讲"一直在发货",急停讲"今天这条最大"。
|
|
13
|
+
B 是组合变异:急刹帧**同帧**四个 L 角标从画外飞入咬合锁定停点
|
|
14
|
+
条目——急刹的"哐"与咬合的"咔"叠在同一帧共振(组合命门:
|
|
15
|
+
角标起跳帧=列表首停帧,错开退化成两招并置)。
|
|
16
|
+
|
|
17
|
+
## 两式选型
|
|
18
|
+
| 式 | 做法 | 适用 |
|
|
19
|
+
|----|------|------|
|
|
20
|
+
| A changelog-scroll-brake | translateY 扫 ~2400px(out exp 指数减速 ~50f),blur 由帧间位移差分驱动(0–6px 自动清零);停点行 scale 1.03 抬升+阴影+3px 描边,其余 opacity 退 0.38 | changelog 段落基本款 |
|
|
21
|
+
| B brake-reticle-lock | 滚动三段:sin-in 加速→cubic-out 猛减速冲过头 +30px→回弹落定;blur=v×0.12 封顶 24px;角标从 ±620/±320 画外 Easing.back(2.4) 飞入咬合,高亮 6f 内完成、标签 back(2.6) 弹出 | 停点需要更强打击感的高光段 |
|
|
22
|
+
|
|
23
|
+
## 参数表
|
|
24
|
+
| 参数 | 典型值 | 调节手感 |
|
|
25
|
+
|------|--------|----------|
|
|
26
|
+
| 减速曲线 | A 纯 out-exp;B 加"冲过头 30px 回弹" | 匀速滚读作跑马灯;B 的过头回弹是"哐"的来源 |
|
|
27
|
+
| blur 驱动 | 帧间位移差分 `|p(f)-p(f-1)|`×系数 | 手排模糊关键帧必然对不上速度;差分法帧确定(模式已沉为 assets/lib/helpers/motion.ts velocityAt) |
|
|
28
|
+
| 行高节奏 | 72/94/116 三档错落 | 等高行高速掠过时色带无节奏 |
|
|
29
|
+
| 停位 | 目标行停画面纵向正中 | 停偏读作事故 |
|
|
30
|
+
| B 共振帧 | 角标挂载起跳帧 = 列表首次停住帧(严格同帧) | 组合命门,错 2f 以上就散 |
|
|
31
|
+
|
|
32
|
+
## 已知坑
|
|
33
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
34
|
+
首次实战须以真实素材回验
|
|
35
|
+
- 与 timeline-travel 分工:本卡纵向列表急刹停"最新",
|
|
36
|
+
那卡横向时间轴旅行看"历史"——同片双用时先后错开且各 ≤1 次
|
|
37
|
+
- 高速段条目内容不用真实可读文本——反正糊成色带,占位灰块即可;
|
|
38
|
+
停点条目必须出版级真内容(Q10)
|
|
39
|
+
- 停点后其余行退暗 0.38 是构图动作:别退到 0(上下文消失)
|
|
40
|
+
- 声音:高速段低频 riser 铺垫,急刹一声 impact;B 咬合帧
|
|
41
|
+
再叠一声"咔"(与 impact 同帧不同声部)
|
|
42
|
+
|
|
43
|
+
## 参考实现
|
|
44
|
+
demos/scroll-brake-moves/
|
|
45
|
+
(BrakeReticleLock.tsx / ChangelogScrollBrake.tsx)
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: segmented-thumb-hero
|
|
3
|
+
一句话: 分段控件 thumb 位移当主角特写——超大胶囊 segmented control 弹簧浮入,描边箭头光标画外滑入按下,白 thumb 8f ease-out 滑到另一段,到位瞬间新图标 spring 弹出、旧图标收起
|
|
4
|
+
适用: "模式切换/二选一"功能的宣告镜头(Ask→Computer、Chat→Agent 式);一个 UI 微交互撑一整镜的特写拍法
|
|
5
|
+
时长: ~3.5s(demo 110f:浮入 18f + 光标 24f + 点击 + 滑动 8f + 图标弹出 + hold)
|
|
6
|
+
能量: 中(微交互特写,精致不轰)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
产品切到新模式,通常拍法是整个界面换掉。本卡反着来:把 segmented
|
|
11
|
+
control 放大到 1080px 宽拍特写,**thumb 那 8 帧位移本身就是叙事**——
|
|
12
|
+
"我们从 A 走到了 B"。没有任何页面上下文,控件即舞台。因果链完整:
|
|
13
|
+
光标滑入(有人来了)→ 按下+涟漪(做了决定)→ thumb 滑动(世界响应)
|
|
14
|
+
→ 新图标弹出(新身份确立)。四拍缺一不可,缺了光标就是 UI 自己在动,
|
|
15
|
+
缺了图标弹出就是切换没有奖励。
|
|
16
|
+
|
|
17
|
+
## 动效核心
|
|
18
|
+
- 控件特写尺寸 1080×220,从下 200px 弹簧浮入
|
|
19
|
+
(spring damping 14 / stiffness 120),大阴影随落位收小(24→12px)
|
|
20
|
+
- 光标是超大描边箭头(130px,白底墨描边):24f Easing.out(cubic)
|
|
21
|
+
从右下画外滑到目标段上;按下 scale 1→0.86→1(3f 下 4f 回)
|
|
22
|
+
- **thumb 严格 8f** Easing.out(cubic)(demo 52→60f)——还原原片手感;
|
|
23
|
+
这 8f 是全镜的心跳,前后各拍都在为它服务
|
|
24
|
+
- 到位瞬间双动作同帧起:新图标 spring(damping 10, stiffness 220)
|
|
25
|
+
过冲弹出;旧图标 6f Easing.in 塌缩且 width 同步归零让文字自然回流
|
|
26
|
+
- 点击涟漪:4px 描边圆环 12f 从点击点扩散淡出(Easing.out(quad))
|
|
27
|
+
——涟漪确认"按下"发生过,无涟漪点击读作光标路过
|
|
28
|
+
|
|
29
|
+
## 参数表
|
|
30
|
+
| 参数 | 典型值 | 调节手感 |
|
|
31
|
+
|------|--------|----------|
|
|
32
|
+
| 控件尺寸 | 1080×220,thumb 内缩 16px | 缩到 <600px 宽就不是特写了,thumb 位移读不出重量 |
|
|
33
|
+
| thumb 时长 | 8f Easing.out(cubic) | >14f 读作慢动作演示视频;<5f 读作瞬移,"滑"没了 |
|
|
34
|
+
| 光标滑入 | 24f 从画外,ease-out | linear 或 <14f 读作光标被扔进来;起点必须画外 |
|
|
35
|
+
| 按下 | scale 0.86 + 涟漪 12f | 无按下直接滑 thumb,因果链断,读作自动播放 |
|
|
36
|
+
| 图标弹出 | spring damping 10/stiffness 220 | damping <8 弹三下抢 thumb 的戏;旧图标不收起文字会挤出控件 |
|
|
37
|
+
| 收尾 hold | 新态静置 ≥30f | 切换完立刻切镜,"新模式"没被看清 |
|
|
38
|
+
|
|
39
|
+
## 已知坑
|
|
40
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
41
|
+
首次实战须以真实素材回验
|
|
42
|
+
- 与 input-trigger-moves 分工:cursor-performance 是光标在完整页面里
|
|
43
|
+
点击推近(有上下文),本卡是控件脱离页面拍无背景特写——同片可共存,
|
|
44
|
+
但同一次点击别既拍页面版又拍特写版
|
|
45
|
+
- 图标塌缩用 width 归零而不是只 scale——只 scale 会留空位,文字不回流,
|
|
46
|
+
控件内出现"幽灵缝"(demo 里 width 与 scale 同步驱动)
|
|
47
|
+
- 二段以上(3+ 段)控件慎用:thumb 跨多段滑行 8f 太快读不出停靠,
|
|
48
|
+
拉长又破手感——本卡吃"二选一"最顺
|
|
49
|
+
- 涟漪圆环要 zIndex 压在 thumb 之上、圆心锁点击点——跟着 thumb 走
|
|
50
|
+
就成了 thumb 的拖尾,语义变错
|
|
51
|
+
- 实战替换素材:段标签/图标换成真功能名即可,但"新段图标带表情"
|
|
52
|
+
(demo 笑脸 laptop)是奖励感的一半,纯线框图标会淡不少
|
|
53
|
+
|
|
54
|
+
## 参考实现
|
|
55
|
+
demos/segmented-thumb-hero/
|
|
56
|
+
(SegmentedThumbHero.tsx)
|
|
57
|
+
原片出处:perplexity-promo 2.3–5s
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
+
| A 推进流白 flash-cut | 前镜相机推进,切点跨骑一层白闪盖住换页 | 交互穿透、能量相近的页面→页面(库内已有,收编)|
|
|
20
|
+
| B 穿暗场直航 | 相机顺运动方向推出前景→纯暗场滑行几帧→后景从景深迎面放大而来,一条 take 不切 | 高能量→高能量的场景跳转;暗色调全片的主力转场 |
|
|
21
|
+
| C 虚焦接力 | 前景滑出焦平面(blur 渐深)同时后景反向收焦入场,焦点当剪辑点 | 同页面内区块→区块;文档/长页游览的分段 |
|
|
22
|
+
| D 黑场字卡 | 前镜收尾淡入黑场,字卡打字机/压印出现,再交棒后镜 | 章节级分段 + 呼吸位二合一(paper-title-card 的暗场变体)|
|
|
23
|
+
| E whip-pan 甩镜 | 机位一拍横甩到下一场景,中段运动模糊糊到不可辨,借糊帧换景 | 快节奏功能段连打(高能量→高能量的轻快款,比 B 式省帧提速)|
|
|
24
|
+
| F mask-wipe 穿窗 | 页面内真实元素(卡片)放大成全屏窗口,新场景从窗内长出接管 | 语义化接缝:功能总览→该功能详情("点开这张卡进入它的世界")|
|
|
25
|
+
|
|
26
|
+
## 参数表
|
|
27
|
+
| 参数 | 典型值 | 调节手感 |
|
|
28
|
+
|------|--------|----------|
|
|
29
|
+
| A flash-cut | `assets/lib/FlashCut.tsx`,from = 切点 − 5,两侧各 5f | 用法详见 type-and-filter 卡;白闪只盖硬切,不当装饰光效(Q4)|
|
|
30
|
+
| B 暗场滑行 | 前镜推出 8–12f → 暗场 4–8f → 后景放大入场 10–14f;后景从 scale ~0.6 + blur 起步收焦 | 暗场段不能全黑死场——保留背景微渐变/尘点让"still moving"可感;滑行帧过长读作断片,>10f 须有元素在动;推出/迎入的快速运镜可包 `<CameraMotionBlur>`(参数见 deck-deal-flyin 运动模糊行) |
|
|
31
|
+
| B 运动方向 | 出与入同向(前镜向右推出→后景从右迎来),速度曲线连续不回摆 | 方向不接读作两条片子硬拼;参考片 Releases 全程一条 take 的秘密就是方向连续 |
|
|
32
|
+
| C 焦点交换 | 前景 blur 0→8px 同时后景 8px→0,交叉窗口 10–16f;两景错开 2–4f 起跑 | 同帧起跑读作整屏糊掉;浅景深要贯穿该段落而非突然出现(DoF 语言先立后用)|
|
|
33
|
+
| D 黑场字卡 | 前镜淡出 6–10f → 字卡段(参数走 paper-title-card,底色换暗场)→ 淡入后镜 6–10f | 暗底字卡的字色用页面底色(浅色)/等宽字才不像报错弹窗;一支 30s 片 D 式 ≤2 次,多了节奏碎 |
|
|
34
|
+
| E 甩镜基本款 | 两端各 hold ≥20f → 甩动 8f 跨约 1.5 屏(ease-in-out 陡曲线)→ 直接落位;`<CameraMotionBlur shutterAngle={200} samples={8}>` 只包甩动段 | 跨度按"峰值速度 ≥300px/f"配,不足则糊不透露出换景穿帮;两景同一水平线上拼接(页面空间同 y),甩完即停 |
|
|
35
|
+
| E 甩镜急刹款 | 前 70% 路程用 30% 时间(糊段)→ 后 30% 路程 ease-out 长尾 ~48f 滑入落位 | 适合落点是"要读内容"的镜头——长尾给观众视线一个追上的坡;长尾 >60f 偷走后镜入场,宁短勿长 |
|
|
36
|
+
| F 穿窗 | 元素 45f 放大成全屏(单段 bezier),窗内新景从 ~0.42 缩放反向补偿长到 1,元素脸前半段渐隐(opacity 1−t·2.2) | 窗几何与窗内景必须同步驱动(同一个 t),异步读作穿帮;被放大元素用高清纹理(Q2,全程被特写)|
|
|
37
|
+
| F 穿窗纵深款 portal-wipe | 窗放大 40f 用 bezier(0.7,0,0.3,1) 先慢后快;窗内**只 2 层**视差(远景整页缩略系数 0.08 + 近景 2 卡 0.3,不加 blur),穿窗完成后 8f 缓停 → 静止 ≥30f 读清新景 | 层数/散开是可读性命门——3 层+0.85 散开+blur 版被裁,收敛后过;穿完必须真停,视差飘着不停偷走后镜阅读 |
|
|
38
|
+
|
|
39
|
+
## 已知坑
|
|
40
|
+
- 分镜表阶段就逐接缝标注转场式(写进"关键动效"列),逐镜头阶段才补
|
|
41
|
+
等于全线挪帧——转场占用的帧从相邻镜头预算划走,规矩同 hold 预算(R3)
|
|
42
|
+
- B/C 两式借鉴自 Linear 发布片抽帧逆向(2026-07-11,进化轮 #3),
|
|
43
|
+
非用户判例——是默认建议不是令,与判例冲突时判例优先
|
|
44
|
+
- B 式对源素材要求高:后景迎面放大 = 纹理被放大看,低倍截图先过
|
|
45
|
+
hires-rasterize-3d-text 技法卡再上
|
|
46
|
+
- 转场不叠加:一个接缝只用一式;B 式暗场里再加 flash 白闪读作穿帮
|
|
47
|
+
- E/F 式参数经占位素材调校+真实素材转正,非用户
|
|
48
|
+
实战判例——单例判例,与判例冲突时判例优先;E 基本款/急刹款按
|
|
49
|
+
后镜性质二选一(后镜自带入场动效→基本款;后镜靠内容说话→急刹款),
|
|
50
|
+
同片混用两款算两式各记一次
|
|
51
|
+
- F 式窗内新景语义应是被点开元素的"详情世界"(实战接真实详情页
|
|
52
|
+
截图)——窗里塞无关场景语义断裂,沦为花哨擦除
|
|
53
|
+
- F 纵深款参数系灰阶占位调校起点、未经真实素材验证;
|
|
54
|
+
参考实现 demos/shot-transitions/PortalWipeV2.tsx
|
|
55
|
+
|
|
56
|
+
## 参考实现
|
|
57
|
+
A 式:template/src/aifl/Main.tsx flash-cut 层;
|
|
58
|
+
E 式(whip 甩镜):demos/shot-transitions/WhipPanReal.tsx / WhipBrakeReal.tsx;
|
|
59
|
+
F 式(遮罩擦除):demos/shot-transitions/MaskWipeReal.tsx(纵深款 PortalWipeV2.tsx 同目录);
|
|
60
|
+
B/C/D 式暂无库内实现,按参数表自行实现。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skeleton-reveal
|
|
3
|
+
一句话: 草稿→骨架→内容三级显影——手绘涂鸦占位(煮沸抖动)一拍被灰条骨架窗口替换,骨架列表滚入后镜头推近、灰条逐行显影成头像+逐词文字,末词晚半拍落地
|
|
4
|
+
适用: 产品 UI 的"从无到有"登场叙事;开场后第一次亮产品界面的段落
|
|
5
|
+
时长: ~5.7s(172f:涂鸦 1s + 换真 0.3s + 骨架滚入 1.2s + 推近显影 3s)
|
|
6
|
+
能量: 中(叙事型登场,重点是"变成真的"那两次跃迁)
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
UI 登场库全是"整页一次到位"(飞入/落位/擦出)。本卡把登场拆成
|
|
11
|
+
**三级保真度跃迁**:手绘涂鸦(想法)→ 灰条骨架(结构)→ 真实内容
|
|
12
|
+
(产品),每次跃迁都是一拍"变成真的"的爽点,观众跟着走完"从草图
|
|
13
|
+
到产品"的叙事弧。骨架→内容的显影借的是加载态语法——用户天天见
|
|
14
|
+
skeleton screen,看到灰条就知道"内容要来了",预期免费。与
|
|
15
|
+
document-typewriter-reveal 分工:那是**一份文档**被逐块写出来(内容是
|
|
16
|
+
主角、要读字);本卡是**一个界面**逐级变真(结构是主角、字是最后
|
|
17
|
+
一级质感)。与 ai-stream-response 分工:那是证据行逐条"汇入"(列表
|
|
18
|
+
在生长),本卡是已就位的占位"显影"(布局早定,保真度在升级)。
|
|
19
|
+
|
|
20
|
+
## 动效核心
|
|
21
|
+
- 涂鸦 = 种子抖动折线/blob 路径(mulberry32),SVG 圆头粗 stroke
|
|
22
|
+
(11–14px);**每 5f 换一套种子做"煮沸"**——静止的手绘读作贴图
|
|
23
|
+
- 换真一拍:涂鸦层 8f Easing.in 加速缩退(scale -14%)+ 淡出,
|
|
24
|
+
骨架窗口同时 spring(damping 16, stiffness 160) 弹入,交叠不留空场
|
|
25
|
+
- 骨架行 translateY 520→0 逐行错峰 6f 滚入(ease-out cubic)
|
|
26
|
+
- 显影 = 骨架/内容双层叠放 opacity 互换 + 头像 scale 0.7→1 长出,
|
|
27
|
+
伴随镜头 1→1.34 inOut 推近(76f)——推近给显影一个"凑近看清"的
|
|
28
|
+
视线动机
|
|
29
|
+
- 文字逐词 2.5f 步进上浮 14px 进场;末行末词 +14f 晚半拍("pink?"
|
|
30
|
+
式收尾顿点)
|
|
31
|
+
|
|
32
|
+
## 参数表
|
|
33
|
+
| 参数 | 典型值 | 调节手感 |
|
|
34
|
+
|------|--------|----------|
|
|
35
|
+
| 煮沸周期 | 每 5f 换种子,抖幅 ±6–10px | <3f 抖成噪点;>8f 读作卡顿而非手绘活性 |
|
|
36
|
+
| 换真一拍 | 涂鸦 8f 加速缩退,骨架 spring 同帧弹入 | 这拍必须快而果断——拖长成 crossfade,"跃迁"就没了 |
|
|
37
|
+
| 骨架滚入 | 每行错峰 6f,各 22f ease-out | 骨架期要短暂停留(观众登记"结构")再显影,粘连读不出三级 |
|
|
38
|
+
| 显影节拍 | 每行错峰 13f,行内 12f;镜头推近同段起 | 逐行有节奏地变真;全屏同帧显影读作换图 |
|
|
39
|
+
| 逐词进场 | 2.5f/词,上浮 14px + 淡入 | 词级进场是最后一级质感;整行淡入降一档也成立 |
|
|
40
|
+
| 晚半拍 | 末行末词 +14f | 收尾顿点让"加载完成"有句号;全部齐落平淡 |
|
|
41
|
+
|
|
42
|
+
## 已知坑
|
|
43
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
44
|
+
首次实战须以真实素材回验
|
|
45
|
+
- 三级布局必须严格同构:涂鸦的窗口/侧栏/消息行位置要和骨架、骨架要和真内容对得上——错位后"显影"变成"换了个页面",叙事断
|
|
46
|
+
- 实战真内容层贴产品真实截图/排版时,骨架灰条的行高与槽位要按截图量(document-typewriter-reveal 卡"烤入纹理对齐"同族教训)
|
|
47
|
+
- 涂鸦线稿别画细节:粗圆头 blob + 波浪线足够,画得太像 UI 第一级和第二级就没差了
|
|
48
|
+
- mock 文案合规:不出现客户/成员真名(Q1 通例)
|
|
49
|
+
- 声音:换真一拍钉一声 pop/whoosh,逐行显影各一声极轻 tick,末词晚半拍处配一声轻 chime 收束
|
|
50
|
+
|
|
51
|
+
## 参考实现
|
|
52
|
+
demos/skeleton-reveal/
|
|
53
|
+
(SkeletonReveal.tsx)
|
|
54
|
+
原片出处:slack-promo 4–4.5s + 10–15s
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: slam-entrance-moves
|
|
3
|
+
一句话: 高能砸入三式——kanada-perspective-snap 金田透视急停、score-slam 比分砸落、impact-burst-kit 落点冲击套件(波及邻卡)
|
|
4
|
+
适用: 主角卡/KPI 卡的重拳入场;impact-feedback 管落位后的反馈,本卡管入场本身就是冲击
|
|
5
|
+
能量: 高
|
|
6
|
+
时长: 单式动作段 6–22f + 冲击余波 ~16f + hold ≥45f
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
库内入场词汇的力度上限一直是 deck-deal-flyin 的"发牌"——快但不重。
|
|
11
|
+
本卡补"砸"这一档,三种口味:A 是方向感——卡片带鱼眼级夸张透视贴着
|
|
12
|
+
镜头甩进来,"啪"地弹平,动漫金田流的潇洒;B 是重量感——KPI 卡从
|
|
13
|
+
镜头前 2.5 倍大小砸落,圆环+尘点+震屏三件套同帧起爆,体育比分弹窗
|
|
14
|
+
的分量;C 是传导感——B 的三件套之上,冲击波前沿扫过左右邻卡时把
|
|
15
|
+
它们可见地推开再弹回,"这一下震到了邻居",一件事说清力量大小。
|
|
16
|
+
选型按叙事需要:告诉观众"它来了"用 A,"它很重"用 B,"它震动了
|
|
17
|
+
全场"用 C。
|
|
18
|
+
|
|
19
|
+
## 三式选型
|
|
20
|
+
| 式 | 做法 | 适用 |
|
|
21
|
+
|----|------|------|
|
|
22
|
+
| A kanada-perspective-snap | perspective 300→1500px + rotate3d 58°→0 + scale 1.7→1 甩入 18f,末 4f 过冲 +5° 弹平,长斜影收正 | 单卡潇洒亮相;调性偏动漫/轻快 |
|
|
23
|
+
| B score-slam | 卡从 scale 2.5/rotate 5° 六帧 Easing.in(quad) 砸落,落点帧圆环扩散+尘点飞散+震屏同帧 | KPI/比分类重磅数字登场 |
|
|
24
|
+
| C impact-burst-kit | B 三件套 + 冲击波前沿按半径-距离精算扫过邻卡帧,邻卡外推 30px + rotate ±3° 阻尼弹回 | 页面上已有邻居时的"全场震动" |
|
|
25
|
+
|
|
26
|
+
## 参数表
|
|
27
|
+
| 参数 | 典型值 | 调节手感 |
|
|
28
|
+
|------|--------|----------|
|
|
29
|
+
| A 甩入 | 18f Easing.out(cubic),translateX -700→0 与透视变形同跑;途中 blur 2px 落定即摘 | 快于 12f 读不到鱼眼畸变,慢于 24f 泄劲 |
|
|
30
|
+
| A 落定 | rotateY 过冲 +5° 4f 回 0 + 6px 震屏 2f + 斜长影收正常投影 | "啪"在过冲回弹那一下,不在位移结束 |
|
|
31
|
+
| B 砸落 | 6f Easing.in(quad)(加速砸,不是减速落) | ease-out 落地是"放下",ease-in 才是"砸" |
|
|
32
|
+
| B 三件套 | 圆环 80→860px/14f + 尘点 18–30px 飞 160–320px + 震屏 18px 指数衰减 4f | 原案(720px/10px 尘/8px 震)全档不可感,实渲已 ×1.5–2 |
|
|
33
|
+
| B 解耦命门 | 环/尘的"扩散"用 out-cubic、"消散"用线性帧时间 | 同用 out-cubic 前段跑太快,刚扩开就淡没 |
|
|
34
|
+
| C 波及帧 | 前沿过邻卡中心距反解(460px 距 ≈ 落点后 3f);包络 cos(t/2)·e^(−t/8),40f 硬钳 0 | 邻卡与主卡同帧动读作整版抖动,晚 3f 才是"被波及" |
|
|
35
|
+
| 收尾 | 全部余波归零后真静止 ≥45f | 重拳 hold 按平常两倍给(同 beat-cut B 判例) |
|
|
36
|
+
|
|
37
|
+
## 已知坑
|
|
38
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
39
|
+
首次实战须以真实素材回验
|
|
40
|
+
- 三式都带震屏,震屏族(impact-feedback、montage-rhythm A/C)同一镜头
|
|
41
|
+
只能有一个震源;三式互相之间同镜头也只能选一
|
|
42
|
+
- 声音强依赖:A 的"啪"、B/C 的音爆必须同帧钉(sound-design §4.5),
|
|
43
|
+
无声版 B/C 的三件套读作"卡在抽搐"
|
|
44
|
+
- C 式邻卡必须先驻场稳定 ≥15f 再被波及——邻卡自己还在入场时被推开,
|
|
45
|
+
因果链读不出来
|
|
46
|
+
- 与 domino-cascade(montage-rhythm C 式)的区别要守住:domino 是
|
|
47
|
+
连锁"接力入场"(邻居被撞后自己入场),C 式是"被波及晃一下回原位"
|
|
48
|
+
(邻居早已在场)——别混用在同一组元素上
|
|
49
|
+
- 全片砸入 ≤2 次;三次以上每次都响等于都不响(P4)
|
|
50
|
+
|
|
51
|
+
## 参考实现
|
|
52
|
+
demos/slam-entrance-moves/
|
|
53
|
+
(ImpactBurstKit.tsx / KanadaPerspectiveSnap.tsx / ScoreSlam.tsx)
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: smear-multiples
|
|
3
|
+
一句话: 残像分身——卡片高速横移时拖 4 个清晰可数的半透明分身副本,落位瞬间收拢合一;motion blur 的动画式平替
|
|
4
|
+
适用: 元素高速位移段想要"漫画式速度感"而非"摄影式模糊"时;与 CameraMotionBlur 二选一
|
|
5
|
+
时长: 元素级技法(移动 12f + 合拢回弹 8f,寄生在位移动作上)
|
|
6
|
+
能量: 中高
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
快速位移的速度感库内标准答案是 CameraMotionBlur(摄影隐喻:快门拖影,
|
|
11
|
+
连续的糊)。本卡给第二个答案,动漫演出的 smear frame 传统:残像是
|
|
12
|
+
**离散、清晰、可数的**完整副本——观众能数出 4 张卡,读作"快到留下
|
|
13
|
+
分身"而非"快到糊掉"。两者气质完全不同:blur 是实拍级质感,分身是
|
|
14
|
+
漫画级趣味;同一次位移二选一,叠用读作渲染错误。分身式还有一个
|
|
15
|
+
实用优势:残像里内容仍可辨,适合"移动的东西本身是信息"的场景。
|
|
16
|
+
|
|
17
|
+
## 动效核心
|
|
18
|
+
- 位置写成纯函数 `posAt(f)`(如 12f inOut cubic 到过冲点 + 6f 回弹);
|
|
19
|
+
第 k 个分身直接求 `posAt(frame − k·2)`——同一条插值换帧号求值,
|
|
20
|
+
天然帧独立可算(disney 延迟采样拖拽层级的同一模式;模式已沉为
|
|
21
|
+
assets/lib/helpers/motion.ts velocityAt/lagged)
|
|
22
|
+
- 分身 opacity 0.45/0.30/0.18/0.09 递减,是完整元素副本(不拉伸不变形)
|
|
23
|
+
- 速度门限:`v = posAt(f) − posAt(f−1)`,v>25px/f 才渲染分身,
|
|
24
|
+
用 [25,60] 线性渐入避免分身瞬间跳出——低速段无残像是"快才有分身"
|
|
25
|
+
的语义完整性
|
|
26
|
+
- 落位合拢:cv∈[0,1](3f),分身延迟乘 (1−cv) 收缩到 0 + opacity 压零
|
|
27
|
+
——分身们"追上"本体的一瞬即落位重音,配合 3% 过冲回弹
|
|
28
|
+
|
|
29
|
+
## 参数表
|
|
30
|
+
| 参数 | 典型值 | 调节手感 |
|
|
31
|
+
|------|--------|----------|
|
|
32
|
+
| 分身数/间隔 | 4 个 / 各差 2f | >5 个读作队伍;间隔 >3f 断成跳帧 |
|
|
33
|
+
| 移动速度 | ~900px/12f(峰值 ~100px/f) | 慢移动不配分身(门限管住);快过 3f/程分身来不及被看见 |
|
|
34
|
+
| 合拢窗口 | 落位前 3f 内收干 | 分身残留到落位后读作重影故障 |
|
|
35
|
+
| 收尾 | 落位回弹后真静止 ≥20f | R1 |
|
|
36
|
+
|
|
37
|
+
## 已知坑
|
|
38
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
39
|
+
首次实战须以真实素材回验
|
|
40
|
+
- 与 CameraMotionBlur 同一次位移**互斥**;同片不同镜头可以各用(一次
|
|
41
|
+
漫画式一次摄影式反而立体),但同类位移统一用一种(P4 一致性)
|
|
42
|
+
- 分身是"清晰完整副本"——加 blur、拉伸、变形都会滑向另一个手法
|
|
43
|
+
(轴向拉伸在词汇表另案),保持可数是本卡的身份
|
|
44
|
+
- 深底浅卡对比度下分身层次才读得开;同色系底上 0.09 那档会消失,
|
|
45
|
+
可减为 3 个分身重配 0.5/0.3/0.15
|
|
46
|
+
|
|
47
|
+
## 参考实现
|
|
48
|
+
demos/smear-multiples/
|
|
49
|
+
(SmearMultiples.tsx)
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: space-camera-moves
|
|
3
|
+
一句话: 3D 空间化运镜三式——exploded-view 爆炸分解(构件沿 Z 炸开再合体)、snorricam-lock 主体锁定背景翻滚、drone-dive-landing 无人机俯冲降落
|
|
4
|
+
适用: 把平面页面当 3D 实体拍的高光段落;三式都是"大动作",一支片合计 ≤2 次
|
|
5
|
+
时长: A 5s(炸开-悬停-合体全程);B 4.5–5s 单次狂奔;C 3–5s 单向俯冲
|
|
6
|
+
能量: 高
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 意图
|
|
10
|
+
depth-layer 卡是给平移加纵深——层在动、页面还是页面。这三式更进一步:
|
|
11
|
+
整页被当成一个 3D 实体,相机(或世界)绕着它做实拍级机动。三式叙事
|
|
12
|
+
语义各占一格:A 说"看看它由什么组成"(拆解展示,Apple 发布片语言);
|
|
13
|
+
B 说"这张卡带你狂奔"(主角钉死、全世界翻滚掠过,动能全给背景);
|
|
14
|
+
C 说"从全局俯瞰砸到主角"(上帝视角一头扎进 hero 特写,全景→焦点)。
|
|
15
|
+
|
|
16
|
+
## 三式选型
|
|
17
|
+
|
|
18
|
+
| 式 | 做法 | 适用段落 |
|
|
19
|
+
|----|------|----------|
|
|
20
|
+
| A exploded-view | 整页 3D 倾斜后构件沿 Z 轴错峰炸开悬停,一拍后逆序合体震屏收口 | 架构/组成展示:"这个产品里有什么";模块总览段 |
|
|
21
|
+
| B snorricam-lock | 前景主体焊死画面正中,背景整页四通道复合运动狂奔而过 | 单个功能/卡片的高光时刻;速度感、失控感段落 |
|
|
22
|
+
| C drone-dive-landing | 近垂直俯角悬停 → 猛扎俯冲 → 气垫减速停在 hero 卡特写 | 开场定场→入题;全局地图砸进单点的章节启动 |
|
|
23
|
+
|
|
24
|
+
## 参数表
|
|
25
|
+
| 参数 | 典型值 | 调节手感 |
|
|
26
|
+
|------|--------|----------|
|
|
27
|
+
| A 空间基座 | perspective 1600 + 整组 scale 0.76 + rotateX 18° rotateY -12° + preserve-3d | 倾角是空间感来源;正视炸开读不出深度 |
|
|
28
|
+
| A 炸开 | 各构件 translateZ 60–320px 错落分布,错峰 3f,每层 14f ease-out-back(1.7) | back 回弹给"咔"一声的机械感;深度全同读作整页浮起 |
|
|
29
|
+
| A 合体 | 逆序 ease-in 12f,归位帧 2f 指数衰减震屏(幅 ~13px) | 震屏是落锤——没有它合体读作软趴趴的淡入 |
|
|
30
|
+
| A 深度锚 | 投影随 z·p 下移变虚 + 底板压暗 22% + 远层 brightness ↓28% | 三个线索缺一层间关系就糊 |
|
|
31
|
+
| B 前景 | 主体卡绝对居中零变换,投影随背景速度加重(24→56px) | 主体一像素都不能动——动了整个骗局垮掉 |
|
|
32
|
+
| B 背景 | 整页 1.6x:x -800→400(中途过冲反甩)+ rotate -6°→8°→-3° + scale 1.6↔1.72 + y 错拍轻甩,各段不同 bezier | 四通道错拍才像失控;匀速/同拍读作屏保 |
|
|
33
|
+
| B 景深 | 背景 2px blur + 外圈轻暗角 | blur 把背景推远、暗角钉视线;缺了主体融进背景 |
|
|
34
|
+
| B 微颤 | seed 正弦手持颤(x/y/rot 三轴),包络 [起,峰,峰,尾] 归零 | 包络不归零则首尾 hold 不是真静止 |
|
|
35
|
+
| C 行程 | 同一条 p 驱动 rotateX 72°→0 + scale 0.42→1.35 + translate 收拢;origin 钉死 hero 卡中心(如 518,335) | 一条 p = 一台相机一次机动;分开驱动读作三个动画打架 |
|
|
36
|
+
| C 速度曲线 | 主俯冲 25f Easing.in(cubic) 吃 82% 行程 → 气垫 20f Easing.out(poly(5)) 走 18% | 切换帧速度骤降 = 气垫顶住的体感;82/18 比例比帧数更关键 |
|
|
37
|
+
| C 氛围 | 全场包 CameraMotionBlur(shutterAngle 220, samples 9);俯视期页面下方椭圆软影随落地收干 | 软影卖"悬空高度";blur 卖速度,缺一维就假 |
|
|
38
|
+
|
|
39
|
+
## 已知坑
|
|
40
|
+
- demo 在灰阶/占位素材上调校通过——参数是调校起点非实战定稿,
|
|
41
|
+
首次实战须以真实素材回验
|
|
42
|
+
- 三式都吃真实截图分层/高清纹理:A 需页面按构件切块截图(顶栏/侧栏/
|
|
43
|
+
卡各自独立成图,整页一张图炸不开);C 终点是特写,素材先过
|
|
44
|
+
hires-rasterize-3d-text 技法卡(Q2);B 前景主体全程被盯着看,必须高清
|
|
45
|
+
- B 式眩晕感强,一支片 ≤1 次;且背景运动首尾必须有静止锚(demo 里
|
|
46
|
+
首尾 15f hold)——没有静止参照,观众不知道是背景在动还是自己晕了
|
|
47
|
+
- C 式易错:Remotion 无 Easing.quint,写 Easing.poly(5)(本批实渲踩坑)
|
|
48
|
+
- A 式构件布局要绝对定位复刻原页面网格(demo 里 8 层复刻 FakeDashboard
|
|
49
|
+
A),流式布局做不了 per-构件 translateZ
|
|
50
|
+
|
|
51
|
+
## 参考实现
|
|
52
|
+
demos/space-camera-moves/
|
|
53
|
+
(DroneDiveLanding.tsx / ExplodedView.tsx / SnorricamLock.tsx)
|