Skip to content

Releases: a1156883061/SummerInHeat_SiH_VR

v1.10.0

Choose a tag to compare

@a1156883061 a1156883061 released this 23 Aug 04:12

v1.10.0

English

This release consolidates changes from v1.7.0 through v1.10.0.

OpenXR Hand Models

  • Improved OpenXR hand model alignment and added a transparent ghost-hand material path.
  • Added configuration for hand model material override and RGBA color.

Passthrough and OpenXR Reliability

  • Added native passthrough controls and documentation for supported runtimes and Virtual Desktop chroma-key setup.
  • Reworked the OpenXR stereo copy path to synchronize work on the Unity render thread, with per-eye swapchain state tracking and safer lifecycle handling.
  • Added D3D11 swapchain validation and shader-resource-view integration for Unity external textures.

Native Helper and Builds

  • Introduced UnityGraphicsHelper ABI v2, including render-event copy tickets, device-generation tracking, SRV creation, and native diagnostics.
  • Updated native builds and validation for the Visual Studio 2026 v145 toolset, including packaging checks for required helper binaries and OpenXR dependencies.

MagicaCloth2 Grip Grab

  • Added an experimental OpenXR-only Grip interaction for nearby movable MagicaCloth2 particles, enabling hands to control physics-enabled clothing such as skirts.
  • Added independent hand grip poses, safe automatic release behavior, and input consumption while a clothing capture is active.
  • Replaced the initial fixed-step transition with damped motion and reduced the default maximum capture count to two particles per hand.
  • Added configuration for enabling grip grab, search radius, and maximum captured particles.

Notes

  • OpenXR requires Direct3D 11.
  • Keep the native helper and managed plugin from the same build.
  • This release summarizes committed changes in v1.7.0..1.10.0.

中文

本次发布汇总 v1.7.0v1.10.0 的更新。

OpenXR 手部模型

  • 改进 OpenXR 手部模型对齐,并新增透明幽灵手材质路径。
  • 新增手部模型材质覆盖和 RGBA 颜色配置。

透视与 OpenXR 可靠性

  • 新增原生透视控制,并补充受支持运行时和 Virtual Desktop 色键设置文档。
  • 重构 OpenXR 双眼复制路径,在 Unity 渲染线程同步工作,增加逐眼 swapchain 状态跟踪和更安全的生命周期处理。
  • 为 Unity 外部纹理增加 D3D11 swapchain 验证和 Shader Resource View 集成。

Native Helper 与构建

  • 引入 UnityGraphicsHelper ABI v2,提供渲染事件复制 ticket、设备代际跟踪、SRV 创建和原生诊断。
  • 将原生构建和校验更新至 Visual Studio 2026 v145 工具集,并增加所需 helper 二进制文件和 OpenXR 依赖的打包检查。

MagicaCloth2 握持抓取

  • 新增仅限 OpenXR 的实验性握持交互,可控制附近可移动的 MagicaCloth2 粒子,用于操作裙子等带物理效果的衣物。
  • 新增独立的左右手握持姿势、安全自动释放机制,以及抓取生效时对握持输入的占用。
  • 使用阻尼运动替换原有固定步长过渡,并将每只手默认最大抓取数降至 2 个粒子。
  • 新增抓取开关、搜索半径和最大抓取粒子数配置。

说明

  • OpenXR 需要 Direct3D 11。
  • 原生 helper 与托管插件必须来自同一次构建。
  • 本发布说明汇总的提交范围为 v1.7.0..1.10.0

v1.7.0

Choose a tag to compare

@a1156883061 a1156883061 released this 21 Jun 14:05

v1.7.0 Release Notes

English

OpenXR Hand Models

  • Added packaged OpenXR hand model assets under OpenXRHandModels.
  • Reworked OpenXR controller visualization to load hand models from an AssetBundle instead of relying only on generated primitives.
  • Added configurable left and right hand model asset names, hand model bundle path, hand scale, and finger curl offset.
  • Added lightweight JSON parsing and hand pose model helpers for hand asset metadata.
  • Refined OpenXR hand rendering and collider alignment so visual hands and runtime interaction proxies share the same controller pose basis.

