1305 lines
33 KiB
Markdown
1305 lines
33 KiB
Markdown
---
|
||
sidebarDepth: 1
|
||
---
|
||
# 摄像机
|
||
|
||
## AddCameraAroundEntityMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
给相机添加对实体环绕运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| eID | str | 要环绕的某个实体的ID |
|
||
| angularVelocity | float | 圆周运动的角速度(弧度/秒) |
|
||
| axis | tuple(float,float,float) | 圆周运动的轴,决定了在哪个平面上做圆周运动,默认为(0, 1, 0) |
|
||
| lockDir | bool | 是否在运动器生效时锁定相机的朝向,不锁定则相机的朝向会随着运动而改变,默认为False。 |
|
||
| stopRad | float | 停止该运动器所需要的弧度,当stopRad为0时,该运动器会一直运行,默认为0 |
|
||
| radius | float | 环绕半径,当设置为-1时环绕运动器使用当前与目标的距离作为半径,当设置为非负数时表示按设定的值作为环绕半径,默认为-1 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| int | 运动器ID,添加失败时返回-1 |
|
||
|
||
- 备注
|
||
- 环绕运动器可叠加多个,且可与速度运动器互相叠加。当有多个运动器叠加时,位置为各个运动器计算出的瞬时向量之和,朝向以后添加的运动器设置的朝向为准。
|
||
- 运动器的朝向也会受到玩家视角转动的影响,若要完全使用运动器的朝向,建议使用[SetCanDrag](../控制.md#SetCanDrag)接口屏蔽玩家的视角操作。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
axis=(-1, 1, 1)
|
||
mID = comp.AddCameraAroundEntityMotion(eID, 1.0, axis, lockDir=False, stopRad=0, radius=2.0)
|
||
```
|
||
|
||
|
||
|
||
## AddCameraAroundPointMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
给相机添加对点环绕运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| center | tuple(float,float,float) | 要环绕的圆心点坐标 |
|
||
| angularVelocity | float | 圆周运动的角速度(弧度/秒) |
|
||
| axis | tuple(float,float,float) | 圆周运动的轴,决定了在哪个平面上做圆周运动,默认为(0, 1, 0) |
|
||
| lockDir | bool | 是否在运动器生效时锁定相机的朝向,不锁定则相机的朝向会随着运动而改变,默认为False。 |
|
||
| stopRad | float | 停止该运动器所需要的弧度,当stopRad为0时,该运动器会一直运行,默认为0 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| int | 运动器ID,添加失败时返回-1 |
|
||
|
||
- 备注
|
||
- 环绕运动器可叠加多个,且可与速度运动器互相叠加。当有多个运动器叠加时,位置为各个运动器计算出的瞬时向量之和,朝向以后添加的运动器设置的朝向为准。
|
||
- 运动器的朝向也会受到玩家视角转动的影响,若要完全使用运动器的朝向,建议使用[SetCanDrag](../控制.md#SetCanDrag)接口屏蔽玩家的视角操作。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
center = (0, 8, 0)
|
||
axis=(-1, 1, 1)
|
||
mID = comp.AddCameraAroundPointMotion(center, 1.0, axis, lockDir=False, stopRad=0)
|
||
```
|
||
|
||
|
||
|
||
## AddCameraTrackMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
给相机添加轨迹运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| targetPos | tuple(float,float,float) | 轨迹终点 |
|
||
| duraTime | float | 到达终点所需要的时间 |
|
||
| startPos | tuple(float,float,float) | 轨迹起点,默认为None,表示以调用[StartCameraMotion](#StartCameraMotion)的位置作为起点。 |
|
||
| relativeCoord | bool | 是否使用相对坐标设置起点和终点,默认为False。 |
|
||
| isLoop | bool | 是否循环,若设为True,则相机会在起点和终点之间往复运动,默认为False。 |
|
||
| targetRot | tuple(float,float) | 相机到达targetPos时的朝向,受参数relativeCoord影响,默认为None,表示使用调用[StartCameraMotion](#StartCameraMotion)时的朝向。 |
|
||
| startRot | tuple(float,float) | 相机到达startPos时的朝向,受参数relativeCoord影响,默认为None,表示使用调用[StartCameraMotion](#StartCameraMotion)时的朝向。 |
|
||
| useVelocityDir | bool | 是否使用运动中的速度方向作为朝向,默认为False,若为True,则参数targetRot和startRot无效 |
|
||
| ease | TimeEaseType | 时间变化函数, 默认值为clientApi.GetMinecraftEnum().TimeEaseType.linear, 参数不在枚举值中也当作linear |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| int | 运动器ID,添加失败时返回-1 |
|
||
|
||
- 备注
|
||
- 轨迹运动器不可叠加,仅能添加一个。相机会在运动器停止后自动回到原始状态。
|
||
- 运动器的相对坐标设置(relativeCoord)是根据[启动](#StartCameraMotion)运动器时的相机位置计算所得,并不是在添加运动器时计算。
|
||
使用相对坐标时,是以相机自身的局部坐标系(右手坐标系)为参考。
|
||
引擎中的相机镜头默认朝向自身局部坐标系的-Z轴方向,当设置朝向时,实际上是设置了相机的Z轴的方位角,比如设置startRot=(0,0),相机镜头会朝向世界坐标的-Z轴方向。
|
||
- 设置朝向后会根据相应的参数计算出最终朝向,若此时的targetRot > startRot,则会顺时针旋转,反之逆时针旋转。
|
||
- 当相机被设置为lock后,添加相机轨迹运动器相关的接口失效!
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
target = (5, 0, 0)
|
||
rot1 = (0, 0)
|
||
rot2 = (0, 360)
|
||
mID = comp.AddCameraTrackMotion(target, 3.0, startPos=None, relativeCoord=True, isLoop=False, targetRot=rot1, startRot=rot2, useVelocityDir=True, ease = clientApi.GetMinecraftEnum().TimeEaseType.linear)
|
||
```
|
||
|
||
|
||
|
||
## AddCameraVelocityMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
给相机添加速度运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| velocity | tuple(float,float,float) | 速度,包含大小、方向 |
|
||
| accelerate | tuple(float,float,float) | 加速度,包含大小、方向,默认为None,表示没有加速度 |
|
||
| useVelocityDir | bool | 是否使用当前速度的方向作为此刻相机的朝向,默认为True |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| int | 运动器ID,添加失败时返回-1 |
|
||
|
||
- 备注
|
||
- 速度运动器可叠加多个,且可与环绕运动器互相叠加。当有多个运动器叠加时,相机的朝向以后添加的运动器设置的朝向为准。
|
||
- 运动器的朝向也会受到玩家视角转动的影响,若要完全使用运动器的朝向,建议使用[SetCanDrag](../控制.md#SetCanDrag)接口屏蔽玩家的视角操作。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
velocity = (0, 0, 1)
|
||
accelerate = (0, 0, -1)
|
||
mID = comp.AddCameraVelocityMotion(velocity, accelerate, useVelocityDir=True)
|
||
```
|
||
|
||
|
||
|
||
## DepartCamera
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
分离玩家与摄像机
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 分离之后,可以看到玩家四周,旋转镜头时玩家面向的方向不再跟随镜头旋转而变化。注意,分离镜头后乘船时,船的组件minecraft:rideable中的lock_rider_rotation字段将失去效果。另外,在骑乘马或者其他生物的情况下,分离镜头后由于玩家的方向不再跟随镜头旋转,因此骑乘时无法进行转向,请注意这一点。
|
||
- 注意,使用后会默认解除视角移动锁定,效果等同
|
||
comp.LockModCameraYaw(0) # 解除锁定左右视角
|
||
comp.LockModCameraPitch(0) # 解除锁定上下视角
|
||
- 该接口的效果会与lockcamera互相覆盖
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
# 第三人称锁定视角例子
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.DepartCamera()
|
||
comp.LockModCameraYaw(1) # 锁定左右视角
|
||
comp.LockModCameraPitch(1) # 锁定上下视角
|
||
comp.SetCameraOffset((0, 0, 15))
|
||
comp.SetCameraRotation((45.0, 0.0, 0.0))
|
||
```
|
||
|
||
|
||
|
||
## GetCameraAnchor
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取相机锚点
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| tuple(float,float,float) | 锚点偏移量 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.GetCameraAnchor()
|
||
```
|
||
|
||
|
||
|
||
## GetCameraMotions
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取相机上的所有运动器
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| dict | 运动器集合,key值代表运动器mID,value值代表运动器类型0:轨迹运动器、1:速度运动器、2:环绕运动器 |
|
||
|
||
- 备注
|
||
- 运动器非人为停止后会被移除。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
motions = comp.GetCameraMotions()
|
||
# motions = {
|
||
# 0:1,
|
||
# 1:2
|
||
# }
|
||
```
|
||
|
||
|
||
|
||
## GetCameraOffset
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取摄像机偏移量
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| tuple(float,float,float) | 偏移量 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.GetCameraOffset()
|
||
```
|
||
|
||
|
||
|
||
## GetCameraPitchLimit
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取摄像机上下角度限制值
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| tuple(float,float) | 上下角度限制值 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.GetCameraPitchLimit()
|
||
```
|
||
|
||
|
||
|
||
## GetCameraRotation
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取摄像机的朝向
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| tuple(float,float,float) | 朝向,分别代表Pitch(俯仰角),Yaw(偏航角),Roll(翻滚角)的角度 |
|
||
|
||
- 备注
|
||
- 若在使用[SetCameraRotation](#SetCameraRotation)立马调用该接口,会得到修改前的结果,因为摄像机是在逻辑帧之间插值移动变化的,而不是马上改变。
|
||
- 与F3显示的相机调试信息的Pitch、Yaw相反。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
rot = comp.GetCameraRotation()
|
||
```
|
||
|
||
|
||
|
||
## GetForward
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
返回相机向前的方向
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| tuple(float,float,float) | 向前的方向 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.GetForward()
|
||
```
|
||
|
||
|
||
|
||
## GetFov
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取视野大小
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| float | 即视频设置中的视野,单位为角度 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
fov = comp.GetFov()
|
||
```
|
||
|
||
|
||
|
||
## GetFpHeight
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
获取本地玩家当前状态下,第一人称视角时的摄像机高度偏移量。游泳时,滑翔时以及普通状态下会有所不同
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| float | 高度偏移量 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
heightOffset = comp.GetFpHeight()
|
||
```
|
||
|
||
|
||
|
||
## GetPerspective
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.playerViewCompClient.PlayerViewCompClient
|
||
|
||
- 描述
|
||
|
||
获取当前的视角模式
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| int | 0:第一人称视角;1:第三人称视角;2:前视第三人称视角 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreatePlayerView(entityId)
|
||
persp = comp.GetPerspective()
|
||
```
|
||
|
||
|
||
|
||
## GetPosition
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
返回相机中心
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| tuple(float,float,float) | 相机中心位置 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.GetPosition()
|
||
```
|
||
|
||
|
||
|
||
## IsModCameraLockPitch
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
是否锁定摄像机上下角度
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否锁定 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.IsModCameraLockPitch()
|
||
```
|
||
|
||
|
||
|
||
## IsModCameraLockYaw
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
是否锁定摄像机左右角度
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否锁定 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.IsModCameraLockYaw()
|
||
```
|
||
|
||
|
||
|
||
## LockCamera
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
锁定摄像机
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| lockPos | tuple(float,float,float) | 世界坐标 |
|
||
| lockRot | tuple(float,float) | 摄像机的角度(俯仰角及偏航角) |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 设置是否成功 |
|
||
|
||
- 备注
|
||
- 锁定摄像机时只是锁定画面视角,玩家仍然可以移动
|
||
- 该接口的效果会与departcamera互相覆盖
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
# 把摄像机固定在(0, 6, 0),并且30度俯视,朝向世界z轴正方向
|
||
comp.LockCamera((0, 6, 0), (30, 0))
|
||
```
|
||
|
||
|
||
|
||
## LockModCameraPitch
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
锁定摄像机上下角度(第三人称下生效,锁定后不能上下调整视角)
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| enable | int | 1:锁定 0:解锁 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.LockModCameraPitch(1)
|
||
```
|
||
|
||
|
||
|
||
## LockModCameraYaw
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
锁定摄像机左右角度(第三人称下生效,锁定后不能通过鼠标左右调整视角)
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| enable | int | 1:锁定 0:解锁 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.LockModCameraYaw(1)
|
||
```
|
||
|
||
|
||
|
||
## LockPerspective
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.playerViewCompClient.PlayerViewCompClient
|
||
|
||
- 描述
|
||
|
||
锁定玩家的视角模式
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| lock | int | 0:第一人称视角;1:第三人称视角;2:前视第三人称视角 其他值:解除锁定 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否锁定成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreatePlayerView(entityId)
|
||
comp.LockPerspective(1)
|
||
```
|
||
|
||
|
||
|
||
## RemoveCameraMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
移除相机上的某个运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| motionId | int | 要移除的某个运动器的ID |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否成功移除 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.RemoveCameraMotion(mID)
|
||
```
|
||
|
||
|
||
|
||
## ResetCameraBindActorId
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
将摄像机重新绑定回主角身上
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.ResetCameraBindActorId()
|
||
```
|
||
|
||
|
||
|
||
## SetCameraAnchor
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设置相机锚点
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| offset | tuple(float,float,float) | 锚点偏移量 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- (1) 调用了该接口会对第一人称下客户端的交互中心进行同样的偏移,如果需要修改第三人称的交互中心可使用[SetPickCenterOffset](./行为.md#setpickcenteroffset)
|
||
(2) 在第一人称调高了摄像头会导致交互被撤销,这是由于服务端的交互中心还是在人物的位置,需要使用[SetInteracteCenterOffset](./行为.md#setinteractecenteroffset)进行修正
|
||
(3) 在第一人称调高了摄像头会导致无法交互到地面或者远距离的方块,可以使用[SetPickRange](./行为.md#setpickrange)修改客户端的交互半径,使用[SetPlayerInteracteRange](./行为.md#setplayerinteracterange)修改服务端的交互半径.
|
||
- 注:当前客户端能修改交互中心的有[SetCameraAnchor](#setcameraanchor)修改第一人称,[SetPickCenterOffset](./行为.md#setpickcenteroffset)修改第三人称。服务端能使用[SetInteracteCenterOffset](./行为.md#setinteractecenteroffset)修改玩家交互中心(服务端无第几人称概念)
|
||
- 与SetCameraOffset不同的是,该接口改变的是相机的轨道的圆心位置。对第一人称和第三人称模式均生效,需要注意的是,改变后,鼠标或者触屏旋转,最终绕该圆心运动,不再绕玩家为中心。可以简单理解为,默认anchor为玩家中心。
|
||
- 注意,设置后的效果不会存档
|
||
- 注意,如果摄像头进入墙体里面会出现透视的情况,在联机模式时可能会破坏游戏的平衡,请谨慎使用
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetCameraAnchor((0,1,0))
|
||
```
|
||
|
||
|
||
|
||
## SetCameraBindActorId
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
将摄像机绑定到目标实体身上(调用者与目标必须在同一个dimension,同时需要在加载范围之内,若绑定后目标离开了范围或者死亡,则会自动解除绑定)
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| targetId | str | 目标实体id |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetCameraBindActorId('1234')
|
||
```
|
||
|
||
|
||
|
||
## SetCameraDistanceFixed
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设置相机弹簧臂固定,即设置当相机遇到阻挡时是否压缩与人物之间的距离
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| isFixed | bool | 是否固定相机距离 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 注意,当设置为True时,如果摄像头进入墙体里面会出现透视的情况,在联机模式时可能会破坏游戏的平衡,请谨慎使用
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetCameraDistanceFixed(True)
|
||
```
|
||
|
||
|
||
|
||
## SetCameraOffset
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设置摄像机偏移量
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| offset | tuple(float,float,float) | 偏移量 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 注意,该接口仅改变第三人称的相机(包括前视第三人称和后视第三人称)的偏移量,对第一人称模式下的相机无效。
|
||
- 与SetCameraAnchor不同的是,该接口改变的是相机的位置偏移值,不会对相机轨道的圆心位置进行改变。
|
||
- 注意,设置后的效果不会存档
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetCameraOffset((1, 1, 1))
|
||
```
|
||
|
||
|
||
|
||
## SetCameraPitchLimit
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设置摄像机上下角度限制值,默认是(-90,90)
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| limit | tuple(float,float) | 上下角度限制值 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否成功 |
|
||
|
||
- 备注
|
||
- 注意,设置后的效果不会存档
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.DepartCamera()
|
||
comp.SetCameraPitchLimit((-30, 30))
|
||
```
|
||
|
||
|
||
|
||
## SetCameraPos
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设置相机中心的位置
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| pos | tuple(float,float,float) | 位置 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 注意,设置后的效果不会存档
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetCameraPos((1, 1, 1))
|
||
```
|
||
|
||
|
||
|
||
## SetCameraRotation
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设定摄像机的朝向
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| rot | tuple(float,float,float) | 朝向,其中3个值分别代表Pitch(俯仰角),Yaw(偏航角),Roll(翻滚角)的角度。如果传进来的tuple长度为2,则Roll(翻滚角)的角度默认为0。 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 备注
|
||
- 与F3显示的相机调试信息的Pitch、Yaw相反。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetCameraRotation((1, 1, 1))
|
||
```
|
||
|
||
|
||
|
||
## SetFov
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
设置视野大小
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fov | float | 单位为角度, 范围为[30, 110],若fov小于30则设置为30,,若fov大于110,则设置为110. |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 设置是否成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetFov(60)
|
||
```
|
||
|
||
|
||
|
||
## SetPerspective
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.playerViewCompClient.PlayerViewCompClient
|
||
|
||
- 描述
|
||
|
||
设置视角模式
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| persp | int | 0:第一人称视角;1:第三人称视角;2:前视第三人称视角 |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 设置是否成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreatePlayerView(entityId)
|
||
comp.SetPerspective(1)
|
||
```
|
||
|
||
|
||
|
||
## SetPlayerFovScale
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.playerViewCompClient.PlayerViewCompClient
|
||
|
||
- 描述
|
||
|
||
将渲染实际使用的fov变为设置中的fov乘以fovScale,fovScale越接近0,其效果越接近原版望远镜效果
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| fovScale | float | 有效范围为[0,100] |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否设置成功 |
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreatePlayerView(levelId)
|
||
print(comp.SetPlayerFovScale(0.5))
|
||
```
|
||
|
||
|
||
|
||
## SetSpeedFovLock
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
是否锁定相机视野fov,锁定后不随速度变化而变化
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| isLocked | bool | 是否锁定 |
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.SetSpeedFovLock(True)
|
||
```
|
||
|
||
|
||
|
||
## StartCameraMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
启动相机上的某个运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| motionId | int | 要启动的某个运动器的ID |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否成功启动 |
|
||
|
||
- 备注
|
||
- 启动运动器后相机的位置朝向变化会同步更改player的朝向,若要避免修改,可以使用[DepartCamera](#DepartCamera)接口。
|
||
- 相机第一人称模式下,屏幕会渲染出player的手臂,此时手臂位置与相机位置无关。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.StartCameraMotion(mID)
|
||
```
|
||
|
||
|
||
|
||
## StopCameraMotion
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
停止相机上的某个运动器
|
||
|
||
- 参数
|
||
|
||
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- | :--- |
|
||
| motionId | int | 要停止的某个运动器的ID |
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 是否成功停止 |
|
||
|
||
- 备注
|
||
- 调用该接口不会触发事件[CameraMotionStopClientEvent](../../事件/玩家.md#CameraMotionStopClientEvent)。
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.StopCameraMotion(mID)
|
||
```
|
||
|
||
|
||
|
||
## UnDepartCamera
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
绑定玩家与摄像机
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
无
|
||
|
||
- 备注
|
||
- 绑定之后,只能看到玩家背部
|
||
- 注意,使用后会默认解除视角移动锁定,效果等同
|
||
comp.LockModCameraYaw(0) # 解除锁定左右视角
|
||
comp.LockModCameraPitch(0) # 解除锁定上下视角
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.UnDepartCamera()
|
||
```
|
||
|
||
|
||
|
||
## UnLockCamera
|
||
|
||
<span style="display:inline;color:#7575f9">客户端</span>
|
||
|
||
method in mod.client.component.cameraCompClient.CameraComponentClient
|
||
|
||
- 描述
|
||
|
||
解除摄像机锁定
|
||
|
||
- 参数
|
||
|
||
无
|
||
|
||
- 返回值
|
||
|
||
| <div style="width: 4em">数据类型</div> | 说明 |
|
||
| :--- | :--- |
|
||
| bool | 设置是否成功 |
|
||
|
||
- 备注
|
||
- 注意,使用后会默认解除视角移动锁定,效果等同
|
||
comp.LockModCameraYaw(0) # 解除锁定左右视角
|
||
comp.LockModCameraPitch(0) # 解除锁定上下视角
|
||
|
||
- 示例
|
||
|
||
```python
|
||
import mod.client.extraClientApi as clientApi
|
||
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
|
||
comp.UnLockCamera()
|
||
```
|
||
|
||
|
||
|