VRChatNext

Hi there 👋

Welcome to VRChatNext.

The projects we have:

Shocking VRChat

English version

一个小工具,通过接受 VRChat Avatar 的 OSC 消息,使用 Websocket 协议联动郊狼 DG-LAB 3.0 ,达到游戏中Avatar被别人/自己触摸,就会被郊狼电的效果。

我们的 VRChat 群组: ShockingVRC https://vrc.group/SHOCK.2911

[!CAUTION] 您必须阅读并同意 安全须知 (Safety Precautions in English) 后才可以使用本工具!

使用方式

  1. 前往 本项目Release 下载最新版本的 Shocking-VRChat 工具
  2. 首次运行 exe 程序,将会在当前目录生成设置文件并退出。
  3. 在配置文件 settings-v*.*.yaml 中填入 avatar_params 与工作模式(shock/distance)。
  4. (可选)按需修改进阶配置文件 settings-advanced-v*.*.yaml 内容,参数含义请查看进阶配置文件参考。
  5. 重新运行本程序,请确认是否弹出了 Windows 防火墙安全警告,如弹出请选择允许,以接受郊狼 APP 被控连接。
  6. 启动 DG-LAB 3.0 APP,使用 Socket 控制功能扫描弹出窗口的二维码。
  7. 享受 VRChat!

工作模式解释

distance 距离模式

shock 电击模式

基础配置文件参考

配置文件格式 yaml, 当前配置文件版本: v0.2

