00:00 / 00:00

Persona

特效

特效用于对最终渲染画面进行后期处理。每个特效在 图层 列表上方的场景效果分组中占据独立条目:可从素材库的场景效果分类中添加,通过眼睛图标切换启用状态,选中后即可在列表下方配置参数。未添加的特效不会在列表中显示,亦不会改变现有场景的画面。

作用于整幅画面、独立于单项特效的全局显示参数(色调映射、曝光与 LUT)位于舞台详情面板中环境分区的 画面色调 区域。

每个特效配置均绑定至具体 场景,因此不同的场景可让同一个虚拟形象呈现完全不同的视觉风格。

支持的场景

特效流水线运行于 3D 舞台渲染管线中。场景中只要包含任意图层(模型如 Live2D 或 VRM 虚拟形象、3D 物体,或 2D 图像、视频、网页与文本),或已载入 环境 场景模型,即可添加特效,画面色调配置项也会随之显示。仅包含 2D 物体的场景中,环境分区只显示画面色调,相机、灯光等 3D 配置项保持隐藏。

仅当场景完全为空(既无图层也无环境场景模型)时,素材库中的场景效果分类才会被禁用并提示原因。

特效链

风格化

以下特效同样在后期处理链中运行,但会重塑画面的像素形态,常用于动作强调、转场或特定风格化表达:

场景特效与图层特效

特效系统支持在两个不同层级工作:本页介绍的场景特效作用于最终合成后的整幅画面;而图层特效则直接挂载到具体的模型或物体上,在图层并入主渲染管线之前独立执行(例如单独模糊背景或为道具调色)。

全套 24 项着色器特效中,有 13 项支持作为图层特效使用。关于支持的特效列表、配置方法与适用对象,详见 图层特效。

画面色调

画面色调配置位于环境分区末尾,用于控制全局显示参数。以下项目不作为独立图层添加:

项目说明
色调映射最终显示变换,详见 色调映射与曝光
曝光作用于显示变换之前的整体画面亮度增益
选择 LUT…载入 调色查找表;选择后提供对应的混合强度滑块

渲染顺序

特效的处理顺序在管线中固定,无法通过拖拽或重新排列图层顺序来调整。当同时启用多个特效时,各阶段将按固定次序依次处理前一阶段的输出结果:

  1. 景深:排在最前,是内置流水线中唯一依赖场景深度缓冲(Depth Buffer)的阶段。
  2. Live2D 图层(以及 2D 空间内的图片与视频):排在景深之后(2D 平面素材不含深度信息),但排在所有调色阶段之前,以确保 2D 与 3D 虚拟形象在后续流程中获得统一的调色处理。
  3. 边缘光 → 轮廓描边 → 阴影:基于轮廓剪影的阶段组合。该顺序确保边缘光局限于描边内侧,且阴影能够同时投射描边与边缘光所构成的复合轮廓。
  4. 鱼眼 → 色差:鱼眼弯曲此前的全部画面,色差及之后的阶段保持与屏幕对齐。
  5. 泛光 → 扩散 → 素描
  6. 调色阶段:LUT → 色彩调整 → 色阶 → 色轮 → 色相偏移 → 选择颜色
  7. 渐变:紧随调色阶段之后,避免渐变叠加层被调色滤镜二次着色。
  8. 模糊:位于调色之后,直接对已完成色彩调整的画面进行整体虚化。
  9. 光晕:位于模糊之后,防止光晕效果被模糊算法弱化。
  10. 像素化 与 亚空间干扰™:对画面进行网格像素化或信号故障撕裂。
  11. 雨滴:模拟前景玻璃上的雨滴折射效果。
  12. 胶片颗粒 与 暗角:模拟镜头表面的噪点与边角失光,位于画面最外层。
  13. 编辑器界面元素(置于所有渲染画面之上)。

色调映射与曝光不属于上述特效阶段,它们作为显示变换(Display Transform),在画面输出至屏幕时作用于最终成像。

雨 与 雪 亦不属于后期处理阶段,而是场景中实际存在的 3D 粒子几何体。它们在后期流水线开始前已完成几何绘制,因此上述所有后期阶段均会对其产生影响。

图层特效不参与全局特效链的执行,它们在所属图层合并入主场景之前已在局部渲染阶段完成处理。

性能开销

每个启用的后期特效都会增加一定的画面处理开销。可以在设置中权衡画面画质与渲染帧率:

  • 渲染分辨率:控制整个 3D 舞台渲染的目标画布尺寸;降低分辨率可成比例降低所有全屏特效的计算开销。
  • 特效质量:控制后期特效的抗锯齿与采样精度。

当所有特效均处于关闭状态时,Persona 将完全跳过后期渲染管线,直接输出至主画布,未启用特效的场景不会产生这部分性能开销。

插件 API

上述所有配置项均为 SceneEffects 对象的具体字段,可通过 scene.patch 进行修改,并通过 scene.changed 事件监听读取。其数据结构采用扁平设计(每个特效对应单个独立键名,不包含多层嵌套分组),便于客户端以通用方式遍历整份特效注册表。详见 SDK 参考。

特效是否开启,与它是否出现在场景效果列表中,是两个独立的状态:

  • enabled:特效当前是否开启。
  • environment.effectLayers:内置特效键名数组,决定哪些特效在列表中占有条目。

通过 patch 启用某个特效时,其键名会自动追加到 effectLayers,开发者无需两处都写入。

无论从控制面板、自动化 还是 API patch 开关特效,画面都会在 0.4 秒内平滑淡入淡出,避免视觉突变;自动化修改的参数数值与颜色也会在同样的 0.4 秒内平滑过渡。

图层特效遵循完全相同的数据结构,但直接挂载于图层对象内部:每个模型与物体均包含独立的 effects 与 effectLayers 属性,字段命名与场景级特效完全一致。

最后更新于 2026年11月3日

Tech otakus destroy the world