第一人称摄像机

第一人称摄像机

自然的以碰撞检测为特点的第一人称摄像头变换。

游戏机制

📷 第一人称相机

将第一人称相机稍微向前移动至头部前方——并防止其穿墙。


✨ 功能说明

原版《我的世界》将相机置于角色头部内部。本模组将其向前移动一小段距离(默认 0.25 格),使视野更自然,并让你能更宽广地观察周围环境。

难点在于确保相机不会嵌入方块内部。本模组通过以下方式处理:

  • 碰撞限制 —— 如果前方有墙壁阻挡,相机会回退到眼部位置,而非穿墙而过。
  • 转身时身体微调 —— 若转动视角会导致相机嵌入墙壁,你的身体会被轻微推开以留出空间。
  • 移动限制 —— 你的身体无法移动到会使偏移相机被方块掩埋的位置。
  • 视野摇晃抑制 —— 靠近墙壁时,行走产生的摇晃效果会被平滑抑制。
  • 射线投射物品修正 —— 桶、玻璃瓶、船以及可在水上放置的物品使用转换后的相机目标而非原始眼部射线。

所有功能均为仅客户端。对于少量基于射线投射的右键物品,本模组会调整发送的朝向数据包,使服务器解析的目标与你实际看到的保持一致。


🤝 第一人称模型集成

First-person Model 可在第一人称视角下显示完整的玩家身体 —— 这是一个非常酷的想法,也是本模组的灵感来源之一。强烈建议与 First Person Camera 一同使用。

单独使用 First-person Model 时的问题是:身体必须从实际位置偏移渲染,否则当你低头时身体会填满整个屏幕。First Person Camera 将这些偏移值锁定到玩家实际所在的位置,因此两个模组开箱即用,完美配合。

First-person Model 是可选的。本模组即使没有它也能正常运行。


⚙️ 配置文件

首次启动时会自动生成 config/first-person-camera.json:

{
  "cameraForward": 0.25
}

cameraForward 表示相机向前移动的距离(以格为单位)。默认值 0.25 在自然感与防碰撞之间取得了良好平衡。


⚠️ 反作弊声明

本模组尚未经过服务器端反作弊系统测试。大部分行为仅为视觉/客户端层面,但基于射线投射的右键物品可能会短暂发送调整后的朝向或位置数据包,以便服务器定位与转换后相机相同的方块。请在服务器上自行决定是否使用。