第一人称视角

第一人称视角

第一人称视角是一个轻量级的摄像机改进项目,旨在为你的瓦尔海姆冒险带来沉浸式的平视游戏体验。本项目是对Kailen_经典第一人称视角模组的现代性能致敬。

描述

在早期创作所开创的概念基础上,本模组从一个全新的架构角度来处理视角切换——完全专注于深度的引擎原生性能,以实现流畅、无缝的过渡。

主要特性

  • 流畅的视角缩放: 将鼠标滚轮一直向内滚动,即可无缝直接切换到维京人的眼球视角。再次向外滚动,第一次点击即可立即返回标准第三人称视角。
  • 引擎原生视觉剔除: 内置智能状态跟踪门控。当你的视角模式通过即时 -1 护甲哈希覆盖进行切换时,该模组会精准地从你的即时相机镜头中过滤掉本地角色身体和头盔网格。这确保了完全开阔的视野,且没有持续的处理器开销。
  • 回头角度阀门: 使用实时向量数学计算(点积)将你的相机角度与角色前进方向进行比较。如果你转头向后冲刺,你的身体模型会无缝地从视野中消失(localScale = 0.001f)以防止穿模,并在向前看时立即弹回。
  • 集成瞄准对齐: 该模组直接挂钩 Valheim 内部的视线方向数值,利用游戏已经在计算的轨迹,使你的武器瞄准、盾牌格挡和弓箭瞄准与准星完美匹配。
  • 平滑狙击弓缩放: 在你开始拉弓弦的精确毫秒内,通过平滑的数学曲线收窄你的镜头视场角(FOV),为你提供真正的精准战术瞄准。
  • 航行 UI 重对齐: 自动检测你何时掌舵船只,并将风向和转向 HUD 指标重新定位到显示器的下方中央网格,保持你的视线清晰美观。

📊 性能优先的工程设计

为确保此框架融入重度模组组合而不增加单线程 CPU 压力,我们从零开始围绕零分配和直接缓存原则设计了这些系统:

  • 静态字段令牌缓存(v1.1.7 新增): 在高频帧 tick 中完全绕过繁重的 AccessTools 反射查询。关键引用地址——例如你玩家的手部跟踪属性(m_leftItem)——在启动时仅映射一次,然后直接从内存读取。这将相机渲染延迟降低至每帧 0 纳秒,并彻底消除相机旋转的微卡顿。
  • 解耦的多模组和谐同步: 明确构建为与其他模组无负担地交互。你的 Crosshair Hitbox Fix 和 Auto Repair Fix 具有被动监听阀门,可自动读取此模组的相机状态。它们会实时动态调整其目标命中框和骨骼缩放,完全防止数据管道摩擦或框架串扰!
  • 状态驱动优化: 渲染管线不采用逐帧扫描组件或重新评估玩家护甲设置的方式,而是使用轻量级状态触发器。它严格在视角过渡期间应用阴影投射规则,让你的热帧路径完全不受负担。
  • 全局材质草地修复: 实现在游戏初始启动画面(Game.Awake)期间运行一次的全局材质扫描。它扫描当前分配在你 VRAM 中的所有材质,并永久禁用近距离相机删除层(_CamCull),强制野草、花朵和地形杂物一直渲染到你的靴子边缘。
  • 一致的帧节奏: 通过将变量移出堆分配区域并将数据保持在高速原始状态,无论你是在探索空旷的生物群系还是建造复杂的结构性堡垒,你的帧时间都保持平稳流畅。

⚙️ 可自定义配置

在你的首次启动时,一个干净的配置文件(FirstPersonPerspective.cfg)会自动生成在你的 BepInEx 文件夹中,让你能够清晰地微调参数:

  • 第一人称 FOV 和 第三人称 FOV 的独立选项。
  • 自定义 弓缩放 FOV 阈值 和过渡速度。
  • 近裁剪面覆盖,以舒适地调整相机镜头切片平面越过面部特征。
  • 可切换的 平滑相机运动,以柔和地抑制剧烈的垂直地形颠簸。

安装说明

将 FirstPersonPerspective.dll 直接放入你的 Valheim\BepInEx\plugins\ 文件夹中

致谢

本模组受 Kailen_ 的 First Person View 启发,那是我长期使用的另一个令人惊叹的必备模组。

我的模组:

Global Update Manager Boundary Load Staggerer (Look-Ahead Streaming Matrix) Particle Pacing Limiter Base Virtual Proxy Optimizer Terrain Loading Priority Fix Performance Booster Auto Repair Fix Crosshair Hitbox Fix Network Culling Optimizer True Axis Build Rotator First Person Perspective