关于 oversized-cursor
面向动态设计的技能,指导在发布视频中使用超大光标引导视线并触发动作,涵盖尺寸、进出路径、点击效果与场景衔接。
主要功能
- 01从画外进入并离场
- 02光标尖端对准目标并点击
- 03点击触发场景动作
- 04光标跨剪辑衔接
适用场景
- 01引导观众关注发布视频中的内容
- 02呈现点击触发界面变化的过程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ heygen-com/ hyperframes --skill oversized-cursor安装后在 Claude Code 中输入/oversized-cursor确认已加载。
详细介绍
超大光标 — 视线引导者
刻意放大的 macOS 风格指针,让它在画面中成为_醒目的主角_:从屏幕外进入,引导观众的视线移向下一个焦点,点击触发接下来发生的事情,然后离开。已在多部发布宣传片中经过实战验证。
存在的意义。 大幅移动光标是发布视频中成本最低、效果最高的动态元素之一:只需一个元素,只做变换补间,就能 (1) 在原本会显得沉闷的场景中引导视线扫过屏幕,(2) 为变形/转场提供因果触发(“是点击触发的”),以及 (3) 在开启新场景或复杂动画序列时,将视线从停滞状态中引出。越大越好——实际尺寸的光标在视频中会小到看不见。
尺寸与外观(统一规范)
- 全画幅场景:
7cqw(在 1920 分辨率下约为 134px)。模拟界面内/小画幅变体:4.6–5.5cqw。绝不能更小。 - 所有地方都使用同一种 SVG 箭头几何形状。两种经过验证的填充样式——白色主体 + 黑色描边,或
黑色主体(
#1c1c1c)+ 白色描边(1.4px)。根据场景对比度选择,并在整部影片中保持一致。 - 品牌主题光标(高招)。 macOS 箭头是默认选项,不是硬性规定。如果主体品牌有鲜明的光标标识——例如协作设计工具的彩色多人协作箭头及姓名标签(Figma 风格)、创意套件的精确十字准星,或有辨识度的产品指针——就使用那个光标:对于熟悉该产品的人来说,它能立即传达品牌语言。其他规则一律不变(超大尺寸、从画面外进入/离开、尖端对准目标、点击触发),而带姓名标签的变体会作为一个刚性整体移动(标签跟随在箭头后方)。仅当这种标识确实能让人联想到品牌时才使用;没人认得的光标只是一支奇怪的箭头——默认改用 macOS 光标。
filter: drop-shadow(0 4px 6px rgba(0,0,0,.3))、pointer-events: none、z-index高于所有场景内容、will-change: transform。
#root .cursor {
position: absolute;
left: 48%;
top: 115%; /* off-screen below — the resting pose IS off-screen */
width: 7cqw;
height: 7cqw;
z-index: 20;
filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.3));
pointer-events: none;
will-change: transform;
}
入场规则 — 从画面外进入,绝不凭空显现
光标始终从画面外进入(标准做法:从下方进入,top:115–120%),并以一次减速滑动移动到第一个目标。它必须_让人感觉是进入了这个空间_。绝不要在静止位置淡入,也不要用遮罩揭示——这看起来像故障(这是经过反复观察确认的真实失误模式)。
- 默认路径:沿 y 轴直线上移 到目标——不要走零碎的斜线。若斜向进入本身就是叙事的一部分(朝偏离轴线的目标进入),可以采用斜线,但无论哪种情况,都必须沿一条连续路径移动。
duration: 0.4–0.92s、ease: power3.out,并在 fromTo 上设置immediateRender: false。
tl.fromTo(
cursor,
{ left: "48.6%", top: "115%" },
{ left: "48.6%", top: "55%", duration: 0.85, ease: "power3.out", immediateRender: false },
0.25,
);
尖端对准目标与点击动作
热点是箭头的尖端,不是方框中心。让尖端落在目标中心,并以尖端为基准进行所有按压缩放:transformOrigin: '21% 14%'(适用于 viewBox 为 24 个单位的标准箭头路径)。
点击 = 非对称压缩/展开(1:2 的比例看起来才像真实点击):
tl.to(cursor, { scale: 0.84, duration: 0.1, ease: "power2.in", transformOrigin: "21% 14%" }, t);
tl.to(
cursor,
{ scale: 1, duration: 0.22, ease: "power2.out", transformOrigin: "21% 14%" },
t + 0.1,
);
目标的反馈是独立的并行动画补间(按钮:scale: 0.94 + 按压时的颜色/阴影变化,并在相同的 t 开始)。仅光标点击(例如聚焦文本输入框)不应引发目标反馈。目标侧可配合 cursor-click-ripple / press-release-spring 使用。
点击触发下一拍
绝不要让变形、输入、窗口变换或定义场景的动画自行_开始_。将光标停在触发点上,并让点击在同一帧触发动画:
- 点击 ▸ 菜单/子菜单级联展开、切换开关
- 点击 ▸ 在输入框中开始输入
- 点击 ▸ 撰写框向下变形/窗口缩小
- 点击 ▸ Logo 点亮/启动飞行
- 点击 ▸ 播放状态切换 + 产品模拟界面唤醒动态效果
在较长且不由光标主导的片段中(输入、旁白),光标应移到一旁(0.5–0.9s,power2.out)——绝不能冻结在动作上方,也不要无意义地晃动。
退出规则与跨场景衔接
两种获准的退出方式——都必须通过实体移动,绝不能原地淡出:
- 离开画面:沿最近的边缘加速离开,使用
power2.in(left:'118%'、left:'-12%'或top:'116%'),持续 0.5–0.7s。 - 截断曲线衔接:在硬切前最后约 0.3s,光标开始加速(
power2.in)朝向 下一场景的第一个点击点,走完该路径的前约 1/3;下一个构图通过gsap.set将光标设在衔接姿势,然后以匹配的速度使用power2.out继续移动。光标本身 成为连接转场断点的载体:
// scene A, last 0.3s — start the journey:
tl.to(cursor, { left: "40.7%", top: "63.7%", duration: 0.3, ease: "power2.in" }, CUT - 0.3);
// scene B, t=0 — finish it at matched velocity:
gsap.set(cursorB, { left: "40.7%", top: "63.7%" });
tl.to(cursorB, { left: "22%", top: "45%", duration: 0.6, ease: "power2.out" }, 0);
检查清单
- 全画面时 ≥ 7cqw(模型内部为 4.6–5.5cqw)——不确定时选大一些
- 沿单一连续轨迹从画外进入(不淡入/遮罩显现)
- 尖端落在目标中心;按下时以
transformOrigin: '21% 14%'为轴心转动 - 每次点击都会在同一帧触发效果
- 在不属于它的节拍期间移至一旁;静止时不晃动
- 通过实体移动退出(离开画面或截断曲线衔接)——不原地淡出