Communitygithub.com

VYBE 动态设计

为 VYBE / HyperFrames 视频打造动态设计工艺 — 涵盖动画原理、缓动与时序、编排与交错、场景转场、摄像机运动及视觉效果(模糊、辉光、遮罩、颗粒、漏光),以可定位的 GSAP 配方形式呈现。用于设计和修复视频中各元素的运动方式。

VYBE 动态设计 是什么?

该技能专为 VYBE 和 HyperFrames 视频制作环境中的动态设计而设计,提供一套专业的动画原则和实践指南。其核心是让每一种运动都传达关于主题的信息,强调编排而非单纯动画,并遵循十条严格的规则,包括:使用 `expo.out` 获得高级感、使用 `back.out` 获得趣味性,保持缓动风格的连贯性;采用交错揭示来表现层级关系;以及确保动作重叠以实现自然流畅的效果。技能配套了四个参考文件,分别详细介绍了动画原理、14 种转场手法、摄像机移动技巧(如推拉、摇臂、轨道和焦点偏移)以及视觉效果(如发光、胶片颗粒和运动模糊)。所有 GSAP 动画配方均遵循可定位原则,使用 `fromTo` 方法创建入场效果,利用 `clipPath` 和 `filter` 属性,并严格避免修改布局属性。该技能支持在 Claude Code、Coder 等支持 HyperFrames 的 AI 代理环境中使用,是确保视频动态设计高质量、专业且风格一致的重要工具。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/SJbuilds04/VYBE/tree/HEAD/skills/vybe-motion-design

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

VYBE 动态设计 是做什么的?

运动即信息。每一次移动都必须传达出关于主题的某种信息—— 重量、速度、自信、惊奇——否则就不应该存在。

所有配方均为 HyperFrames 设计:每个合成使用一条暂停的 GSAP 时间线, 确定性强,可定位。使用 fromTo 处理入场,transform + opacity + clipPath + filter 处理动画,绝不使用布局属性。

参考文件(按需加载)

文件用途
references/animation-principles.md12 项原则在 UI/排版/图形中的应用,缓动词汇,时间表
references/transitions.md14 种转场配方及 GSAP 代码,以及每种的使用场景
references/camera-movements.md推拉、平移、升降、环绕、穿越式缩放、甩镜、焦点偏移、视差 — 2D 和 3D
references/visual-effects.md辉光、泛光、漏光、胶片颗粒、色差分离、运动模糊、遮罩、变形

十条规则

  1. 编排,而非单纯动画。 规划谁先移动,谁回应,谁静止。一个场景就是一句话:主语 → 谓语 → 宾语。
  2. 缓动即性格。 expo.out = 高级感/自信;back.out = 趣味性;power2.inOut = 机械感相机;sine.inOut = 呼吸感/氛围;none = 持续漂移。每部影片选用 2-3 种缓动并保持一致。
  3. 快进慢停。 大多数入场:0.5-0.9 秒,在前 30% 的时间内完成 80% 的位移。
  4. 出场比入场更快(约 60%)并使用 .in 缓动。
  5. 交错揭示层级 — 字母间 0.04-0.08 秒,单词间 0.1-0.18 秒,列表项间 0.3-0.6 秒。切勿对所有元素使用相同的交错时间。
  6. 重叠动作。 下一个元素在前一个元素完成之前开始(使用位置参数 "<0.2" / 绝对时间)。顺序执行 = 机械感。
  7. 预留阅读时间。 约每词 0.3 秒 + 0.5 秒;结尾行 ≥2 秒。
  8. 始终有动态。 在保持期间,使用慢速推进(scale 1→1.04)、漂移或光线扫掠防止画面沉寂——但每层只能有一个氛围动画。
  9. 变换转场。 每部影片最多使用一次黑场过渡。优先使用运动剪辑、匹配剪辑、遮罩擦拭、穿越式缩放、共享元素。
  10. 尊重节拍。 如果有音乐,每次主要变化都应落在节拍上(60/bpm);重音落在正拍上,预备动作在节拍前开始。

