跳到正文

Veil Lights for TaCZ

作者:CappleApple

让 TaCZ 配件兼容 Veil 和 Veil Volume Lights。

收藏

截图

介绍

介绍由机器翻译自 CurseForge 原页面,仅供参考。

适用于 TaCZ 的 Veil 灯光

一个 NeoForge 1.21.1 兼容附加模组,通过独立的 Veil Volume Lights 前置库渲染已配置的 TaCZ 武器灯光。客户端安装需要同时安装 veiltaczlights 和 veilvolumelights;仅在服务端安装 TaCZ 附加模组 JAR 仍是可选的,安装后可启用数据包配置文件和多人游戏手电筒状态同步。

我没有支持 Forge 1.20.1 的计划。如果你愿意,可以自行移植。必要时会移植到未来版本。

功能说明

  • 在渲染时捕获真实的 TaCZ 动画附件骨骼矩阵。因此腰射、开镜、换弹、冲刺、检视、摇晃、后坐力、自定义动画以及每把枪的附件位置都会通过 TaCZ 自身的变换层级传递。
  • 每帧为每个渲染中的玩家更新一个可复用的库 VolumeLight.Spot。
  • 支持第一人称和第三人称渲染,对远处灯光进行距离剔除,并在帧结束时以及断开连接/卸载世界时移除过期灯光。
  • 在活跃的第三人称发射器处渲染面向摄像机的彩色镜头光晕。该光晕会进行深度测试,正对灯光时最亮,从侧面看较暗,且绝不会绘制在第一人称武器视图之上。
  • 通过服务端同步 L 键的手电筒状态,使其他安装了模组的客户端能看到远程光束和光晕随其拥有者开启和关闭。
  • 使用该库原生的 Veil 点光源、聚光灯和矩形区域光句柄。TaCZ 仅提交聚光灯。
  • 保留仅不透明世界的深度,并在到达不透明几何体之前应用连续的、减法的透明介质透射。
  • 自动识别模型包含类似手电筒发射器骨骼的 TaCZ LASER 附件,并可在 TOML 中提供显式的第三方配置文件。
  • 从数据包 JSON 加载每个附件的 beam 配置文件,并为标准 PEQ-15、PEQ-6 和 Nightstick 附件内置默认配置。Nightstick 需要显式配置文件,因为 TaCZ 仅将其声明为激光,且不提供手电筒标记。

按 L(默认)切换本地玩家的武器灯光。

客户端配置包含 thirdPersonFlare、thirdPersonFlareSize 和 thirdPersonFlareIntensity。光晕距离使用现有的 thirdPersonLightDistance 限制。

配置

NeoForge 会创建 config/veiltaczlights-client.toml 用于全局回退行为。每个数值选项都会强制执行边界限制。

附件配置文件是位于以下位置的数据包文件:

data/<attachment namespace>/veiltaczlights/attachment_profiles/<attachment path>.json

例如,data/addonpack/veiltaczlights/attachment_profiles/weapon_light.json 配置 addonpack:weapon_light:

{
  "enabled": true,
  "emitter_bone": "flashlight",
  "beam": {
    "length": 40.0,
    "width": 14.0,
    "inner_width": 7.0,
    "color": "#F2FAFF",
    "intensity": 1.2,
    "shadows": true,
    "volumetric_strength": 0.4
  }
}

length 是以方块为单位的最大距离。width 和可选的 inner_width 是该距离处完整光束的直径(以方块为单位),附加模组会将其转换为 Veil 锥角。color 接受 #RRGGBB 或三个数字的 RGB 数组。数据包配置文件优先,并随 /reload 重新加载。

在单人游戏中,集成服务端会自动加载并同步这些文件和手电筒状态。对于专用多人服务器,请在服务端安装附加模组 JAR,以将服务端数据包配置文件和玩家手电筒切换状态同步到客户端。服务端不需要 TaCZ 和 Veil,客户端仍可加入未安装此附加模组的服务器;在这种情况下,仅客户端旧的 TOML 回退可用,且远程已识别灯光默认开启。

当附件没有对应的数据包配置时,此附加组件仍会创建 config/veiltaczlights-attachments.toml,作为旧版/本地回退方案:

[attachments."addonpack:weapon_light"]
enabled = true
emitterBone = "flashlight"
range = 40.0
intensity = 1.2
outerConeAngle = 30.0
innerConeAngle = 16.0
red = 1.0
green = 0.97
blue = 0.90
shadows = true
volumetricStrength = 0.0

仅当资源包中该附件的来源本身是在灯处创作时,才设置 emitterBone = "@attachment"。设置 enabled = false 可覆盖对附件的自动识别。

捆绑的 JSON 默认值采用了清晰可见的体积光强度。Veil Volume Lights 会在终止深度快照中排除透明表面,将相邻且相同的介质合并,并根据光线在每个体积内实际经过的距离进行积分。彩色介质会沿光线路径叠加各波长的透射率,而不同光源仍以帧缓冲区叠加的方式分别处理。点光源、聚光灯和面光源均采用相同的行为。

如果附件缺少可识别或已配置的发射器骨骼,该附件将被跳过。调试模式下,每位玩家每秒最多记录一次已解析的枪械、附件、骨骼、位置、朝向向量以及 Veil 句柄状态。

常见问题

Veil Lights for TaCZ 支持哪些 Minecraft 版本?

Veil Lights for TaCZ 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。

Veil Lights for TaCZ 怎么安装?

先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。

评论

登录后评论和评分

CappleApple 的其他作品

查看全部 →