Petrichor_Studio-RainieLove icon

RainieLove

当队友全部阵亡或全员死亡时,自动播放《雨爱》。Plays the song 'Yu Ai' automatically when all teammates are dead or the squad is wiped.

Last updated a day ago
Total downloads 83
Total rating 1 
Categories Audio Client-side
Dependency string Petrichor_Studio-RainieLove-1.0.0
Dependants 0 other packages depend on this package

This mod requires the following mods to function

bbepis-BepInExPack-5.4.2109 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2109
RiskofThunder-HookGenPatcher-1.2.3 icon
RiskofThunder-HookGenPatcher

MMHOOK generation at runtime.

Preferred version: 1.2.3
RiskofThunder-R2API_Core-5.1.1 icon
RiskofThunder-R2API_Core

Core R2API module

Preferred version: 5.1.1
RiskofThunder-R2API_ContentManagement-1.0.5 icon
RiskofThunder-R2API_ContentManagement

API for adding content to the game

Preferred version: 1.0.5
RiskofThunder-R2API_Sound-1.0.3 icon
RiskofThunder-R2API_Sound

API for adding custom sounds or musics

Preferred version: 1.0.3

README

🎵 RainieLove - 雨中冒险2 氛围模组

RainieLove 是一款为《雨中冒险2》(Risk of Rain 2)设计的沉浸式音乐模组。当你的队伍陷入绝境时,这首《雨爱》将为你奏响。

✨ 功能特性

  • 队友死光自动播放:在多人联机中,只要房间内还有 1 名玩家存活(即队友全部阵亡),本地将自动开始播放《雨爱》。
  • 全员阵亡播放:无论是单人模式还是多人模式,当所有人彻底死亡(进入 Game Over 结算画面)时播放。
  • 智能状态检测:
    • 玩家拥有“复活币”(如 Dio 的备用伙伴)处于倒计时状态时,不会提前播放。
    • 进入新场景时有 3 秒宽限期,防止刚进图实体未生成导致的误触。
  • 自动停止播放:
    • 有队友被复活。
    • 传送门充能完毕(关卡结束)。
    • 切换场景或游戏彻底结束。
  • 控制台指令支持:内置强大的调试指令,方便随时测试。

🛠️ 安装说明

前置依赖

推荐安装方式 (r2modman / Thunderstore)

  1. 在 Mod 管理器中搜索并安装前置依赖。
  2. 将本模组下载并安装(或拖入 BepInEx/plugins/ 目录)。

手动安装

  1. 确保游戏根目录已安装 BepInEx 和 R2API。
  2. 将以下两个文件放入 BepInEx/plugins/ 文件夹中:
    • RainieLove.dll(模组核心文件)
    • RainieLoveBank.sound(Wwise 音频库文件,切勿修改后缀名)
  3. 启动游戏即可。

💡 注意:音频播放受游戏内“主音量”和“音乐音量”共同控制。如果听不到声音,请检查游戏设置。 💡 联机说明:此模组为客户端本地生效。只有安装了该模组的玩家才能在触发条件时听到音乐,未安装的队友听不到。


💻 控制台指令 (调试用)

在游戏内按 ~ 键呼出控制台(如果未开启,请在 BepInEx/config/BepInEx.cfg 中启用,或安装 DebugToolkit)。

指令 说明
rainie_play 强制播放《雨爱》
rainie_stop 强制停止播放《雨爱》
rainie_status 打印当前状态(包括玩家人数、存活人数、宽限倒计时、播放状态)

🧑‍💻 开发者指南 (技术细节)

由于《雨中冒险2》在 BepInEx 环境下阉割了 Unity 原生的音频解码器(使用 UnityWebRequestMultimedia 或 AudioClip.Create 会导致音频长度读取为 0),本模组放弃了传统的 AudioSource 播放方式,而是采用了底层更稳定的方案:

Wwise 音频引擎 + R2API.Sound

源码编译要求

在 Visual Studio 中编译本项目(ror2RainieLove.csproj)需要引用以下 DLL(通常位于 BepInEx/core 或游戏 Managed 目录):

  • BepInEx.dll
  • 0Harmony.dll
  • RoR2.dll
  • Assembly-CSharp.dll
  • HGCSharpUtils.dll (提供 ConCommand 扫描特性)
  • R2API.dll 及 R2API.Sound.dll
  • Unity 相关的模块 (UnityEngine.dll, UnityEngine.CoreModule.dll 等)

如何替换/修改音乐?

如果你想把音乐换成别的,或者调整音量:

  1. 下载并安装 Wwise Launcher (推荐版本 2023.1.4.8496)。
  2. 导入你的 .wav 文件,创建两个 Event:Play_RainieLove 和 Stop_RainieLove。
  3. 生成 SoundBank,将生成的 .bnk 文件重命名为 RainieLoveBank.sound。
  4. 将 .sound 文件替换到 BepInEx/plugins/ 目录下即可(代码无需修改)。

注:代码中通过 Util.PlaySound(PlayEventName, gameObject) 发送 Wwise 事件信号,完全绕过了 Unity 原生音频系统。


📄 许可证

本项目仅供学习与交流使用。音乐《雨爱》版权归原作者杨丞琳及版权方所有。