Communitygithub.com

broomva/skills

使用液态玻璃美学——黑暗虚空背景、3D透视浮动UI面板、粒子效果、弹簧动画和电影节奏,制作精美的产品发布视频。基于Remotion构建,使用Imagen 4.0生成帧画面,Veo 3.1生成B-roll素材。

skills 是什么?

此技能用于指导AI Agent(如Claude Code或Cursor)生成电影级产品发布视频。它定义了一套完整的液态玻璃美学系统,包含黑暗虚空背景、3D透视浮动玻璃面板、粒子场和弹簧动画等核心视觉原则。该技能支持六种标准场景类型(标题卡、输入场景、分屏面板、产品演示、细节缩放、CTA品牌卡),并额外扩展了两种AI增强场景:使用Imagen 4.0生成的AI电影帧和Veo 3.1生成的AI视频B-roll。技能提供了详细的Remotion项目结构、组件参考(GlassPanel、ParticleField、TypewriterText)和完整的制作流水线,从故事板、资产生成(截图、AI图像/视频)、Remotion合成、渲染到后期处理和分发。用户可通过触发词如'launch video'、'liquid glass video'、'demo video'等调用该技能。

兼容平台~Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/broomva/skills/tree/HEAD/skills/video/launch-video

在你喜欢的 AI 中提问

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

文档

发布视频 — 液态玻璃产品展示

使用液态玻璃美学制作电影级产品发布视频:黑暗虚空、3D浮动面板、粒子效果、弹簧动画,以及自信的节奏。

复合技能

技能作用
/remotion-best-practices合成结构、spring()、<Sequence>、渲染管线
/content-creationAI资产生成(Imagen 4.0, Veo 3.1)
/arcan-glassBroomVA品牌令牌(AI Blue, dark-first palette)
/google-veo电影级B-roll生成提示词
/blog-post分发管线(发布到 X、LinkedIn、Instagram)

液态玻璃美学

核心视觉原则

  1. 黑暗虚空背景 — 纯黑(#000000)或接近纯黑(#0A0A0A)。基底无渐变。内容悬浮于黑暗中。
  2. 3D透视面板 — 截图和UI渲染以8-15°倾斜,并使用perspective(1200px)。绝不平面。始终浮动。
  3. 玻璃材质 — 面板具有磨砂边缘、微妙的反射、带发光的圆角、半透明边框。
  4. 粒子场 — 微小的浮动粒子(2-4px,低不透明度,缓慢漂移)填充虚空。营造深度和生机感。
  5. 弹簧运动 — 所有进入/退出使用Remotion spring()。绝不使用CSS过渡。绝不线性。自然、自信。
  6. 自信的节奏 — 每个场景至少持续3-5秒。无快速剪辑。让每个画面有呼吸的空间。
  7. 极简排版 — 无衬线字体(Inter、SF Pro或系统默认),白字黑底,居中。每个标题卡最多8个单词。

调色板

令牌值用途
void#000000背景
panel-bgrgba(20, 20, 25, 0.85)玻璃面板填充
panel-borderrgba(255, 255, 255, 0.08)玻璃边缘
panel-glowrgba(59, 130, 246, 0.15)边缘发光(AI Blue)
text-primary#FFFFFF标题文本
text-secondaryrgba(255, 255, 255, 0.6)字幕、URL
accent#3B82F6AI Blue高亮
success#22C55E勾选标记、积极状态
particlergba(255, 255, 255, 0.15)背景粒子

3D面板CSS(Remotion)

const panelStyle: React.CSSProperties = {
  perspective: '1200px',
  transform: `rotateY(-8deg) rotateX(5deg)`,
  borderRadius: 16,
  border: '1px solid rgba(255, 255, 255, 0.08)',
  boxShadow: `
    0 25px 50px rgba(0, 0, 0, 0.6),
    0 0 30px rgba(59, 130, 246, 0.1),
    inset 0 1px 0 rgba(255, 255, 255, 0.05)
  `,
  background: 'rgba(20, 20, 25, 0.85)',
  backdropFilter: 'blur(20px)',
  overflow: 'hidden',
};

弹簧配置

import { spring, useCurrentFrame, useVideoConfig } from 'remotion';

// 标准进入
const entrance = spring({
  frame,
  fps,
  config: { damping: 15, stiffness: 80, mass: 0.8 },
});

// 微妙漂移(用于浮动面板)
const drift = spring({
  frame: frame - delay,
  fps,
  config: { damping: 200, stiffness: 10, mass: 2 },
  durationInFrames: 120,
});

场景类型

1. 标题卡

时长: 3-4秒 内容: 产品名称或标语,居中,白字黑底 动画: 淡入,并带有细微的缩放弹簧(0.95 → 1.0) 示例: "使用Gemini构建您的创意"

2. 提示词 / 输入场景

时长: 4-6秒 内容: 聊天输入或终端提示词,倾斜的3D面板 动画: 面板从下方弹簧进入,文本打字机效果 技术: 使用带有3D CSS变换的<Img>截图,通过基于帧的字符串切片实现打字机效果

3. 分屏面板场景

时长: 4-5秒 内容: 两个并排的UI面板(例如,提示词 + 代码输出) 动画: 面板从相反两侧弹簧进入,粒子在它们之间 技术: 两个带有相反rotateY变换的<Img>组件

4. 产品演示场景

时长: 5-8秒 内容: 完整的用户界面作为浮动玻璃面板 动画: 缓慢漂移旋转(微妙的rotateY振荡),电影级缩放 技术: 使用带有动画scale和rotateY的<Img>或<OffthreadVideo>

5. 细节缩放场景

时长: 3-4秒 内容: 放大到特定的UI元素或功能 动画: 从完整视图到裁剪细节的弹簧缩放 技术: 面板图像上的动画scale + translate

6. CTA / 品牌卡

时长: 3-4秒 内容: 标志 + URL 或安装命令 动画: 淡入,保持,淡出 技术: 居中文本,品牌图标,微妙发光

7. AI电影帧(Imagen 4.0)

时长: 3-5秒 内容: 在GlassPanel内展示AI生成的英雄渲染或概念艺术 动画: 弹簧进入,缓慢漂移旋转,微妙缩放 技术: 通过Imagen 4.0生成,放入public/目录,在GlassPanel内使用带有3D变换的<Img src={staticFile('render.png')} /> 何时使用: 抽象概念、架构图、情绪视觉——任何受益于AI生成图像而非截图的内容

<GlassPanel rotateY={-10} rotateX={6} delay={5}>
  <Img src={staticFile('imagen-hero-render.png')} style={{ width: '100%' }} />
</GlassPanel>

8. AI视频B-roll(Veo 3.1)

时长: 4-8秒 内容: 电影级AI生成视频片段,作为过渡或氛围 动画: 在GlassPanel后面或内部播放,可选择叠加文字 技术: 通过Veo 3.1生成,使用ffmpeg -movflags +faststart预处理,在Remotion中使用<OffthreadVideo>

// 全出血电影级B-roll(场景之间)
<OffthreadVideo
  src={staticFile('veo-broll-corridor.mp4')}
  style={{ width: '100%', height: '100%', objectFit: 'cover' }}
/>

// 玻璃面板内的B-roll
<GlassPanel rotateY={-5} rotateX={3}>
  <OffthreadVideo
    src={staticFile('veo-product-demo.mp4')}
    style={{ width: '100%', borderRadius: 12 }}
  />
</GlassPanel>

Veo 3.1 B-roll提示模式:

[镜头运动], [主体/环境], [动作/运动], [光照+情绪]。
深色背景,[强调色]发光。电影级,专业。[宽高比]。

何时使用: 场景组之间的过渡、氛围开场/尾声、静态截图无法满足的动感产品演示。

预处理(<OffthreadVideo> + parseMedia() 必需):

ffmpeg -i veo-clip.mp4 -c:v libx264 -crf 18 -movflags +faststart -r 30 processed.mp4

混合合成模式

最精美的视频将三种资产类型组合在一起:

标题卡(文本)
  → GlassPanel中的Imagen帧(概念艺术)
    → Veo B-roll过渡(4秒电影级)
      → GlassPanel中的截图(产品演示)
        → Remotion动画数据(管线节点、文件树)
          → Veo B-roll尾声(氛围)
            → CTA卡(文本)

规则: Remotion控制时间、过渡和文本。AI资产提供视觉丰富度。绝不让AI控制节奏——那是Remotion的工作。

制作流水线

1. 故事板 → 定义场景(类型1-8)、持续时间和内容
2. 资产 → 生成/捕获所有视觉资产
   a. 截图 — 通过 agent-browser 或手动截取产品UI
   b. Imagen 4.0 — 英雄渲染、概念艺术、抽象视觉
      → ai.models.generateImages({ model: 'imagen-4.0-fast-generate-001', prompt: '...' })
      → 保存到 public/ 目录
   c. Veo 3.1 — 电影级B-roll片段(每个4-8秒)
      → ai.models.generateVideos({ model: 'veo-3.1-fast-generate-preview', prompt: '...' })
      → 预处理: ffmpeg -i clip.mp4 -c:v libx264 -movflags +faststart -r 30 processed.mp4
      → 保存到 public/ 目录
3. 合成 → 构建Remotion合成
   - 使用带 premountFor 的 <Sequence> 进行预加载
   - 使用 <Img> + staticFile() 处理图片(绝不使用 <img>)
   - 使用 <OffthreadVideo> + staticFile() 处理Veo片段(绝不使用 <video>)
   - 使用 GlassPanel + spring() 处理3D变换和进入动画
   - 使用 ParticleField 作为背景层
   - 使用 Subtitle 组件进行文字叠加
4. 渲染 → npx remotion render src/Root.tsx CompositionId out/video.mp4
5. 后处理 → 如有需要,分别添加音频
   - ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac final.mp4
6. 审阅 → /creative-review 根据样式简报评分输出(目标:≥75)
7. 分发 → 通过 /blog-post 发布管线推送至平台

Remotion项目结构

launch-video/
├── src/
│   ├── Root.tsx                 # registerRoot
│   ├── Composition.tsx          # 主合成,包含场景的<Sequence>
│   ├── scenes/
│   │   ├── TitleCard.tsx        # 场景类型 1
│   │   ├── PromptScene.tsx      # 场景类型 2
│   │   ├── SplitPanel.tsx       # 场景类型 3
│   │   ├── ProductDemo.tsx      # 场景类型 4
│   │   ├── DetailZoom.tsx       # 场景类型 5
│   │   └── CTACard.tsx          # 场景类型 6
│   ├── components/
│   │   ├── GlassPanel.tsx       # 3D透视玻璃材质面板
│   │   ├── ParticleField.tsx    # 背景粒子系统
│   │   ├── TypewriterText.tsx   # 基于帧的打字机动画
│   │   └── SpringFade.tsx       # 可复用的弹簧淡入包装器
│   └── styles/
│       └── tokens.ts            # 液态玻璃颜色/间距令牌
├── public/                      # staticFile() 资产(截图、渲染)
├── package.json
└── remotion.config.ts

粒子场组件(参考)

const ParticleField: React.FC<{ count?: number }> = ({ count = 40 }) => {
  const frame = useCurrentFrame();
  const particles = useMemo(() =>
    Array.from({ length: count }, (_, i) => ({
      x: (i * 37 + 13) % 100,
      y: (i * 53 + 7) % 100,
      size: 2 + (i % 3),
      speed: 0.1 + (i % 5) * 0.05,
      opacity: 0.05 + (i % 4) * 0.04,
    })), [count]);

  return (
    <AbsoluteFill>
      {particles.map((p, i) => (
        <div key={i} style={{
          position: 'absolute',
          left: `${p.x}%`,
          top: `${(p.y + frame * p.speed) % 110}%`,
          width: p.size,
          height: p.size,
          borderRadius: '50%',
          background: `rgba(255, 255, 255, ${p.opacity})`,
        }} />
      ))}
    </AbsoluteFill>
  );
};

GlassPanel组件(参考)

const GlassPanel: React.FC<{
  children: React.ReactNode;
  rotateY?: number;
  rotateX?: number;
  scale?: number;
}> = ({ children, rotateY = -8, rotateX = 5, scale = 1 }) => (
  <div style={{
    transform: `perspective(1200px) rotateY(${rotateY}deg) rotateX(${rotateX}deg) scale(${scale})`,
    borderRadius: 16,
    border: '1px solid rgba(255, 255, 255, 0.08)',
    boxShadow: '0 25px 50px rgba(0,0,0,0.6), 0 0 30px rgba(59,130,246,0.1), inset 0 1px 0 rgba(255,255,255,0.05)',
    background: 'rgba(20, 20, 25, 0.85)',
    overflow: 'hidden',
    transition: 'none',
  }}>
    {children}
  </div>
);

质量检查清单

  • 背景为纯黑或接近纯黑(无渐变)
  • 所有面板使用3D透视变换(绝不使用平面截图)
  • 所有进入动画使用弹簧动画(无CSS过渡)
  • 背景中存在粒子场
  • 每个场景最少持续3-5秒(无快速剪辑)
  • 排版:无衬线字体,白色,居中,每个标题卡≤8个单词
  • 玻璃材质:边框发光、阴影、圆角、半透明
  • 存在音频(氛围电子乐或旁白)
  • 总时长20-45秒
  • 最终渲染使用-movflags +faststart

Individual skills in this repo

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

broomva/skills

Local TTS, voice cloning, voice design, and video dubbing via the OmniVoice Studio MCP server (open-source ElevenLabs alternative; nothing leaves the machine, runs on MPS/CUDA/CPU). Use when: (1) generating speech from text in any of 646 languages, (2) cloning a voice from a 3-second reference clip, (3) designing a voice by gender/age/accent/pitch/style, (4) dubbing a video into another language, (5) listing voice profiles or personality presets, (6) producing narration where privacy, cost, or absent API keys matter, (7) non-English narration where Edge TTS/kokoro fall short, (8) batch audio for blog posts or content pipelines. Triggers: 'omnivoice', 'voice clone', 'clone this voice', 'tts', 'narrate', 'generate speech', 'voice synthesis', 'dub video', 'voice design', 'local tts', 'multilingual voice', 'narrate this post', 'elevenlabs alternative'.

broomva/skills

>- Speak an explanation out loud while working in any project — tiered text-to-speech with a pluggable backend (ElevenLabs by default and quota-guarded, macOS `say` via `--fast` for free instant local speech, local OmniVoice as an unlimited private tier). Markdown-aware, so code fences, URLs and deep paths collapse to short spoken placeholders instead of being dictated character by character, while snake_case identifiers survive intact so the listener can still search for them. Every utterance is saved to disk for later replay. Also carries a **talk mode** toggle: turn it on and the agent speaks a full readback of every turn, for as long as that session lasts — the whole response, not a summary of it, with `brief` and `marker` levels for when you want less. Talk mode is off by default and scoped to the single session that enabled it, so parallel agents in other worktrees stay silent. Use when the user asks to hear something rather than read it — an explanation of a change, a walkthrough of what just happen...

broomva/skills

Shop Tiendas D1 (Colombia, d1.com.co) from the command line — search the catalogue, resolve your nearest physical store, price a basket against that store's real stock, and quote delivery. D1 runs VTEX IO (account `d1tiendas`), so this drives its public storefront API with no admin key at all — catalogue and cart work fully anonymously, and a one-time emailed code unlocks order history. Handles the two traps that make naive D1 automation wrong — availability is regionalized (an unregioned query reports a national catalogue nobody can actually buy from) and prices arrive in two different units (search reports whole pesos, checkout reports hundredths, a silent 100x). Builds and prices baskets; it deliberately cannot pay, handing a checkout URL to a human instead. USE WHEN the user wants to find D1 products or prices, check whether D1 delivers somewhere, build or cost a D1 grocery basket, compare D1 items, or review their D1 orders. NOT FOR other Colombian retailers (Éxito, Jumbo, Ara, Alkosto), and not for c...

broomva/skills

Stateful, local-first household toxics inventory + swap engine. Identify the items in a home that carry endocrine disruptors and persistent chemicals (BPA/BPS, phthalates, PFAS/PTFE, parabens, flame retardants, VOCs, microplastics), score each by *real* exposure (severity x presence x how it's used x condition), and track the swap to a safer alternative from "flagged" -> "sourced" -> "swapped". Ships a grounded, cited knowledge graph of ~20 hazards, ~40 item-classes, and ~40 alternatives. Hands sourcing off to the `procurer` skill. The skill's state is the source of truth — the agent is the app.

broomva/skills

Tekton — the shared architecture-intent substrate for co-designing systems with the agent. One typed graph across six tiers (system / journey / data / infra / decisions / qualities); views are queries, not separate diagrams. The canonical artifact is a diff-friendly YAML model both human and agent read and write; it renders to Mermaid (agent-legible, GitHub-native) and a self-contained tabbed HTML viewer (human-visual). Cross-tier traceability (`tekton query <from> <to>`) answers "which infra does this user-journey step touch?" as a path query. USE WHEN: designing or thinking deeply about architecture, a system, a data model, user journeys/flows, or a technical plan WITH the agent; when a Category-C HTML doc isn't enough because you need to see AND edit AND traverse the design across tiers; "let's design X", "architect this", "model the system", "draw the flow", "how does this fit together", "diagram this", "/tekton". NOT FOR: a one-off throwaway diagram (use Mermaid inline); prose-only ADRs (write the ADR...

broomva/skills

Generate a polished Remotion video and X thread showcasing the full agent skills inventory. Use when creating social media content about skills, rendering category-based skill visualizations, or producing animated showcases of agent capabilities. Triggers on "skills video", "showcase skills", "skills thread", "render skills", "social content for skills", or requests to visualize the skills inventory.

broomva/skills

OpenCaptions extension for Content Engine — adds intent-driven CWI (Caption With Intent) captions to the post-production pipeline. Hooks into the grade → caption → final stage. Generates captions that understand video intent (pitch, volume, emotion, emphasis) and style themselves accordingly with variable font weight, size, and color. Uses the OpenCaptions CLI or MCP server. Triggers on: 'add captions', 'opencaptions', 'CWI captions', 'intent captions'.

相关技能