沙盘引擎 (SEngine)

创意诞生沙盘世界,不止如此想象!

用户工具

站点工具


侧边栏

scripting:client:camera

这是本文档旧的修订版!


📚 Client/Camera

Camera类操作中,开发者可修改玩家本地状态下的相机属性。

有关本文档的属性绝大多数属于场景生命周期,再切换世界\场景后将会重置设定。

📒 Property

📘 Camera.Pos

获取(只读)相机(游戏的眼睛)世界空间位置。

Camera.Pos: Vector

📘 Camera.EulerAngle

获取(只读)相机(游戏的眼睛)世界空间角度。

Camera.EulerAngle: Vector

📘 Camera.Target

设置一个相机跟随对象(Entity),通常用于跟随Character\Vehicle多数情况下应该优先使用此属性

设置为null时则不跟随任何对象,转而跟随Camera.TargetPos坐标。

let target = Character.Find(0);
if(target != null) Camera.Target = target;

📘 Camera.TargetPos

设置一个相机目标位置坐标(Entity),如果TargetPos被激活设置,Camera.Target将会被自动置空(因为两个属性不能同时跟随兼容)。

如果Camera.Target存在对象,即使TargetPos属性不为空,也仍然只会跟随Camera.Target而不是Camera.TargetPos

Camera.TargetPos = Vector(0, 0, 0);

📘 Camera.Offset

设置相机跟随对象的本地坐标偏移,默认为Vector(0, 0, 0),可用于调整相机方向偏移。

Camera.Offset = Vector(0, 2, 0); //相机高度偏上2.0

📘 Camera.SlowMode

设置相机慢动作模式开关,激活后相机将以慢速延迟移动视角。

注意:此模式更适合用于FreeMode自由模式,在漫游模式下鼠标将会差值慢速移动,适合拍摄视频、漫游浏览。

Camera.SlowMode = false; //bool

📘 Camera.FreeMode

设置相机自由漫游模式开关,激活后相机将允许玩家自由移动视角(移动、旋转速度同步受到Camera属性影响)。

注意:此模式优先级最高,启用后将暂时屏蔽其他相机模式,同时开启模式并不会屏蔽控制角色移动(如果存在操纵角色\载具,仍然可进行移动等行为,如果不希望这样,可以自行编写相关冻结逻辑(Frozen),以达到漫游模式时停止控制)。

Camera.FreeMode = false; //bool

📘 Camera.ForwardMode

设置相机向前跟随模式开关,激活后相机将始终向Target正前角度靠近。

注意:此选项需要Camera.Target存在目标才有意义。

Camera.ForwardMode = false; //bool

📘 Camera.AutoDistance

设置相机自动遮挡距离开关,激活后相机在遮挡时保持可见距离(但不会调整实际Distance变量)。

Camera.AutoDistance = true; //bool

📘 Camera.RotateSpeed

设置相机旋转角度的差值速度,默认为2.0

Camera.RotateSpeed = 2;

📘 Camera.VAngle

设置相机跟随的上下角度,默认为50.0(举例:设置90.0则为鸟瞰2D视角)。

Camera.VAngle = 50.0;

📘 Camera.HAngle

设置相机跟随的横向角度,默认为0.0

Camera.HAngle = 0.0;

📘 Camera.Distance

设置相机跟随对象的距离,默认为10.0

Camera.Distance = 10.0;

📘 Camera.DistanceSpeed

设置相机跟随对象距离的差值速度,默认为1.0

(设置新的Distance值后多久到达新距离)。

Camera.DistanceSpeed = 1;

📘 Camera.FOV

设置相机FOV(默认是60.0)。

Camera.FOV = 60.0;

📘 Camera.SmoothTime

设置相机跟随对象的平滑(移动)间隔速度,默认为0.2(数值越小,速度越快)。

Camera.SmoothTime = 0.2;

📘 Camera.Sway

设置相机漫游摇晃幅度,默认为1.0

Camera.Sway = 1.0;

📘 Camera.SwaySpeed

设置相机漫游摇晃速度,默认为0.1

Camera.SwaySpeed = 0.1;

📘 Camera.Vignette