OpenXR Passthrough

  • Added XR_FB_passthrough support for Meta/OpenXR runtimes that expose the extension.
  • Added runtime passthrough toggling through OpenXR Toggle Passthrough Keybind.
  • Added passthrough background color switching: when passthrough is supported, the same toggle enables passthrough and applies the configured game background color; when unsupported, the toggle only switches the configured background color.
  • Added a Unity Blit alpha-fix shader bundle so the OpenXR projection layer can use source alpha while preserving opaque character pixels.
  • Added packaged OpenXR shader assets under OpenXRShaders.

Build And Packaging

  • Updated build.ps1 to package OpenXR hand model assets and OpenXR shader assets into release and deployment output.
  • Added copy.ps1 for copying packaged plugin output.
  • Added BepInEx 6 Harmony dependency packaging through lib/bie6/0Harmony.dll.
  • Updated solution and project build metadata for the new packaging layout.

Physics Diagnostics

  • Removed the hardcoded PHYSICS_LOG symbol from the BepInEx 5 OpenXR release configuration.
  • PHYSICS_LOG diagnostics are now enabled through the explicit build option instead of always being compiled into that release target.

Documentation

  • Updated README documentation for the new OpenXR hand model packaging and runtime setup.

Configuration

Config Type Default Description
OpenXR Hand Model AssetBundle Path String OpenXRHandModels\openxr_hands AssetBundle path for OpenXR hand model prefabs. Relative paths are resolved from the plugin DLL folder.
OpenXR Left Hand Model Name String LeftHand AssetBundle prefab name for the left hand model.
OpenXR Right Hand Model Name String RightHand AssetBundle prefab name for the right hand model.
OpenXR Hand Model Scale Float 1.0 Scale multiplier applied to loaded OpenXR hand prefabs.
OpenXR Hand Finger Curl Degrees Float 90.0 Additional local finger curl rotation applied to loaded hand model bones.
OpenXR Toggle Passthrough Keybind KeyCode F9 Toggles XR_FB_passthrough and passthrough background color. If passthrough is unavailable, only toggles the background color.
OpenXR Passthrough Background Color String 0 0 0 255 Solid game background color used by passthrough alpha fixing. Format: R G B A or R,G,B,A.
OpenXR Passthrough Alpha Fix Shader Bundle Path String OpenXRShaders\passthrough_alpha_fix AssetBundle path for shader Hidden/UnityVRMod/PassthroughAlphaFix.

Notes

  • XR_FB_passthrough depends on OpenXR runtime support. If the extension is unavailable, passthrough cannot be enabled, but the configured background color can still be toggled.
  • Existing generated config files keep their current values. New config entries may need to be added by regenerating or manually updating the config file.
  • PHYSICS_LOG diagnostics should be enabled with /p:PhysicsLog=true or build.ps1 -PhysicsLog when diagnostic builds are needed.

中文

OpenXR 手部模型

  • 新增打包的 OpenXR 手部模型资源,位于 OpenXRHandModels
  • 重做 OpenXR 控制器可视化,支持从 AssetBundle 加载手部模型,不再只依赖运行时生成的基础几何体。
  • 新增左右手模型资源名、手部模型 AssetBundle 路径、手部缩放、手指弯曲偏移等配置。
  • 新增轻量 JSON 解析和手部姿态模型辅助逻辑,用于读取手部资源元数据。
  • 调整 OpenXR 手部渲染和碰撞代理对齐,使可视手部与运行时交互代理使用一致的控制器 pose 基准。

