沙盘引擎 (SEngine)

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

用户工具

站点工具


scripting:client:camera

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:client:camera [2023/09/21 10:44] bibiboxsscripting:client:camera [2024/05/16 03:53] (当前版本) bibiboxs
行 7: 行 7:
  
 ## Property ## Property
 +
 +### Camera.Mode
 +
 +> 设置本地玩家游戏视角模式(默认2.5D、第三人称)。
 +>
 +> 开发者可根据游戏需求,随时在代码中动态切换模式及配套的属性,需要注意的是,**不同视角模式可能有不同的属性控制,此文档中的属性并非完全适用于全部模式==(有些属性在特定模式下修改可能不会有效果)==。**
 +>
 +> **不同游戏视角会衍生不同的游戏效果,例如2.5D视角主要是平面射击,第三人称视角则是根据准星自由射击、交互等。**
 +>
 +> **==注意:此属性的修改会改变`Camera`其他属性,已达到最终的视角预制效果(例如`Distance\Sway\Offset`等属性),如果开发者有多个自定义视角的修改需求,建议将修改视角封装成多个方法(如下代码示例)。==**
 +
 +```javascript
 +Camera.Mode = 0;
 +```
 +
 +| ID   | 视角模式                                                     | 主要改动                                           |
 +| ---- | ------------------------------------------------------------ | -------------------------------------------------- |
 +| 0    | 默认视角,2.5D鸟瞰视角<br />示例:孤胆枪手、Moba类游戏、视角相对固定(可调) | `FocusPos`基于世界地面                             |
 +| 1    | 第一人称视角<br />示例:未转变者、我的世界                   | 此视角因效果比较特殊,所以许多属性修改并不会起作用 |
 +| 2    | 第三人称视角<br />示例:绝地求生、GTA系列、视角相对自由      | `FocusPos`基于屏幕中心(准星)                     |
 +
 +```javascript
 +//第一人称
 +function ChangeCameraMode0()
 +{
 +    Camera.Mode = 1;
 +    Camera.Sway = 0;
 +}
 +
 +//第三人称
 +function ChangeCameraMode1()
 +{
 +    Camera.Mode = 2;
 +    Camera.Sway = 1.0; //恢复漫游抖动
 +    Camera.Offset = Vector(0.2, 0.8, 0);
 +}
 +```
 +
 +
 +
 +### Camera.Pos
 +
 +> 获取(只读)相机(游戏的眼睛)世界空间位置。
 +
 +```javascript
 +Camera.Pos: Vector
 +```
 +
 +
 +
 +### Camera.EulerAngle
 +
 +> 获取(只读)相机(游戏的眼睛)世界空间角度。
 +
 +```javascript
 +Camera.EulerAngle: Vector
 +```
 +
 +
  
 ### Camera.Target ### Camera.Target
行 40: 行 99:
 ```javascript ```javascript
 Camera.Offset = Vector(0, 2, 0); //相机高度偏上2.0 Camera.Offset = Vector(0, 2, 0); //相机高度偏上2.0
 +```
 +
 +
 +
 +### Camera.SlowMode
 +
 +> 设置相机**慢动作模式**开关,激活后相机将以慢速延迟移动视角。
 +>
 +> **注意:此模式更适合用于`FreeMode`自由模式,在漫游模式下鼠标将会差值慢速移动,适合拍摄视频、漫游浏览。**
 +
 +```javascript
 +Camera.SlowMode = false; //bool
 ``` ```
  
行 46: 行 117:
 ### Camera.FreeMode ### Camera.FreeMode
  
-> 设置相机**自由漫游模式**开关,激活后相机将允许玩家自由移动视角。+> 设置相机**自由漫游模式**开关,激活后相机将允许玩家自由移动视角(移动、旋转速度同步受到`Camera`属性影响)
 > >
-> **注意:此模式优先级最高,启用后将暂时屏蔽其他相机模式,同时开启模式并不会屏蔽控制角色移动(如果存在操纵角色\载具,仍然可进行移动等行为,如果不希望这样,可以自行编写相关冻结逻辑(Frozen),以达到漫游模式时停止控制)**+> **注意:此模式优先级最高,启用后将暂时屏蔽其他相机模式,同时开启模式并不会屏蔽控制角色移动(如果存在操纵角色\载具,仍然可进行移动等行为,如果不希望这样,可以自行编写相关冻结逻辑(Frozen),以达到漫游模式时停止控制)**
  
 ```javascript ```javascript
行 60: 行 131:
 > 设置相机**向前跟随模式**开关,激活后相机将始终向`Target`正前角度靠近。 > 设置相机**向前跟随模式**开关,激活后相机将始终向`Target`正前角度靠近。
 > >
-> **注意:此选项需要`Camera.Target`存在目标才有意义。**+> **注意:此选项需要`Camera.Target`存在目标才有意义。此功能只在`RoamPoint`或`BirdView`模式下生效** 
 +>  
 +> **(如果希望在第一人称\第三人称使用类似功能,你可能找的是`Camera.AutoFix`)**
  
 ```javascript ```javascript
行 74: 行 147:
 ```javascript ```javascript
 Camera.AutoDistance = true; //bool Camera.AutoDistance = true; //bool
 +```
 +
 +
 +
 +### Camera.AutoFix
 +
 +> 设置相机**自动修正功能**开关,此功能可以修正有关相机的便捷化效果。
 +
 +> **例如:玩家操作空闲超过X秒后,相机自动旋转至角色或载具的正前方。**
 +
 +```javascript
 +Camera.AutoFix = true; //bool
 +```
 +
 +
 +
 +### Camera.RotateSpeed
 +
 +> 设置相机**旋转角度**的差值速度,默认为`2.0`。
 +>
 +
 +```javascript
 +Camera.RotateSpeed = 2;
 ``` ```
  