设置相机镜头边缘阴影(强度),默认范围0.0~1.0

Camera.Vignette = 0.4;

📘 Camera.VignetteColor

设置相机镜头边缘阴影颜色,默认为黑色Color(0, 0, 0)

Camera.VignetteColor = Color(0, 0, 0);

📘 Camera.LensLUT

设置相机镜头调色主题,默认范围0~10,设置为0则表示默认主题。

Camera.LensLUT = 0;

📘 Camera.IsInWater

获取相机是否在水中(水底状态)。

Camera.IsInWater: bool

📒 Static Function

📘 Camera.Focus()

立即将相机定位到追踪目标位置,适用于希望立即到相机目标位置(不需要平移效果)时调用。

function Camera.Focus()

📘 Camera.AddRoamPoint()

增加一个相机漫游点(相机优先级更高,但相比FreeMode低)

如果相机漫游点数量>0,相机将进入漫游模式,将按照漫游点坐标池循环移动相机(循环自动前往下一个点),通常至少添加2个点以上来使用。

function Camera.AddRoamPoint( point: Vector )

📘 Camera.RemoveRoamPoint()

移除指定索引的相机漫游点(如果相机漫游点数量<=0,漫游模式将自动关闭)。

function Camera.RemoveRoamPoint( index: int )

📘 Camera.GetRoamPoint()

根据指定索引获取相机的漫游点坐标。

function Camera.GetRoamPoint( index: int ): Vector

📘 Camera.GetRoamPointCount()

获取当前相机漫游点的数量(如果相机漫游点数量<=0,表示漫游模式关闭)。

function Camera.GetRoamPointCount(): int

📘 Camera.ClearAllRoamPoint()

清空当前相机全部漫游点(自动关闭漫游模式)。

function Camera.ClearAllRoamPoint()

📘 Camera.SetImageEffectActive()

设置指定屏幕后处理效果开关,详情参考《相机后处理效果》

function Camera.SetImageEffectActive( id: int, active: bool )

📘 Camera.GetImageEffectActive()

获取指定屏幕后处理效果开关,详情参考《相机后处理效果》

function Camera.GetImageEffectActive( id: int ): bool

📘 Camera.SetImageEffectProperty()

设置指定屏幕后处理效果属性配置(强度、偏移等),详情参考《相机后处理效果》

function Camera.SetImageEffectProperty( id: int, option: int, value: any )
//设置模糊等级为3(比较模糊)的Blur屏幕高斯模糊效果。
Camera.SetImageEffectActive(0, true);
Camera.SetImageEffectProperty(0, 0, 3); //option0(表示设置的是【强度Intensity】),value3(表示设置值为3,越高越模糊)
Option 类型 说明
0(强度|范围|偏移) float Intensity 根据实际后处理效果的不同,拥有不同的意义
1(X偏移|参数1) float OffsetX 根据实际后处理效果的不同,拥有不同的意义
2(Y偏移|参数2) float OffsetY 根据实际后处理效果的不同,拥有不同的意义

📘 Camera.GetImageEffectProperty()

获取指定屏幕后处理效果属性配置(强度、偏移等),详情参考《相机后处理效果》

function Camera.GetImageEffectProperty( id: int, option: int ): any | float

📘 Camera.SetCinematicBorder()

设置屏幕电影模式边框开关,在场景切换时不会重置

function Camera.SetCinematicBorder( active: bool, time: float = 1.0 )

📘 Camera.GetCinematicBorder()

获取屏幕电影模式边框开关。

function Camera.GetCinematicBorder(): bool

📘 Camera.Shake()

激活一次相机Shake抖动效果。

function Camera.Shake( strength: float = 1.0, time: float = 1.0 )

📘 Camera.Punch()

激活一次相机Punch力量抖动效果。

function Camera.Punch( strength: float = 1.0, time: float = 1.0 )

📘 Camera.Shock()

激活一次相机Shock冲击抖动效果。

function Camera.Shock( strength: float = 1.0, time: float = 1.0 )

scripting/client/camera.1701102082.txt.gz · 最后更改: 2023/11/28 00:21 由 bibiboxs