自由相机API

自由相机API

自由相机模式,并灵活调整相机状态

基础库

Free camera API V5

Logo

自由摄像机模式

自 3.2.0 版本起,该模组内置了自由摄像机功能,因为许多玩家被模组名称吸引,却发现该功能实际上并不存在。

默认情况下,此功能 未绑定 按键,需要手动设置。方块碰撞检测 默认启用,可通过配置界面禁用。如果服务器未安装此模组,该功能将 强制启用;否则,将遵循服务器的设置。

优势有哪些?

  • 与摄像机内部解耦,降低复杂度。
  • 使用简单灵活。
  • 支持加载玩家视野范围之外的区块(通过扩展实现)。

如何注册和使用插件

  1. 创建插件类

    @Plugin(value = "example", priority = ModifierPriority.LOWEST)
    public class ExamplePlugin implements CameraPlugin {
        // ...
    }
    

    value:插件唯一标识符(字符串)
    priority:优先级设置(ModifierPriority.HIGH/LOWEST 等)

  2. 初始化

    public ExamplePlugin(CameraModifier modifier) {
        modifier.disable()
                .enablePos()
                .enableFov()
                .enableGlobalMode();
    }
    
  3. 每帧更新摄像机数据

    modifier
                .enablePos() // 启用位置修改
                .enableRotation() // 启用旋转修改
                .enableFov() // 启用 FOV 修改
                .setPos(1, 2, 3) // 将摄像机位置设置为 (1,2,3),默认为以玩家为中心的局部坐标
                .addPos(1, 2, 3)
                .setRotationYXZ(90f, 15f, 25f) // 将摄像机旋转设置为 (90f, 15f, 25f)
                .move(0, 0, -5) // 基于当前旋转移动摄像机
                .enableGlobalMode() // 启用全局模式,所有坐标和旋转将按照世界坐标进行修改
                .enableChunkLoader() // 启用区块加载器,加载摄像机周围的区块。需要额外安装 Free Camera API Addition 模组才能启用此功能,否则将无效果
                .enableObstacle() // 启用碰撞检测
    

展示

Dolly zoom Roll