dglab3:
  channel_a:
    avatar_params:  
    # 此处填写 OSC 监听参数组,可以使用通配符 * 匹配任意字符串,注意保留正确缩进与前缀的 “- ” 
    # 可参考 https://python-osc.readthedocs.io/en/latest/dispatcher.html#mapping 
    - /avatar/parameters/pcs/contact/enterPass
    - /avatar/parameters/Shock/wildcard/*
    mode: distance # 工作模式,此处为距离模式
    strength_limit: 100 # 强度限制,程序将取该强度与主机设置的强度中最大的一个
  channel_b:
    avatar_params:
    - /avatar/parameters/lms-penis-proximityA*
    - /avatar/parameters/ShockB2/some/param
    mode: shock # 工作模式,此处为电击模式
    strength_limit: 100
version: v0.2

模型参数配置

常见参数

本部分请协助补充描述与解释。

进阶配置文件参考

SERVER_IP: null # 为 null 时程序将尝试自动获取本机 IP,如果获取错误,请将null修改为正确的 IP 地址(手机可以访问到电脑的 IP ,通常为有线网络或 WiFi )
dglab3:
  channel_a: # 通道 A 配置
    mode_config:   # 工作模式配置
      distance:
      # 该项目下的参数仅对 distance 距离模式生效
        freq_ms: 10 
        # 生成波形的频率(间隔毫秒),推荐 10 
        # 详细请参考 DG-LAB-OPENSOURCE 蓝牙协议V3 的波形部分
      shock:
      # 该项目下的参数仅对 shock 电击模式生效
        duration: 2
        # 触发后的电击时长
        wave: '["0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464"]'
        # 电击波形
      trigger_range:
      # 触发阈值设置,对所有模式生效,范围 0 ~ 1
        bottom: 0.0 # OSC 回报参数触发下界(低于视为 0%)
        top: 0.8    # OSC 回报参数触发上界(超过视为 100%)
  channel_b: # 通道 B 配置,参数设置与 A 通道相同
    mode_config:
      distance:
        freq_ms: 10
      shock:
        duration: 2
        wave: '["0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464","0A0A0A0A64646464"]'
      trigger_range:
        bottom: 0.1
        top: 0.8
general: # 通用配置
  auto_open_qr_web_page: true # 程序启动时自动开启扫码 Web 页面
  local_ip_detect:  # 探测本地 IP 时使用的服务器地址
    host: 223.5.5.5 # 默认为 AliDNS 如果在中国大陆以外使用,请适当修改
    port: 80
log_level: INFO # 日志等级,诊断问题时可以改为 DEBUG
osc: # OSC 服务配置
  listen_host: 127.0.0.1 # 如果 VRChat 在其他主机运行,请改为 0.0.0.0,并给 VRChat 正确配置 osc 启动命令行参数。
  listen_port: 9001
version: v0.2 # 配置文件版本
web_server: # Web 服务器配置
  listen_host: 127.0.0.1 # 如果需要从其他主机打开网页扫码,请改为 0.0.0.0
  listen_port: 8800
ws: # Websocket 服务配置
  listen_host: 0.0.0.0
  listen_port: 28846
  master_uuid: 6da2fd3b-a6e5-4af4-afc1-96bfd2e9e95c # 首次启动自动随机生成

FAQ

是否有逃生通道

应该如何设置上限

想用一个参数同时触发两个通道

OSC 端口冲突了怎么办

报错中显示 OSC监听失败 或包含 create_datagram_endpointWinError 10048 为该问题。该问题一般是和面捕软件冲突导致。

Exception in thread Thread-1 (async_main_wrapper):
Traceback (most recent call last):
  ...
  File "shocking_vrchat.py", line 143, in async_main_wrapper
  ...
  File "shocking_vrchat.py", line 135, in async_main
  File "asyncio\base_events.py", line 1387, in create_datagram_endpoint
  File "asyncio\base_events.py", line 1371, in create_datagram_endpoint
OSError: [WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
  1. 请前往 osc-repeater 从 Release 下载 osc-repeater
  2. 解压后在 osc-repeater_x.x.x_windows_amd64.exe 同目录创建配置文件,名为 config.yaml,文件内容:
    listenPorts:
      - 9001
    targets:
      - "127.0.0.1:9011"
      - "127.0.0.1:9021"
    
  3. (可选)如果你的 VRChat 存在特殊OSC设置,请按照需要修改 9001 为实际端口号
  4. 在面捕软件中修改 OSC Receiver 端口号为 9011,保存后退出面捕软件
  5. 修改 ShockingVRChat 的 settings-advanced-v*.*.yaml 进阶配置,设置 osclisten_port9021
  6. 请确认已经退出面捕程序和ShockingVRChat(本软件)
  7. 依次双击运行 osc-repeater、面捕程序、ShockingVRChat

*以后使用时只执行步骤 7 即可,如果只用面捕也需要启动 osc-repeater

控制台内有波形输出,但是没有强度或强度显著变小

程序看起来收不到 OSC 数据

  1. 如果你有面捕,请检查 Steam 中 VRChat 的启动命令行参数,是否有类似 --osc=9000:127.0.0.1:9001 的配置,如有,请修改进阶配置文件,osc listen_port 的值为最后一个冒号后的值,如 9001。
  2. Action Menu 中选择 Options > OSC > Reset Config 重置 OSC 配置
  3. 如果之前是正常使用的,但忽然收不到,重启电脑可以解决问题,似乎是 VRChat 的 Bug。
  4. 目前已知会占用 UDP 9000 端口导致 VRChat OSC组件启动失败的程序,请退出以下程序并重置OSC。
    • 酷狗音乐

为什么强度一直是最大可用值

APP 扫码无法连接/连接超时

  1. 请确认手机和电脑在同一个网络内,例如手机不可以使用流量。
  2. 请检查二维码网页上显示的IP地址,例如 ws://192.168.1.2:28846/ ,该IP是否为你的网卡IP。
  3. 如果IP错误,请在进阶配置文件中 SERVER_IP: 填写正确的 IP 地址后重启程序再试。
  4. 请确认 Windows 防火墙是否允许本程序访问网络(接受传入连接)。

程序版本更新后配置文件如何继承?

OSC 能收到其他参数但收不到模型的参数

Credits

感谢 DG-LAB-OPENSOURCE ,赞美 DG-LAB 的开源精神!

感谢以下用户对常见参数部分的协助:ichiAkagi


安全须知

为了您能健康地享受产品带来的乐趣,请在使用前确保已阅读并理解本安全须知的全部内容。
错误使用本产品可能对您或者他人造成伤害,由此产生的责任将由您自行承担。

感谢您选择DG-LAB系列产品,用户的安全始终是我们的第一要务。
本产品为情趣用品,请保证在安全,清醒,自愿的情况下使用。并将其放置于未成年人接触不到的地方。

本安全须知大约需要2分钟阅读。

下列人群严禁使用本产品:

  1. 佩戴心脏起搏器,或体内有电子/金属植入物的人群(可能影响起搏器或植入物的正常功能)
  2. 癫痫,哮喘、心脏病、血栓及其他心脑血管疾病患者(感官刺激可能诱发或加重症状)
  3. 皮肤敏感,皮炎及其他皮肤疾病患者(可能使皮肤疾病症状加重)
  4. 有出血倾向性疾病的患者(电刺激会使局部毛细血管扩张从而可能诱发出血)
  5. 未成年人、孕妇、知觉异常及无表达意识能力的人群
  6. 肢体运动障碍及其他无法及时操作产品的人群(可能在感到不适时无法及时停止输出)
  7. 其他正在接受治疗或身体不适的人群。

下列部位严禁使用本产品:

  1. 严禁将电极置于胸部;绝对禁止将两电极分别置于心脏投影区前后、左右或任何可能使电流流经心脏的位置;
  2. 严禁将电极置于头部、面部,眼部、口腔、颈部及颈动脉窦附近;
  3. 严禁将电极置于皮肤破损或水肿处,关节扭伤挫伤处,肌肉拉伤处,炎症/感染病灶处,或未完全愈合的伤口附近。

其他注意事项:

  1. 严禁在同一部位连续使用30分钟以上,长时间使用可能导致局部红肿或知觉减弱等其他损伤。
  2. 严禁在输出状态下移动电极,在移动电极或更换电极时,必须先停止输出,避免接触面积变化导致刺痛或灼伤。
  3. 严禁在驾驶或操作机器等危险情况下使用,以避免受脉冲影响而失去控制。
  4. 严禁将电极导线插入产品主机导线插孔之外的地方(如电源插座等)。
  5. 严禁在具有易燃易爆物质的场合使用。
  6. 请勿同时使用多台产品。
  7. 请勿私自拆卸或修理产品主机,可能会引起故障或意料外的输出。
  8. 请勿在浴室等潮湿环境使用。
  9. 在使用过程中,请勿使两电极互相接触短路,可能导致感受减弱,接触部位刺痛或灼伤,或损坏设备。
  10. 电极使用时必须与皮肤充分紧密接触,如果电极与皮肤的接触面积过小,可能导致刺痛或灼伤。如果电极与皮肤的接触面积过大,则可能导致电感微弱。
  11. 产品内含锂电池,禁止拆解,装机,挤压或投入火中。若产品出现故障或异常发热,请勿继续使用。

重要使用提示:

  1. 由于不同部位对于电流耐受程度存在差异,且一些材质的电极可能使少部分用户出现过敏现象。当您在一个部位首次使用本产品时,或使用一款新的电极时,请先试用10分钟之后等待一段时间,确认使用部位无异常后方可继续使用。
  2. 受人体生理特性的影响,身体对于脉冲刺激的感受会逐渐变弱,因此,在使用过程中可能需要逐渐增加强度来保持相对稳定的体感强度。
    这有可能导致在同一部位过长时间使用本产品后,真实刺激强度已经逐渐超过可承受的范围但是却没有被感觉到,从而造成损伤。
    虽然本产品的最高输出严格低于安全标准的限制(r.m.s < 50ma,500Ω),但长时间使用仍然有可能造成损伤。因此,请在使用过程中严格遵守连续使用时长的限制。在同一部位连续使用30分钟后请休息一段时间,让感受灵敏度恢复到正常水平。
  3. 连续不断的高频刺激会使使用部位快速适应,建议使用频率不断变化且间歇休息的波形,从而获得更好的使用体验。以每小段波形刺激时间1-10秒,休息1-10秒为宜。