维伏工艺 史诗战斗 摄像机偏移

维伏工艺 史诗战斗 摄像机偏移

为Vivecraft中的史诗战斗添加可配置的虚拟现实摄像头偏移,允许相对于玩家身体调整第一人称摄像头位置。

Vivecraft Epic Fight 相机偏移

概述

Vivecraft Epic Fight 相机偏移 是一个客户端兼容性模组,用于在使用 Vivecraft 搭配 Epic Fight 时调整第一人称 VR 相机。

我制作这个模组是因为某些 Epic Fight 动画会导致可见的第一人称玩家模型与 VR 相机相交。在攻击、武器架式和其他动画动作期间,相机可能会进入玩家模型的头部、颈部、胸部或身体,遮挡视野并使战斗体验不舒适。

此模组提供两种相机跟踪模式:

  • HEAD_POSITION,跟随 Epic Fight 头部关节的动画位置
  • FIXED,应用相对于玩家模型身体方向的可配置偏移

从 0.3.1 版本 开始,HEAD_POSITION 是默认跟踪模式。


VR 舒适度重要警告

HEAD_POSITION 可能导致强烈或快速的相机移动。

由于相机跟随 Epic Fight 动画头部关节的移动,某些攻击、武器架式、闪避、自定义动画或动画包可能会导致相机晃动、上升、下降或突然移动。

这可能导致:

  • 晕动症
  • 头晕
  • 恶心
  • 头痛
  • 眼睛疲劳
  • 失去平衡或身体不适

如果您开始感到不适,请立即停止游戏。

休息一下,将跟踪模式切换到 FIXED,或者如果症状持续,停止使用此模组。不要在不适的情况下继续游戏。

移动的强度很大程度上取决于所使用的 Epic Fight 动画、武器、自定义模型和动画包。


HEAD_POSITION 模式

HEAD_POSITION 读取 Epic Fight 头部关节的动画位移,并将该移动应用到 Vivecraft 相机。

例如,某些武器架式会导致 Epic Fight 玩家模型略高于其正常位置。没有相机跟踪时,模型可能会向上移动而 VR 相机保持在后方,导致相机被埋入玩家模型内部。

使用 HEAD_POSITION 时,相机跟随头部关节的动画移动:

Vivecraft 相机位置
+ Epic Fight 动画头部关节位移
+ 配置的相机偏移

这使相机相对于动画玩家模型保持在更一致的位置。

仅调整相机位置。相机旋转仍由 VR 头显控制。

这意味着:

  • 环顾四周仍然跟随头显的物理移动
  • Vivecraft 的房间尺度头部移动仍然可用
  • Epic Fight 动画可以移动相机位置
  • Epic Fight 动画不直接控制玩家注视的方向

HEAD_POSITION 跟踪不应用移动距离限制。相机跟随动画提供的位移。

自动回退

HEAD_POSITION 可能无法适用于每个玩家模型、骨骼系统、动画或 Epic Fight 附加组件。

如果模组无法获取有效的头部关节或动画姿态,它会自动回退到现有的 FIXED 身体相对偏移系统。

HEAD_POSITION 可用
→ 应用动画头部位移和配置的偏移

HEAD_POSITION 不可用
→ 仅应用配置的 FIXED 偏移

回退可能发生在以下情况:

  • 找不到头部关节
  • Epic Fight 玩家补丁不可用
  • 当前的骨骼系统不受支持
  • 无法获取动画姿态
  • 自定义模型使用不兼容的骨架
  • 计算出的位置包含无效数据
  • 其他模组干扰 Epic Fight 的动画系统

回退是自动的,不需要更改配置文件。


FIXED 模式

FIXED 应用可配置的相机偏移,而不跟随动画头部关节。

水平偏移根据 Epic Fight 玩家模型身体的方向旋转。

它们不基于 VR 头显的方向。

例如:

  • rightOffsetMeters 始终向模型右侧移动
  • forwardOffsetMeters 始终向模型身体面向的方向移动
  • 用头显向侧面看不会旋转这些偏移