OpenXR 透视

  • 新增对 XR_FB_passthrough 的支持,用于暴露该扩展的 Meta/OpenXR 运行时。
  • 新增通过 OpenXR Toggle Passthrough Keybind 在运行时切换透视。
  • 新增透视背景色切换:支持透视时,同一个按键会开启透视并应用配置的游戏背景色;不支持透视时,该按键只切换配置的背景色。
  • 新增 Unity Blit alpha 修复 shader bundle,使 OpenXR projection layer 可以使用 source alpha,同时保留人物等非背景像素的不透明效果。
  • 新增打包的 OpenXR shader 资源,位于 OpenXRShaders

构建与打包

  • 更新 build.ps1,将 OpenXR 手部模型资源和 OpenXR shader 资源复制到 release 与部署输出。
  • 新增 copy.ps1,用于复制打包后的插件输出。
  • 新增 BepInEx 6 Harmony 依赖打包,文件为 lib/bie6/0Harmony.dll
  • 更新 solution 和 project 构建元数据,以适配新的打包结构。

物理诊断

  • 移除 BepInEx 5 OpenXR release 配置中硬编码的 PHYSICS_LOG 符号。
  • PHYSICS_LOG 诊断现在只通过显式构建选项启用,不再默认编译进该 release 目标。

文档

  • 更新 README 中关于 OpenXR 手部模型打包和运行时设置的说明。

配置项

配置项 类型 默认值 说明
OpenXR Hand Model AssetBundle Path 字符串 OpenXRHandModels\openxr_hands OpenXR 手部模型 prefab 的 AssetBundle 路径。相对路径会基于插件 DLL 所在目录解析。
OpenXR Left Hand Model Name 字符串 LeftHand 左手模型在 AssetBundle 中的 prefab 名称。
OpenXR Right Hand Model Name 字符串 RightHand 右手模型在 AssetBundle 中的 prefab 名称。
OpenXR Hand Model Scale 浮点数 1.0 加载后的 OpenXR 手部 prefab 缩放倍率。
OpenXR Hand Finger Curl Degrees 浮点数 90.0 额外应用到手部模型骨骼的本地手指弯曲角度。
OpenXR Toggle Passthrough Keybind KeyCode F9 切换 XR_FB_passthrough 和透视背景色。如果透视不可用,则只切换背景色。
OpenXR Passthrough Background Color 字符串 0 0 0 255 透视 alpha 修复使用的游戏纯色背景。格式为 R G B AR,G,B,A
OpenXR Passthrough Alpha Fix Shader Bundle Path 字符串 OpenXRShaders\passthrough_alpha_fix shader Hidden/UnityVRMod/PassthroughAlphaFix 的 AssetBundle 路径。

说明

  • XR_FB_passthrough 取决于 OpenXR 运行时是否支持该扩展。如果扩展不可用,无法启用原生透视,但仍可以切换配置的背景色。
  • 已生成的配置文件会保留现有值。新增配置项可能需要重新生成配置文件或手动补充。
  • 需要物理诊断构建时,请通过 /p:PhysicsLog=truebuild.ps1 -PhysicsLog 显式开启 PHYSICS_LOG

v1.5.0

Choose a tag to compare

@a1156883061 a1156883061 released this 12 Jun 23:07

v1.5.0 Release Notes

English

OpenXR Physical Hand Interaction

  • Added runtime OpenXR hand collider proxies for DynamicBone-driven body, hair, and clothing physics.
  • Added runtime MagicaCloth2.MagicaSphereCollider proxies at the OpenXR controller grip poses.
  • Added MagicaCloth2 registration through both serialized colliderList patching and runtime ColliderManager.AddCollider(...) when available.

Physics Diagnostics

  • Added optional OpenXR physics diagnostics behind the PHYSICS_LOG compile flag.
  • Added logs for nearby colliders, focused physics fields, root physics inventory, and full component dumps.
  • Removed diagnostic list truncation so development builds can inspect every matching physics component.
  • Added build support for PHYSICS_LOG through /p:PhysicsLog=true and build.ps1 -PhysicsLog.

Logging

  • Added configurable mod log filtering.
  • Changed the default log level to Warning to reduce noisy runtime input and diagnostic logs.
  • Off now disables all Unity VR Mod log output after configuration initialization.