行 101: 行 197:
  
 > 设置相机跟随对象的距离,默认为`10.0`。 > 设置相机跟随对象的距离,默认为`10.0`。
 +>
 +> **注意:在开启`AutoDistance`属性后,因为其自动距离机制,可能不会完全按照`Distance`所设定的距离执行。**
  
 ```javascript ```javascript
行 110: 行 208:
 ### Camera.DistanceSpeed ### Camera.DistanceSpeed
  
-> 设置相机跟随对象距离的差值速度,默认为`1.0`。+> 设置相机跟随**对象距离**的差值速度,默认为`1.0`。
 > >
 > (设置新的`Distance`值后多久到达新距离)。 > (设置新的`Distance`值后多久到达新距离)。
行 122: 行 220:
 ### Camera.FOV ### Camera.FOV
  
-> 设置相机FOV(默认是60.0)。+> 设置相机FOV(默认`70.0`)。
 > >
  
 ```javascript ```javascript
-Camera.FOV = 60.0;+Camera.FOV = 70.0;
 ``` ```
  
行 133: 行 231:
 ### Camera.SmoothTime ### Camera.SmoothTime
  
-> 设置相机跟随对象的平滑(移动)间隔速度,默认`0.2`(数值越小,速度越快)。+> 设置相机跟随对象的平滑(移动)间隔速度,默认`0.2`(数值越小,速度越快)。
  
 ```javascript ```javascript
 Camera.SmoothTime = 0.2; Camera.SmoothTime = 0.2;
 +```
 +
 +
 +
 +### Camera.Flip
 +
 +> 设置相机临时反转模式,默认为`false`,此功能仅在**第一人称、第三人称**生效,并且可通过玩家【鼠标中键】**优先**开关。
 +
 +```javascript
 +Camera.Flip = false;
 ``` ```
  
行 183: 行 291:
 ### Camera.LensLUT ### Camera.LensLUT
  
-> 设置相机镜头色主题,默认范围`0~10`,设置为`0`则表示默认主题。+> 设置**相机镜头色主题**,默认范围`0~10`,设置为`0`则表示默认主题。 
 +>  
 +> **注意:当脚本使用此属性修改色彩主题后,优先级将提升至最高,玩家通过游戏选项修改的主题将被忽略,直到下次加载新的世界场景。**
  
 ```javascript ```javascript
行 198: 行 308:
 Camera.IsInWater: bool Camera.IsInWater: bool
 ``` ```
 +
 +
 +
 +### Camera.LookAtMode
 +
 +> 获取相机是否正在`LookAt`焦点模式(使用`StartLookAt()`激活)。
 +
 +```javascript
 +Camera.LookAtMode: bool
 +```
 +
  
  
行 209: 行 330:
 ```javascript ```javascript
 function Camera.Focus() function Camera.Focus()
 +```
 +
 +
 +
 +### Camera.AddRoamPoint()
 +
 +> 增加一个相机漫游点**(相机优先级更高,但相比`FreeMode`低)**。
 +>
 +> 如果相机漫游点数量>0,相机将进入漫游模式,将按照漫游点坐标池循环移动相机(循环自动前往下一个点),通常至少添加2个点以上来使用。
 +>
 +> **注意:相机漫游运动仍然使用`Target`焦点跟随的方式,==因此漫游坐标并非实际相机本地位置,而是相机看向的【焦点位置】,`Distance`等属性仍然是有效的。==**
 +
 +```javascript
 +function Camera.AddRoamPoint( point: Vector )
 +```
 +
 +
 +
 +### Camera.RemoveRoamPoint()
 +
 +> 移除指定索引的相机漫游点(如果相机漫游点数量<=0,漫游模式将自动关闭)。
 +
 +```javascript
 +function Camera.RemoveRoamPoint( index: int )
 +```
 +
 +
 +
 +### Camera.GetRoamPoint()
 +
 +> 根据指定索引获取相机的漫游点坐标。
 +
 +```javascript
 +function Camera.GetRoamPoint( index: int ): Vector
 +```
 +
 +
 +
 +### Camera.GetCurrentRoamIndex()
 +
 +> 获取相机当前漫游点目标索引。
 +
 +```javascript
 +function Camera.GetCurrentRoamIndex(): int
 +```
 +
 +
 +
 +### Camera.GetRoamPointCount()
 +
 +> 获取当前相机漫游点的数量(如果相机漫游点数量<=0,表示漫游模式关闭)。
 +
 +```javascript
 +function Camera.GetRoamPointCount(): int
 +```
 +
 +
 +
 +### Camera.ClearAllRoamPoint()
 +
 +> 清空当前相机全部漫游点(自动关闭漫游模式)。
 +
 +```javascript
 +function Camera.ClearAllRoamPoint()
 ``` ```
  
行 312: 行 497:
 function Camera.Shock( strength: float = 1.0, time: float = 1.0 ) function Camera.Shock( strength: float = 1.0, time: float = 1.0 )
 ``` ```
 +
 +
 +
 +### Camera.StartLookAt()
 +
 +> 激活相机`LookAt`观察焦点模式,可用于让相机从A点看向B点。
 +>
 +> 注意:此方法改变的是相机本身,而不是传统的跟随焦点。
 +
 +```javascript
 +function Camera.StartLookAt( start: Vector, end: Vector, time: float = 1.0 )
 +```
 +
 +
 +
 +### Camera.StopLookAt()
 +
 +> 取消相机`LookAt`观察焦点模式。
 +
 +```javascript
 +function Camera.StopLookAt()
 +```
 +
 +
 +
 +
  
  
 </markdown> </markdown>
scripting/client/camera.1695264258.txt.gz · 最后更改: 2023/09/21 10:44 由 bibiboxs