FIXED 模式通常更稳定,对于使用 HEAD_POSITION 时出现晕动症的玩家可能更舒适。


功能特性

  • 在 Epic Fight 模式激活时调整 Vivecraft 第一人称相机
  • 包含 HEAD_POSITION 动画跟踪
  • 跟随 Epic Fight 动画头部关节的位移
  • 当头部跟踪不可用时自动回退到 FIXED 模式
  • 保持 VR 头显旋转独立于 Epic Fight 动画
  • 支持垂直相机调整
  • 支持前后调整
  • 支持左右调整
  • 根据 Epic Fight 玩家模型的身体方向旋转水平偏移
  • 可限制仅在 Epic Fight 模式下生效
  • 可限制仅在 Vivecraft 的第一人称渲染通道中生效
  • 不对 HEAD_POSITION 应用移动距离限制
  • 仅客户端
  • 无需在服务器上安装

前置要求

此版本是针对以下环境创建和测试的:

  • Minecraft: 1.20.1
  • Forge: 47.4.22 或更高版本
  • Vivecraft: 1.20.1-1.3.15
  • Epic Fight: 20.14.17

其他版本可能无法正常工作。

无法保证与自定义 Epic Fight 模型、骨骼系统、动画和附加模组的兼容性。


安装方法

  1. 安装 Forge、Vivecraft 和 Epic Fight。
  2. 将此模组的 JAR 文件放入客户端的 mods 文件夹。
  3. 启动 Minecraft 一次以生成配置文件。
  4. 在编辑配置之前关闭 Minecraft。

此模组仅限客户端使用,无需安装在专用服务器上。

在安装新版本之前,请移除旧版本的此模组。不要在 mods 文件夹中同时保留多个版本。


配置

使用该模组启动一次 Minecraft 后,将创建以下文件:

config/epicfight_vr_camera_offset-client.toml

配置更改在 Minecraft 启动时加载。

编辑文件后请重启 Minecraft。

0.3.1 版本的默认配置

configVersion = 4

[tracking]
trackingMode = "HEAD_POSITION"

[camera]
enabled = true

rightOffsetMeters = 0.000
verticalOffsetMeters = 0.150
forwardOffsetMeters = 0.000

epicFightModeOnly = true
firstPersonOnly = true
debugLogging = true

配置选项

trackingMode

trackingMode = "HEAD_POSITION"

选择相机跟踪方法。

可用值:

trackingMode = "HEAD_POSITION"

跟随 Epic Fight 的动画头部关节位移,并添加配置的相机偏移。

这是 0.3.1 及更高版本中的默认模式。

trackingMode = "FIXED"

禁用头部关节跟踪,仅使用配置的身体相对相机偏移。

FIXED 模式推荐给遇到晕动症、相机移动过度或与 HEAD_POSITION 存在兼容性问题的玩家。


enabled

enabled = true

启用或禁用所有相机调整功能。

  • true:相机调整已启用
  • false:相机调整已禁用

rightOffsetMeters

rightOffsetMeters = 0.000

相对于 Epic Fight 玩家模型身体的方向水平移动相机。

  • 正值将相机向身体右侧移动
  • 负值将相机向身体左侧移动

默认值:

rightOffsetMeters = 0.000

允许范围:

-2.0 至 2.0 米

示例:

rightOffsetMeters = 0.050

这将相机向玩家模型的右侧移动约 5 厘米。


verticalOffsetMeters

verticalOffsetMeters = 0.150

在世界空间中垂直移动相机。

  • 正值将相机向上移动
  • 负值将相机向下移动

0.3.1 版本中的默认值:

verticalOffsetMeters = 0.150

允许范围:

-2.0 至 2.0 米

在 HEAD_POSITION 模式下,此偏移在计算动画头部关节位移后添加。

示例:

verticalOffsetMeters = 0.100

