For the complete documentation index, see llms.txt. This page is also available as Markdown.

摄像机与后期处理

摄像机

每个玩家一开始都会有一个会随着他们移动而跟随的摄像机。要调整缩放或把摄像机移动到其他位置,我们提供了一组 API。

在 CSL 中,摄像机是一个按玩家分配的结构体,位于 玩家:

  • camera.follow_player: 布尔值:当 true时,引擎会让摄像机持续跟随玩家。

  • camera.position: v2:摄像机在世界空间中的中心(在以下情况下使用 follow_player = false).

  • camera.size: 浮点数:缩放量。 数值越大 = 越缩小 (你能看到更多世界内容)。

玩家组件状态会同步,因此请在玩家的 ao_late_update 后面 is_local_or_server():

import "core:ao"

My_Player :: class : Player_Base {
    ao_late_update :: method(dt: float) {
        if is_local_or_server() {
            // 简单的“设定后就不用管”的缩放
            camera.size = 7.0;
        }
    }
}

自定义跟随(偏移 + 平滑)

如果你想要摄像机偏移、过场动画或自定义平滑效果,请关闭 follow_player 并自行驱动 camera.position

渲染器会在 位置尺寸 之间插值。它们只读的上一帧值可用作 position_last_framesize_last_frame.

摄像机还提供 is_visible 针对点、 Rect, Sprite_RendererSpine_Animator的重载。可选的 边距 参数会扩展可见区域。

后期处理

后期处理允许你为摄像机应用视觉效果,例如扭曲、颜色分级以及其他效果,让你的游戏更出彩!

你可以通过两种方式配置后期处理:

  • 在编辑器中配置:通过以下路径设置默认的后期处理栈 Edit → Game Config → Post Processing。这会在使用默认摄像机行为时生效。

  • 通过 CSL 在运行时配置:使用 Post_Processing API 从你玩家的 ao_late_update 方法中动态应用效果。

如果你启用任何效果,All Out 将自动使用 HDR 渲染管线。

CSL 后期处理 API

每一帧调用以下任意函数以应用后期处理效果。当任意 Post_Processing 函数被调用时,它会 覆盖 该帧的编辑器默认设置——因此你必须调用所有希望启用的效果。

函数
配置结构体
字段

Post_Processing.bloom

Bloom_Config

bloom_amount: 浮点数

Post_Processing.color_grade

Color_Grade_Config

color_filter: v3, saturation: 浮点数, contrast: 浮点数

Post_Processing.chromatic_aberration

Chromatic_Aberration_Config

channel_offsets: v3, focal_point: v2

Post_Processing.blur

Blur_Config

directions: 浮点数, quality: 浮点数, size: 浮点数

Post_Processing.film_grain

Film_Grain_Config

strength: 浮点数, noise_scale: 浮点数

Post_Processing.vignette

Vignette_Config

radius: 浮点数, softness: 浮点数

请把这些调用放在一起,以免多个组件争夺全局场景配置:

若要恢复编辑器默认值,请停止调用每个 Post_Processing 函数。

最后更新于