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

18 KiB
Raw Blame History

sidebarDepth
sidebarDepth
1

摄像机

DepartCamera

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    分离玩家与摄像机

  • 参数

  • 返回值

  • 备注

    • 分离之后可以看到玩家四周旋转镜头时玩家面向的方向不再跟随镜头旋转而变化。注意分离镜头后乘船时船的组件minecraft:rideable中的lock_rider_rotation字段将失去效果。另外在骑乘马或者其他生物的情况下分离镜头后由于玩家的方向不再跟随镜头旋转因此骑乘时无法进行转向请注意这一点。
  • 示例

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

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    获取相机锚点

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float,float) 锚点偏移量
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.GetCameraAnchor()

GetCameraOffset

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    获取摄像机偏移量

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float,float) 偏移量
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.GetCameraOffset()

GetCameraPitchLimit

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    获取摄像机上下角度限制值

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float) 上下角度限制值
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.GetCameraPitchLimit()

GetCameraRot

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    获取相机转向

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float) 转向
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
rot = comp.GetCameraRot()

GetForward

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    返回相机向前的方向

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float,float) 向前的方向
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.GetForward()

GetFov

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    获取视野大小

  • 参数

  • 返回值

    数据类型
    说明
    float 即视频设置中的视野,单位为角度
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
fov = comp.GetFov()

GetFpHeight

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    获取本地玩家当前状态下,第一人称视角时的摄像机高度偏移量。游泳时,滑翔时以及普通状态下会有所不同

  • 参数

  • 返回值

    数据类型
    说明
    float 高度偏移量
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
heightOffset = comp.GetFpHeight()

GetPerspective

客户端

method in mod.client.component.playerViewCompClient.PlayerViewCompClient

  • 描述

    获取当前的视角模式

  • 参数

  • 返回值

    数据类型
    说明
    int 0第一人称视角1第三人称视角2前视第三人称视角
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreatePlayerView(entityId)
persp = comp.GetPerspective()

GetPosition

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    返回相机中心

  • 参数

  • 返回值

    数据类型
    说明
    tuple(float,float,float) 相机中心位置
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.GetPosition()

IsModCameraLockPitch

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    是否锁定摄像机上下角度

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否锁定
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.IsModCameraLockPitch()

IsModCameraLockYaw

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    是否锁定摄像机左右角度

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否锁定
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.IsModCameraLockYaw()

LockCamera

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    锁定摄像机

  • 参数

    参数名
    数据类型
    说明
    lockPos tuple(float,float,float) 世界坐标
    lockRot tuple(float,float) 摄像机的角度(俯仰角及偏航角)
  • 返回值

    数据类型
    说明
    bool 设置是否成功
  • 备注

    • 锁定摄像机时只是锁定画面视角,玩家仍然可以移动
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
# 把摄像机固定在(0, 6, 0)并且30度俯视朝向世界z轴正方向
comp.LockCamera((0, 6, 0), (30, 0))

LockModCameraPitch

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    锁定摄像机上下角度(第三人称下生效,锁定后不能上下调整视角)

  • 参数

    参数名
    数据类型
    说明
    enable int 1:锁定 0:解锁
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.LockModCameraPitch(1)

LockModCameraYaw

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    锁定摄像机左右角度(第三人称下生效,锁定后不能通过鼠标左右调整视角)

  • 参数

    参数名
    数据类型
    说明
    enable int 1:锁定 0:解锁
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.LockModCameraYaw(1)

LockPerspective

客户端

method in mod.client.component.playerViewCompClient.PlayerViewCompClient

  • 描述

    锁定玩家的视角模式

  • 参数

    参数名
    数据类型
    说明
    lock int 0第一人称视角1第三人称视角2前视第三人称视角 其他值:解除锁定
  • 返回值

    数据类型
    说明
    bool 是否锁定成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreatePlayerView(entityId)
comp.LockPerspective(1)

ResetCameraBindActorId

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    将摄像机重新绑定回主角身上

  • 参数

  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.ResetCameraBindActorId()

SetCameraAnchor

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    设置相机锚点,暂时只支持高度,其他维度无效

  • 参数

    参数名
    数据类型
    说明
    offset tuple(float,float,float) 锚点偏移量
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 备注

    • 与SetCameraOffset不同的是该接口改变的是相机的轨道的圆心位置。对第一人称和第三人称模式均生效。
    • 注意,设置后的效果不会存档
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetCameraAnchor((0,1,0))

SetCameraBindActorId

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    将摄像机绑定到目标实体身上调用者与目标必须在同一个dimension同时需要在加载范围之内若绑定后目标离开了范围或者死亡则会自动解除绑定

  • 参数

    参数名
    数据类型
    说明
    targetId str 目标实体id
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetCameraBindActorId('1234')

SetCameraOffset

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    设置摄像机偏移量

  • 参数

    参数名
    数据类型
    说明
    offset tuple(float,float,float) 偏移量
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 备注

    • 注意,该接口仅改变第三人称的相机(包括前视第三人称和后视第三人称)的偏移量,对第一人称模式下的相机无效。
    • 与SetCameraAnchor不同的是该接口改变的是相机的位置偏移值不会对相机轨道的圆心位置进行改变。
    • 注意,设置后的效果不会存档
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetCameraOffset((1, 1, 1))

SetCameraPitchLimit

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    设置摄像机上下角度限制值,默认是(-9090

  • 参数

    参数名
    数据类型
    说明
    limit tuple(float,float) 上下角度限制值
  • 返回值

    数据类型
    说明
    bool 是否成功
  • 备注

    • 注意,设置后的效果不会存档
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.DepartCamera()
comp.SetCameraPitchLimit((-30, 30))

SetCameraPos

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    设置相机中心的位置

  • 参数

    参数名
    数据类型
    说明
    pos tuple(float,float,float) 位置
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 备注

    • 注意,设置后的效果不会存档
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetCameraPos((1, 1, 1))

SetCameraRot

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    设定相机转向

  • 参数

    参数名
    数据类型
    说明
    rot tuple(float,float) 转向
  • 返回值

    数据类型
    说明
    bool 是否设置成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetCameraRot((1, 1))

SetFov

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    设置视野大小

  • 参数

    参数名
    数据类型
    说明
    fov float 单位为角度, 范围为[30, 110]若fov小于30则设置为30若fov大于110则设置为110.
  • 返回值

    数据类型
    说明
    bool 设置是否成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetFov(60)

SetPerspective

客户端

method in mod.client.component.playerViewCompClient.PlayerViewCompClient

  • 描述

    设置视角模式

  • 参数

    参数名
    数据类型
    说明
    persp int 0第一人称视角1第三人称视角2前视第三人称视角
  • 返回值

    数据类型
    说明
    bool 设置是否成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreatePlayerView(entityId)
comp.SetPerspective(1)

SetSpeedFovLock

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    是否锁定相机视野fov锁定后不随速度变化而变化

  • 参数

    参数名
    数据类型
    说明
    isLocked bool 是否锁定
  • 返回值

  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.SetSpeedFovLock(True)

UnDepartCamera

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    绑定玩家与摄像机

  • 参数

  • 返回值

  • 备注

    • 绑定之后,只能看到玩家背部
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.UnDepartCamera()

UnLockCamera

客户端

method in mod.client.component.cameraCompClient.CameraComponentClient

  • 描述

    解除摄像机锁定

  • 参数

  • 返回值

    数据类型
    说明
    bool 设置是否成功
  • 示例

import mod.client.extraClientApi as clientApi
comp = clientApi.GetEngineCompFactory().CreateCamera(levelId)
comp.UnLockCamera()