Files
netease-modsdk-wiki/docs/mcdocs/1-ModAPI/接口/玩家/摄像机.md
2025-03-17 13:24:39 +08:00

898 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
sidebarDepth: 1
---
# 摄像机
## DepartCamera
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.cameraCompClient.CameraComponentClient
- 描述
分离玩家与摄像机
- 参数
- 返回值
- 备注
- 分离之后可以看到玩家四周旋转镜头时玩家面向的方向不再跟随镜头旋转而变化。注意分离镜头后乘船时船的组件minecraft:rideable中的lock_rider_rotation字段将失去效果。另外在骑乘马或者其他生物的情况下分离镜头后由于玩家的方向不再跟随镜头旋转因此骑乘时无法进行转向请注意这一点。
- 示例
```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.SetCameraRot((45.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()
```
## 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()
```
## GetCameraRot
<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)
rot = comp.GetCameraRot()
```
## 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 | 设置是否成功 |
- 备注
- 锁定摄像机时只是锁定画面视角,玩家仍然可以移动
- 示例
```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)
```
## 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 | 是否设置成功 |
- 备注
- 与SetCameraOffset不同的是该接口改变的是相机的轨道的圆心位置。对第一人称和第三人称模式均生效。
- 注意,设置后的效果不会存档
- 示例
```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')
```
## 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
- 描述
设置摄像机上下角度限制值,默认是(-9090
- 参数
| 参数名 | <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))
```
## SetCameraRot
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.cameraCompClient.CameraComponentClient
- 描述
设定相机转向
- 参数
| 参数名 | <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- | :--- |
| rot | tuple(float,float) | 转向 |
- 返回值
| <div style="width: 4em">数据类型</div> | 说明 |
| :--- | :--- |
| bool | 是否设置成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetCameraRot((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)
```
## 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)
```
## UnDepartCamera
<span style="display:inline;color:#7575f9">客户端</span>
method in mod.client.component.cameraCompClient.CameraComponentClient
- 描述
绑定玩家与摄像机
- 参数
- 返回值
- 备注
- 绑定之后,只能看到玩家背部
- 示例
```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 | 设置是否成功 |
- 示例
```python
import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.UnLockCamera()
```