Configuration

Config Type Default Description
OpenXR Enable DynamicBone Hand Colliders Boolean true Enables OpenXR controller collider proxies for DynamicBone physics.
OpenXR DynamicBone Hand Collider Radius Float 0.06 Radius in meters for DynamicBone hand collider proxies.
OpenXR Enable MagicaCloth Hand Colliders Boolean true Enables OpenXR controller MagicaCloth2.MagicaSphereCollider proxies for MagicaCloth2 physics.
OpenXR MagicaCloth Hand Collider Radius Float 0.06 Radius in meters for MagicaCloth2 hand collider proxies.
OpenXR Enable Physics Diagnostics Boolean false Enables OpenXR physics diagnostic logs. Only available in PHYSICS_LOG builds.
OpenXR Physics Diagnostics Radius Float 0.08 Radius in meters for the diagnostic overlap probe around each controller. Only available in PHYSICS_LOG builds.
OpenXR Physics Diagnostics Interval Seconds Float 1.0 Minimum seconds between physics diagnostic log entries. Only available in PHYSICS_LOG builds.
Log Level Enum Warning Controls Unity VR Mod log output. Values: Off, Error, Warning, Info.

Notes

  • Existing generated config files keep their current values. If the new hand collider options already exist in a config file, set them to true there to enable them.
  • The DynamicBone and MagicaCloth hand collision features are experimental and depend on the target character or clothing physics setup.
  • Set Log Level to Info when verifying patch counts such as DynamicBone or MagicaCloth collider injection logs.

中文

OpenXR 手部物理交互

  • 新增 OpenXR 手柄位置的 DynamicBone 碰撞代理,用于身体、头发、服装等 DynamicBone 物理。
  • 新增 OpenXR 手柄 grip pose 上的 MagicaCloth2.MagicaSphereCollider 碰撞代理。
  • MagicaCloth2 同时尝试写入序列化 colliderList,并在运行时可用时调用 ColliderManager.AddCollider(...) 注册碰撞器。

物理诊断

  • 新增由 PHYSICS_LOG 条件编译控制的 OpenXR 物理诊断功能。
  • 新增附近碰撞体、重点物理字段、根对象物理组件清单、全部组件 dump 等诊断日志。
  • 移除诊断列表数量限制,开发调试构建可以完整查看匹配到的物理组件。
  • 支持通过 /p:PhysicsLog=truebuild.ps1 -PhysicsLog 开启 PHYSICS_LOG 构建。

日志

  • 新增可配置的 Mod 日志过滤。
  • 默认日志等级调整为 Warning,减少运行时输入和诊断日志刷屏。
  • Off 会在配置初始化后关闭所有 Unity VR Mod 日志输出。

配置项

配置项 类型 默认值 说明
OpenXR Enable DynamicBone Hand Colliders 布尔 true 是否启用 OpenXR 手柄位置的 DynamicBone 碰撞代理。
OpenXR DynamicBone Hand Collider Radius 浮点数 0.06 DynamicBone 手部碰撞代理半径,单位为米。
OpenXR Enable MagicaCloth Hand Colliders 布尔 true 是否启用 OpenXR 手柄位置的 MagicaCloth2.MagicaSphereCollider 碰撞代理。
OpenXR MagicaCloth Hand Collider Radius 浮点数 0.06 MagicaCloth2 手部碰撞代理半径,单位为米。
OpenXR Enable Physics Diagnostics 布尔 false 是否启用 OpenXR 物理诊断日志。仅在 PHYSICS_LOG 构建中可用。
OpenXR Physics Diagnostics Radius 浮点数 0.08 控制器周围物理诊断 overlap 探测半径,单位为米。仅在 PHYSICS_LOG 构建中可用。
OpenXR Physics Diagnostics Interval Seconds 浮点数 1.0 物理诊断日志最小输出间隔,单位为秒。仅在 PHYSICS_LOG 构建中可用。
Log Level 枚举 Warning 控制 Unity VR Mod 日志输出。可选值:OffErrorWarningInfo

