meta data for this page
  •  

📚 差别

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

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
scripting:client:camera [2024/08/07 05:12] bibiboxsscripting:client:camera [2025/07/18 09:45] (当前版本) bibiboxs
行 4: 行 4:
 在`Camera`类操作中,开发者可修改**玩家本地状态**下的相机属性。 在`Camera`类操作中,开发者可修改**玩家本地状态**下的相机属性。
  
-有关本文档的属性**绝大多数**属于场景生命周期再切换世界\场景后将会重置设定+[note2] 
 + 
 +**注意:控制==非玩家自身角色==外的其他对象或相机功能,均属于“观察模式”在观察模式下无法操作玩家自身角色** 
 + 
 +(例如:观察对象非玩家自身角色、其他相机观察模式等) 
 + 
 +[/note] 
 + 
  
 ## Property ## Property
行 28: 行 36:
 [note2] [note2]
 **==注意:第一人称、第三人称视角仅在【鼠标隐藏】情况下正常镜头转向,以避免此视角下【激活或移动鼠标+操作UI】时晃动。==** **==注意:第一人称、第三人称视角仅在【鼠标隐藏】情况下正常镜头转向,以避免此视角下【激活或移动鼠标+操作UI】时晃动。==**
 +
 +**反之亦然,通常鸟瞰视角也应在【鼠标可见】情况下正常操作角色。**
 +(相关API:`GUI.SetCursorActive()`)
 [/note] [/note]
  
行 35: 行 46:
  
 ```javascript ```javascript
-//第一人称+//FPS
 function ChangeCameraMode0() function ChangeCameraMode0()
 { {
行 42: 行 53:
 } }
  
