跳到主要内容

自定义效果

如果设置里没有你想要的效果,就让代理来做:每次点击时泛起的波纹、像呼吸一样明暗变化的暗角、最后几秒淡出到黑色。代理把效果写成一个小小的 GPU 着色器,OpenScreen 会在预览以及每次导出(MP4 和 GIF)中绘制它,Windows、macOS 和 Linux 上都是如此。

效果来自代理:内置聊天,或者 Claude Code、Codex 等 MCP 客户端(参见 AI 编辑)。效果进入项目后,你可以在编辑器里自己调整。

请求一个效果​

描述你想看到什么,以及在什么时候出现,例如“每次点击都有波纹”“最后两秒淡出到黑色,字幕也一起”。代理会写出效果、把它放到时间轴上,并且可以用 getFrames 查看结果,无需导出视频。

效果知道光标在哪里、每次点击落在哪里,知道经过缩放和布局之后录屏和摄像头在视频中的位置,也知道当前时间。因此,光晕可以跟随鼠标,波纹可以从每次点击的位置泛起,无论缩放把它移到了哪里。

在编辑器中​

项目里一有效果,时间轴上就会在全屏摄像头区间下方出现效果专用的一行。每个区块都显示效果的名称。可以像其他区间一样移动、调整长度、复制粘贴或删除它,Ctrl/Cmd + Z 可以撤销修改。同一时间只播放一个效果:粘贴到另一个效果上会被拒绝。

点击区块即可打开它的检查器:

  • 每个设置对应一个控件:代理为效果提供的每个设置,会显示为滑块、开关、颜色或点。
  • 作用于,即效果绘制在哪里:
    • 画面(默认):录屏、摄像头、光标和背景,位于你的标注和字幕之下,文字保持清晰可读。
    • 文字:只作用于标注和字幕。
    • 两者:整个画面,包括文字,例如连字幕一起覆盖的淡出到黑色。
  • 开销:轻、中、重或很重(参见下文)。
  • 代码:只读的着色器代码,附带复制代码按钮。要修改它,请让代理来改。

把复制的效果粘贴到另一个项目时,它的代码也会一起带过去。

开销​

开销根据代码估算:统计效果为每个像素读取画面的次数。同一份代码在任何电脑上都得到相同的级别。不会因为开销而拒绝任何效果:效果越重,适合它的片段就越短。

级别典型效果适合
轻暗角、调色、点击波纹整个视频
中色差、轻微模糊、故障效果几十秒
重强模糊、散景一个转场、一个高光时刻
很重光线步进、模拟几秒钟:导出依然准确但更慢,在性能较弱的 GPU 上预览可能会变慢

效果无法编译时​

代理的代码会在效果被接受之前编译。编译失败的代码会连同编译器的错误一起被拒绝,项目保持不变。

在另一台电脑上打开的项目,仍可能遇到判断不同的编译器。这时效果不会被绘制,它的检查器会显示无法在这台电脑上编译以及错误信息,导出则会在没有该效果的情况下继续。

他人的项目​

项目会带着其中效果的代码,所以打开别人的项目会运行不是你写的代码。这段代码只在 GPU 上运行,无法访问你的文件、网络或应用的内存。

面向代理开发者​

相关工具是 addEffect、setEffect、setEffectDefinition 和 getEffect,用 removeModifier 移除效果。完整的约定,也就是 effect(uv) 函数、它能读取的内容及其规则,在 MCP 资源 openscreen://effects/contract 中。