说明

  • 已生成的配置文件会保留现有值。如果新手部碰撞配置项已经存在于 cfg 中,需要在 cfg 里手动设为 true
  • DynamicBone 和 MagicaCloth 手部碰撞仍属于实验功能,实际效果取决于角色或服装使用的物理系统。
  • 验证 DynamicBone 或 MagicaCloth 注入数量时,请把 Log Level 设为 Info

v1.4.0

Choose a tag to compare

@a1156883061 a1156883061 released this 08 Jun 21:33

Next Release Notes

English

Camera Follow Mode

  • Added a VR Rig Follows Game Camera config option, enabled by default.
  • Added game camera follow state so the VR rig can follow the original game camera's position and yaw changes.
  • Added OpenXR runtime switching between game-camera follow mode and free VR viewport mode with Left Stick Click.
  • Recentered OpenXR HMD tracking when initializing or returning to follow mode, reducing offsets caused by the user's physical play-space position.
  • Applied the same recentered pose to OpenXR projection layer submission, keeping the rendered camera pose and compositor pose consistent.
  • Prevented the main game camera follow patch from forcing Camera_Main back to the VR pose while game-camera follow mode is enabled.
  • Added basic OpenVR support for applying the original game camera's position and yaw deltas to the VR rig.

Notes

  • In follow mode, scripted game camera movement should now move the VR rig with the original camera.
  • In free mode, the VR viewport can still be moved independently.

中文

镜头跟随模式

  • 新增 VR Rig Follows Game Camera 配置项,默认开启。
  • 新增原游戏镜头跟随状态,使 VR Rig 可以跟随原游戏镜头的位置与 yaw 变化。
  • OpenXR 支持运行时使用左摇杆按下切换“跟随原游戏镜头”和“自由 VR 视角”。
  • 初始化或切回跟随模式时,会重新居中 OpenXR HMD 水平追踪位置,减少由玩家现实空间位置造成的偏移。
  • OpenXR 提交投影层时也使用同一套居中后的 pose,保持 Unity 渲染相机与 OpenXR compositor 的镜头一致。
  • 跟随模式开启时,避免 Camera_Main 被旧的 VR pose 回写逻辑强制覆盖。
  • OpenVR 增加基础支持,可以将原游戏镜头的位置与 yaw 增量应用到 VR Rig。

说明

  • 跟随模式下,原游戏的脚本镜头移动会同步带动 VR Rig。
  • 自由模式下,VR 视角仍可独立移动。

v1.3.0: UI On Top, World Anchor, Multi-Controller

Choose a tag to compare

@a1156883061 a1156883061 released this 07 Jun 15:41

Summer in Heat VR Mod — v1.3.0 Release Notes

New Features

UI Always On Top (Overlay Camera)

  • Dedicated overlay camera renders VR UI layer (Layer 31) on top of all scene geometry
  • UI panels are no longer occluded by characters or objects
  • Configurable via OpenXR Force UI On Top (default: enabled)

World-Fixed UI Panel Anchor Mode

  • Anchored panels now stay at their world position, unaffected by locomotion or grip drag
  • New OpenXR UI Panel Anchor Mode config (enum):
    • World (default): panel stays fixed at world position
    • Rig: panel moves with VR rig (old behavior)
  • Applies to all three panels: main UI, Danmen, and SubCamera

--vr Command Line Flag

  • Pass --vr at game launch to auto-enter VR mode
  • Includes start_vr.bat launcher script for one-click VR startup
  • No need to press F11 after game loads

Multi-Controller OpenXR Interaction Profiles

  • Extended controller support:
Profile Device Button Mapping
oculus/touch_controller Meta Quest 2/3 Full X/Y/A/B
bytedance/pico_neo3_controller Pico Neo 3 Full X/Y/A/B
bytedance/pico4_controller Pico 4 Full X/Y/A/B
htc/vive_cosmos_controller HTC Vive Cosmos Full X/Y/A/B
valve/index_controller Valve Index Left A→X, Left B→Y
null profile (fallback) Unknown controllers Standard X/Y/A/B paths
  • All standard controllers share the same action binding list
  • Valve Index gets extra bindings: left/A→X, left/B→Y
  • HTC Vive (original, trackpad-only, no face buttons) is not supported

New Config Options

Option Type Default Description
OpenXR Force UI On Top bool true Render UI panels above scene geometry
OpenXR UI Panel Anchor Mode enum World Anchoring behavior: World (fixed) or Rig (follow)

Improvements

  • UniverseLib build cache: PreBuild skips UniverseLib compilation when DLL already exists (~4x faster incremental builds)
  • build.ps1 deploy: New -Deploy switch auto-copies DLL to game directory after build
  • copy.ps1: Standalone deploy script with configurable game directory
  • Fixed $NativeBuildAvailable = $false PowerShell syntax error in build.ps1

Commits Since v1.2.1

Commit Description
c7df429 Multi-controller OpenXR interaction profile bindings
67206f8 World-fixed anchor mode with enum-based config
7724ced Overlay camera + UI on top config toggle
b4e5b47 --vr flag + start_vr.bat launcher

File Structure

GameData/BepInEx/
├── openxr_loader.dll
├── UnityGraphicsHelper.dll
├── UniverseLib.Mono.dll
└── plugins/
    └── UnityVRMod/
        ├── UnityVRMod.dll
        ├── UniverseLib.Mono.dll
        ├── UnityGraphicsHelper.dll
        └── openxr_loader.dll

BIE5 Support, OenXR1.0 support, postFx config(mainly fix bulr menu), optimize control logic

Choose a tag to compare

@a1156883061 a1156883061 released this 05 Jun 09:34

新功能

双手 VR 输入控制

  • 任意手扳机点击 UI:按哪只手的扳机就自动切换到哪只手,直到另一只手点击
  • 双击 X/A 切换面板跟随手:双击 X(左) 或 A(右) 切换 UI 面板跟随的手
  • 单击 X/A 切换面板显示:单击 X(左) 或 A(右) 隐藏/显示 UI 面板(Hybrid2D 场景下禁用)
  • Y/B 面板切换支持双手:左手 Y 和右手 B 都能切换面板锚定/跟随模式

平滑移动

  • 左摇杆行走:左摇杆控制角色在头显方向的平滑移动
  • 速度可配置(OpenXR Smooth Move Speed,默认 1.5 m/s)

双手握把拖拽视角

  • 左右手任意握把都能拖拽世界
  • 修复非控制手握把松手时的位置闪回问题

传送 & 转向

  • 始终绑定右手:传送瞄准、确认、快照转向、平滑转向始终使用右手摇杆
  • 不受 OpenXR Control Hand 配置影响

触摸交互 (Petting)

  • 扳机触发:扣扳机触发触摸交互(替代原握把)
  • 碰撞检测半径 0.08m,搜全部碰撞层
  • 三色图标反馈:白色(无目标)→ 蓝色(靠近身体)→ 橙色(触发中)
  • 触摸检测手跟随 UI 射线切换逻辑

OpenXR 兼容性

  • API 版本 1.1 不支持时自动回退到 1.0
  • 兼容 Virtual Desktop (VDXR)

后处理控制

  • 默认关闭 VR 后处理同步(消除游戏中景深/DOF 模糊效果)
  • 通过 OpenXR Disable PostFX Sync 配置开关

BepInEx 5 支持

  • 新增 BIE5 Mono 构建配置
  • 支持 BepInEx 5.4.x

手部模型

  • 左右手胶囊体控制器模型同时显示(蓝/红)
  • 支持加载 OBJ 控制器模型

文档

  • 新增中文操作说明 README-ZH.md
  • 控制表更新为最新按键映射
    Full Changelog: v1.2.0...v1.2.1