这将增加约 10 厘米的向上偏移。


forwardOffsetMeters

forwardOffsetMeters = 0.000

相对于 Epic Fight 玩家模型身体的方向水平移动相机。

  • 正值将相机向前移动
  • 负值将相机向后移动

默认值:

forwardOffsetMeters = 0.000

允许范围:

-2.0 至 2.0 米

示例:

forwardOffsetMeters = 0.050

这将相机相对于玩家模型的身体向前移动约 5 厘米。


epicFightModeOnly

epicFightModeOnly = true

控制相机调整是否仅在 Epic Fight 模式激活时应用。

  • true:仅在 Epic Fight 模式激活时应用调整
  • false:允许在 Epic Fight 模式之外进行调整

推荐设置:

epicFightModeOnly = true

firstPersonOnly

firstPersonOnly = true

将相机调整限制在 Vivecraft 的第一人称 LEFT、RIGHT 和 CENTER 渲染通道。

  • true:仅对第一人称 VR 渲染应用调整
  • false:不将调整限制在这些渲染通道

推荐设置:

firstPersonOnly = true

debugLogging

debugLogging = true

在 latest.log 中启用一次性诊断消息。

这些消息有助于确定 HEAD_POSITION 是否激活,或者模组是否已回退到 FIXED 模式。

当 HEAD_POSITION 成功工作时,可能会出现类似以下的消息:

HEAD_POSITION active using joint Head

当头部跟踪不可用时,可能会出现类似以下的消息:

HEAD_POSITION unavailable; using FIXED body-relative fallback

如果不需要诊断日志,请将此选项设置为 false。


建议调整方法

默认的 HEAD_POSITION 垂直偏移为:

verticalOffsetMeters = 0.150

如果视角感觉太高,请逐渐减小:

verticalOffsetMeters = 0.100

或:

verticalOffsetMeters = 0.050

如果相机仍在玩家模型内部,请逐渐增大该值。

对于前后和侧向调整,请先使用较小的值。建议以约 0.02 到 0.05 米之间的值作为起点。

一次只测试一个设置。

如果 HEAD_POSITION 导致不适的相机移动,请切换到:

trackingMode = "FIXED"

故障排除

在报告问题之前:

  1. 确认只安装了一个版本的此模组。
  2. 确认已安装所需版本的 Forge、Vivecraft 和 Epic Fight。
  3. 使用 trackingMode = "FIXED" 进行测试。
  4. 临时移除自定义 Epic Fight 动画包进行测试。
  5. 检查 latest.log 中的 HEAD_POSITION 或回退消息。

报告问题时,请包括:

  • latest.log
  • debug.log
  • 任何可用的崩溃报告
  • 受影响的动画包的名称和版本
  • 受影响的 Epic Fight 附加组件的名称和版本
  • 导致问题的武器或架式
  • 问题是否在 FIXED 模式下也出现

这些文件和详细信息可能有助于确定原因,但不能保证修复。


AI 辅助开发

此模组是在 AI 的协助下创建的。

我不是经验丰富的程序员,通常没有足够的技术能力来诊断或修复可能出现的每个问题。

因此,如果无法解决崩溃、兼容性问题、错误的相机移动或其他问题,我在此提前深表歉意。

HEAD_POSITION 与 Epic Fight 的动画和模型系统交互,因此兼容性可能因自定义模型、骨骼系统、武器、动画和附加模组而异。


重要数据警告

在安装或使用此模组之前,请备份您的世界。

尽管这是一个客户端相机兼容性模组,但在高度模组化的环境中仍可能发生意外错误或不兼容。

使用此模组风险自负。

我对以下情况不负责:

  • 损坏的世界
  • 损坏的游戏数据
  • 丢失的进度
  • 删除或更改的配置文件
  • 崩溃
  • 身体不适或晕动症
  • 由使用此模组直接或间接引起的任何其他问题

请始终保留您重要的 Minecraft 世界和配置文件的安全备份。