可定位的 GSAP 模式

const tl = gsap.timeline({ paused: true });
// 入场:由模糊到清晰的上升效果(高级感)
tl.fromTo("#s1-title", { opacity: 0, y: 40, filter: "blur(12px)" },
  { opacity: 1, y: 0, filter: "blur(0px)", duration: 0.9, ease: "expo.out" }, 0.2);
// 遮罩擦拭揭示效果(编辑风格)
tl.fromTo("#s1-line", { clipPath: "inset(0 100% 0 0)" }, { clipPath: "inset(0 0% 0 0)", duration: 0.8, ease: "expo.inOut" }, 0.5);
// 逐字形扩散(替代 letterSpacing —— 因为 letterSpacing 会被 lint 拒绝)
gsap.utils.toArray("#s1-word .ch").forEach((c, i, all) => {
  const off = (i - (all.length - 1) / 2) * -30;
  tl.fromTo(c, { x: off, opacity: 0 }, { x: 0, opacity: 1, duration: 1, ease: "expo.out" }, 1 + Math.abs(i - (all.length - 1) / 2) * 0.05);
});
// 数字递增(可定位:onUpdate 在每次定位时都会执行)
const n = { v: 0 }, el = document.getElementById("s1-num");
tl.fromTo(n, { v: 0 }, { v: 97, duration: 1.4, ease: "expo.out", onUpdate: () => (el.textContent = Math.round(n.v)) }, 1.2);
// 保持动态
tl.fromTo("#s1-stack", { scale: 1 }, { scale: 1.04, duration: 3, ease: "sine.inOut" }, 0);
window.__timelines["s1"] = tl;

拆分文本:将单词/字母包裹在 <span class="w|ch" style="display:inline-block"> 中(transform 在行内元素上无效)。保持空格在 span 之外。

交付前检查

  • 相邻两个场景不得使用相同的入场动画。
  • 同一元素不得在时间重叠区域对同一属性进行两次补间。
  • npx hyperframes check 中的 Motion 部分应无问题;如需编排审计,请运行随 HyperFrames 的 /hyperframes-animation 技能一起安装的 animation-map.mjs 脚本。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

SJbuilds04/vybe-audio-design

Sound design and music direction for VYBE / HyperFrames videos — choosing music by mood and arc, spotting sound effects to picture, voiceover direction and provider choice (HeyGen, ElevenLabs, Kokoro, Gemini), ducking, loudness targets, beat-synced editing and caption sync. Use when planning or fixing the audio of a video, when a video feels silent, cheap, cluttered or out of sync, or when choosing a voice or music provider.

SJbuilds04/vybe-cinematic-3d

Deterministic Three.js / WebGL for HyperFrames videos — 3D scenes, particle systems, procedural geometry, product turntables, scientific models (molecules, planets, black holes), lighting rigs, camera paths and camera cuts, rendered frame-exactly from HyperFrames time. Use when a VYBE storyboard calls for 3D, depth, particles, space, a rotating product, a data sculpture, or when a Three.js layer renders black, flickers or differs between renders.

SJbuilds04/vybe-image-to-motion

Animate a still image into video. Analyzes the image, plans the motion, and picks the right technique — programmatic 2.5D (camera moves, depth-map parallax, subject/background layer separation, particles, fog, light) or AI image-to-video (Runway Gen-4.5 / Veo 3.1 / Kling 3.0, Luma Ray 3.2, Gemini Omni Flash) for organic motion like walking, faces, water or hair — then composes the result in HyperFrames with music, SFX and text. Use when someone supplies an image and asks to animate it, bring it

SJbuilds04/vybe-typography

Typography for motion — type systems, font pairing with bundled OFL fonts, scale and readability rules for video, kinetic typography techniques, per-letter/word animation, captions design and safe zones, in HyperFrames compositions. Use when choosing fonts, sizing or animating text in a VYBE video, building kinetic type or lyric videos, styling captions, or when text overlaps, clips, is unreadable or looks generic.

相关技能