-//第三人称+//TPS
 function ChangeCameraMode1() function ChangeCameraMode1()
 { {
行 56: 行 67:
  
 > 获取(只读)相机焦点(游戏的眼睛)世界空间位置。 > 获取(只读)相机焦点(游戏的眼睛)世界空间位置。
 +
 +> 游戏视角位置的控制应该使用`Camera.Mode | LookAt | RoamPoint`等方法进行引擎自动跟随,而不需要手动每帧编写跟随。
  
 ```javascript ```javascript
行 76: 行 89:
  
 > 设置一个相机跟随对象(仅限`Character`对象),**多数情况下应该优先使用此属性**。 > 设置一个相机跟随对象(仅限`Character`对象),**多数情况下应该优先使用此属性**。
 +>
 +> **设置非玩家自身角色对象可用于观察(观战),此模式下会跟随目标对象的角度,因此`VAngle | HAngle`修改可能不会生效。**
 > >
 > 设置为`null`时则不跟随任何对象,转而尝试跟随`Camera.TargetPos`坐标。 > 设置为`null`时则不跟随任何对象,转而尝试跟随`Camera.TargetPos`坐标。
 +
 +[note2]
 +
 +**注意:控制==非玩家自身角色==的其他对象,将切换至“观察模式”(`Camera.IsObserver == true`)。**
 +
 +[/note]
  
 ```javascript ```javascript
行 94: 行 115:
 ```javascript ```javascript
 Camera.TargetPos = Vector(0, 0, 0); Camera.TargetPos = Vector(0, 0, 0);
 +```
 +
 +
 +
 +### Camera.IsObserver
 +
 +> 获取当前相机是否为**观察模式**。
 +>
 +> **注意:控制==非玩家自身角色==外的**其他对象**或相机功能,均属于“观察模式”**
 +
 +```javascript
 +Camera.IsObserver: bool //Camera.Target isn't Owner Character
 +```
 +
 +
 +
 +### Camera.IsIndoors
 +
 +> 获取当前相机是否为**处于室内**(相机上方被物体遮挡)。
 +
 +```javascript
 +Camera.IsIndoors: bool
 ``` ```
  
行 102: 行 145:
 > 设置相机跟随对象的**本地坐标偏移**,默认为`Vector(0, 0, 0)`,可用于调整相机方向偏移。 > 设置相机跟随对象的**本地坐标偏移**,默认为`Vector(0, 0, 0)`,可用于调整相机方向偏移。
 > >
 +> **注意:由于第一人称视角的特殊性,此属性将被忽略。**
  
 ```javascript ```javascript
行 147: 行 191:
 ### Camera.SlowMode ### Camera.SlowMode
  
-> 设置相机**慢动作模式**开关,激活后相机将以慢速延迟移动视角。+> 设置相机**慢动作模式(半速插值)**开关(不支持**常规跟随视角**),激活后相机将以慢速延迟移动视角。
 > >
-> **注意:此模式更适合用于`FreeMode`自由模式,在漫游模式下鼠标将会差值慢速移动,适合拍摄视频、漫游浏览。**+> **注意:此模式更适合搭配`FreeMode`自由视角模式,在漫游模式下鼠标将会差值慢速移动,适合拍摄视频、漫游浏览。**
  
 ```javascript ```javascript
行 162: 行 206:
 > >
 > **注意:此模式优先级最高,启用后将暂时屏蔽其他相机模式,同时开启模式并不会屏蔽控制角色移动(如果存在操纵角色\载具,仍然可进行移动等行为,如果不希望这样,可以自行编写相关冻结逻辑(Frozen),以达到漫游模式时停止控制)。** > **注意:此模式优先级最高,启用后将暂时屏蔽其他相机模式,同时开启模式并不会屏蔽控制角色移动(如果存在操纵角色\载具,仍然可进行移动等行为,如果不希望这样,可以自行编写相关冻结逻辑(Frozen),以达到漫游模式时停止控制)。**
 +
 +[note2]
 +**提示:此模式不会修改鼠标可见状态,因此通常应该手动关闭鼠标可见,已达到随鼠标自由旋转。**
 +
 +此模式下移动、旋转速度受到`SmoothTime`、`RotateSpeed`影响。
 +
 +[/note]
  
 ```javascript ```javascript
行 207: 行 258:
 ### Camera.RotateSpeed ### Camera.RotateSpeed
  
-> 设置相机**旋转角度**的值速度,默认为`2.0`。+> 设置相机**旋转角度**的值速度(非鼠标灵敏度),默认为`2.0`。
 > >
 +> 此类属性仅对**鸟瞰视角、激活受支持的`SlowMode`视角、相机观察行为**等生效。
  
 ```javascript ```javascript
行 218: 行 270:
 ### Camera.VAngle ### Camera.VAngle
  
-> 设置相机跟随的**上下角度**,默认为`50.0`(举例:设置`90.0`则为鸟瞰2D视角)。+> 设置相机跟随的**上下角度**,默认为`0.0`(举例:设置`45.0`则为向下45度看,反之`-45.0`表示向上看)。 
 +>  
 +> **注意:此方法更偏向于修改`Camera`自身的度,如果玩家正在控制自身角色,实际上可能修改的是`player.FocusVAngle`(映射)。**
  
 ```javascript ```javascript
-Camera.VAngle = 50.0;+Camera.VAngle = 0.0;
 ``` ```
  
行 229: 行 283:
  
 > 设置相机跟随的**横向角度**,默认为`0.0`。 > 设置相机跟随的**横向角度**,默认为`0.0`。
 +
 +> **注意:此方法更偏向于修改`Camera`自身的角度,如果玩家正在控制自身角色,实际上可能修改的是`player.FocusHAngle`(映射)。**
  
 ```javascript ```javascript
行 284: 行 340:
 ### Camera.SmoothTime ### Camera.SmoothTime
  
-> 设置相机跟随对象的平滑(移动)间隔速度,默认`0.2`(数值越小,速度越快)。+> 设置相机**部分模式**的平滑(移动)间隔速度,默认`0.2`(数值越小,速度越快)。 
 +>  
 +> **注意:常规视角(第一人称\第三人称)跟随方式,**不会收到此数值的影响**,此数值适用于相机其他观察模式。**
  
 ```javascript ```javascript
行 318: 行 376:
 ```javascript ```javascript
 Camera.SwaySpeed = 0.1; Camera.SwaySpeed = 0.1;
 +```
 +
 +
 +
 +### Camera.TiltShift
 +
 +> 设置相机镜头边缘虚化(移轴),范围`0.0~25.0`。
 +
 +```javascript
 +Camera.TiltShift = 0;
 ``` ```
  
行 324: 行 392:
 ### Camera.Vignette ### Camera.Vignette
  
-> 设置相机镜头边缘阴影(强度),默认范围`0.0~1.0`。+> 设置相机镜头边缘阴影(强度),范围`0.0~2.0`。
  
 ```javascript ```javascript
行 344: 行 412:
 ### Camera.LensLUT ### Camera.LensLUT
  
-> 设置**相机镜头色彩主题**,默认范围`0~10`,设置为`0`表示默认主题 +> 设置**相机镜头色彩滤镜**,设置为`0`表示原生滤镜,设置为`-1`表示地图默认滤镜
-+
-> **注意:当脚本使用此属性修改色彩主题后,优先级将提升至最高,玩家通过游戏选项修改的主题将被忽略,直到下次加载新的世界场景。**+
  
 ```javascript ```javascript
 Camera.LensLUT = 0; Camera.LensLUT = 0;
 +```
 +
 +
 +
 +### Camera.DefaultLensLUT
 +
 +> 获取地图默认**相机镜头色彩滤镜**(由地图作者设置的LUT)。
 +
 +```javascript
 +Camera.DefaultLensLUT: int
 ``` ```
  
行 572: 行 648:
 function Camera.StopLookAt() function Camera.StopLookAt()
 ``` ```
 +
 +
 +
 +### Camera.TestVisiblePoint()
 +
 +> 测试某坐标是否在相机可视范围内。
 +
 +```javascript
 +function Camera.TestVisiblePoint( pos: Vector ): bool
 +```
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +