奥丁随需

创作者: ValMedia
已更新:2023-01-27 11:18:41
23.6MB

前置 MOD

使用 奥丁随需 时将自动安装

关于此 MOD

隆重推出 OdinOnDemand 1.2:Valheim 终极媒体体验!

OdinOnDemand(OOD)为英灵神殿添加了大量独特的媒体播放器,让你可以在游戏内的屏幕和收音机上观看YouTube、直接播放视频文件、收听Soundcloud、音乐以及动态广播电台!它完全支持多人同步,资源占用低,且易于使用。

1.2版本为《英灵神殿》1.0更新了OOD,并基于LibVLC重建:更高画质的视频,不再有糟糕的格式,以及全新的 最高画质 设置。更多内容请参阅下文和更新日志。

1.2版本新内容

  • 《英灵神殿》1.0 支持 已更新至游戏最新版本。该 奥丁随需 构建菜单组(类别)已回归,基于1.0新的使用标签系统重建。
  • VLC 驱动的流媒体播放 - 视频和音频流由打包的解码 LibVLC 3.0.23 运行时并渲染到屏幕和音频源。画质不再受限于 YouTube 旧的合并“复用”格式。VLC 无需下载完整文件或重新封装即可流式播放媒体。已在 Proton 上测试可用!
  • Twitch和Kick播放! - 完整的Streamlink支持,允许在游戏内播放Twitch和Kick等网站的HLS流。
  • 最高画质设置 - 在齿轮菜单中选择 360p 到 2160p(默认 1080p)。会影响性能。
  • 外部JS状态 - 现代 yt-dlp 需要 JavaScript 运行时才能解锁完整的 YouTube 格式。齿轮菜单现在会告诉你是否找到了运行时,如果没有找到,则会链接到设置指南。这对 YouTube 播放非常重要,所以如果遇到问题,请检查一下。

请尽情享受 OdinOnDemand 1.2!—— Moddy

发现bug?-> 奈克瑟斯 || GitHub 问题追踪器

关于VLC运行时: OOD现在使用 VLC媒体库 和 LibVLCSharp (LGPL 2.1+)与插件一同位于 libvlc/win-x64。它是独立的,你无需自行安装 VLC。这是 OOD 处理 YouTube 播放方式的重大变化,但相比之前,它应该更可靠、质量更高。不过,如果你在新的播放方式下遇到任何问题,请检查你的 JavaScript 运行时,看看它是否正常工作。如果仍有问题,请在以下地址报告 奈克瑟斯 || GitHub 问题跟踪器 并包含您的BepInEx/LogOutput.log和Player.log文件。

ValMedia建议观看影院时关闭泛光效果以获得最佳观看体验。

1.0 Video Preview Video

如果你喜欢这个模组,请考虑向我的Ko-Fi捐款。

功能

  • 通用媒体支持
  • 完整时间同步与多人游戏整合
  • 影院屏幕
    • 剧院银幕、平板电视、桌面电视、显示器、老式电视、笔记本电脑
  • 音乐播放器
    • 留声机,便携音响,收音机,接收器
  • 可链接到任意固定媒体播放器并使用遥控器控制的音箱
    • 已连接扬声器会改变音频中心位置
  • 远程遥控,远距离操作屏幕
  • 移动端玩家;
    • 手推车 - “吟游诗人的马车”,可建造。通过遥控器指向并点击使用。
    • 腰带——“吟游诗人的腰带”,从哈尔多处购买,配方可配置。使用时将其装备,并在指向空白处(例如未指向媒体播放器)时使用遥控器。管理员可以指向并点击其他玩家的腰带以打开其菜单。
  • YouTube 播放列表支持
  • 在线电台流和Twitch/Kick频道(直播频道需要在每个客户端上可选安装Streamlink)。
  • 广泛的网站支持:Vimeo、TikTok、Dailymotion、Facebook、Instagram、Twitter、reddit等。只需尝试你选择的网站,它可能会返回一个有效的文件。
  • 独特的动态电台系统,轻松支持电台插件
  • 新音乐波形可视化器
    • 可配置的缩放系数
  • 完整的媒体播放器配置
    • 音频控制、循环、仅管理员选项
  • 自定义棋子和物品配方配置

YouTube错误报告已彻底改为更详细的模式。如果你发现可归类为用户界面消息的无害异常,请在GitHub上提交建议。请将其他任何问题报告至 奈克瑟斯 或 GitHub 追踪器。

安装

插件的安装相当简单,只需安装到 Bepinex/plugins 中或使用 r2modman 即可。 必须在服务器和客户端上都安装。

YouTube 播放运行时

YouTube 播放使用 yt-dlp(单个视频)、YoutubeExplode(播放列表)和 VLC(LibVLC);纯 Unity 视频播放器 已不再真正支持YouTube。流媒体解码无需下载完整文件,也不需要 ffmpeg.exe.

  • 使用每日构建版 yt-dlp 请求每晚更新以供本地播放。禁用此功能不会降级 yt-dlp,也不会影响远程 NodeJS 服务器。
  • 最高画质 将首选分辨率上限设置为从 360p 到 2160p(默认 1080p)。如果没有兼容格式,YouTube 的最终回退可能会超过此限制;Streamlink 的直播视频上限则是严格的。降低该上限可减少软件解码和帧上传开销,尤其是在使用多个播放器时。
  • 外部 JS 显示检测到的解题运行时间。请同时安装 Deno 2.3+ yt-dlp.exe;Proton 需要 Windows x64 deno.exe。插件还会搜索 路径 适用于Deno、Node、Bun或QuickJS,包括Windows注册表PATH,并将检测到的可执行文件路径直接传递给yt-dlp。如果没有, 质量或音频可用性可能受限查看 EJS 配置指南.

高质量播放需要打包好的 LibVLCSharp 3.10.1, LibVLC 3.0.23,并完成 libvlc/win-x64/ 旁边的目录 奥丁随需应.dll 在每个客户端上。仅复制插件 DLL 是不够的。

在线电台、Twitch 和 Kick

将网址粘贴到任意播放器的普通网址栏中:

  • 无线电: 粘贴一个直接的 HTTP(S) 电台 URL。VLC 会直接串流播放,无需下载广播,也不需要文件扩展名、yt-dlp 或 Streamlink。纯音频源会显示电台面板和波形可视化器。
  • Twitch 和 Kick: 安装 Streamlink 在每个客户端上。齿轮菜单会显示其检测状态。Streamlink 解析频道,打包的 VLC 运行时在游戏内播放 HLS 流。
    • Windows: 放置 streamlink.exe 开 路径,在旁边 奥丁随需应.dll,或在游戏目录中。OOD 也会读取注册表 路径 数值;更改后重新打开齿轮菜单以重新探测。
    • Wine/Proton: 使用 Windows Streamlink,或在以下位置安装 Linux Streamlink: /usr/bin, /usr/local/bin,或 $HOME/.local/bin 使用 Python 3 在 /usr/bin/python3 或 /bin/python3。OOD 会自动桥接到主机,包括从 Steam 的 pressure-vessel 容器中桥接。请保持 Steam 运行;不要在 Steam 运行时中安装 Streamlink。其他 Linux 位置不会被检测。
    • 最高画质 按高度限制实时视频,并在相同分辨率下优先选择更高帧率。如果没有合适的视频,OOD 会在有音频时仅使用音频。

直播流没有共享的进度位置。暂停会冻结并静音本地输出,但流仍在继续播放;恢复后会重新同步到当前进度。每个多人客户端独立解析URL,因此延迟可能有所不同。有限媒体则保持同步。

播放前,OOD 会探测直接 HTTP 源,以识别网站、电台以及直播或有限 HLS。HLS 探测允许 10 秒、四级播放列表,每个播放列表 256 KiB。格式错误或过大的播放列表会导致播放错误。

使用

媒体播放器

在游戏中,放置一个媒体播放器。与其互动以打开界面。

远程播放

你可以将直接的 HTTP(S) 音频/视频流 URL 粘贴到 URL 字段中;这些将使用打包的 VLC 解码器。通过 HTML 响应识别的网页仍使用配置的 yt-dlp 后端。你也可以粘贴 youtube/youtu.be 链接,插件会在所有媒体播放器上为你处理。

所有媒体播放器都额外具备播放以下格式音频文件的能力: 兼容编解码器,以及 soundcloud.com 链接——部分 SoundCloud 歌曲无法播放,具体取决于艺术家及其上传/授权作品的方式。

本地播放

媒体播放器可以播放您电脑本地文件系统中的文件。您可以使用 绝对路径和相对路径 查找本地文件。

绝对路径查找包含驱动器号,并且是 否 除非玩家拥有完全相同的文件路径结构(这不太可能),否则无法通过多人游戏同步。例如,C:\videos\bunny.mp4 或 file://C:\videos\bunny.mp4

相对路径查找会从以下位置开始搜索文件 OdinOnDemand的文件夹。 相对路径查找必须包含前缀 local:// 或 local:\\ 要从插件的文件夹加载文件,请确定您的媒体位置——例如,OdinOnDemand 插件文件夹中的 media 子文件夹——这里的路径是local://movies/media.mp4 <- 将此内容插入游戏内的URL字段中。这将翻译为 F:\SteamLibrary\steamapps\common\Valheim\BepInEx\plugins\Valmedia-OdinOnDemand\movies\media.mp4 或者用户《英灵神殿》安装目录所在的任何位置。你可以将视频文件与你的模组包捆绑在一起,或者指引维京玩家将文件放置在适当位置,以便更轻松地同步本地播放。在游戏内播放它们,用于活动、背景故事等内容。你可以从本地插件文件夹中的任意位置提取文件。

YouTube 播放列表

媒体播放器支持YouTube播放列表。设置播放列表后,界面中会显示新信息。最初设置播放列表的维京人负责处理播放列表逻辑,因此如果他们离开该区域或断开连接,播放列表播放将停止。它支持多人同步。不要过快跳过曲目。你可以选择随机播放或循环播放列表。如果选择循环,整个播放列表将循环播放——而不是单个视频。最后播放的视频将保存为自动播放视频。

正在播放

没有播放列表时,这些行会显示当前标题和时间(已用 / 总计 或 直播 <elapsed>)。长标题会被截断。

时间同步

媒体播放器会定期向当前媒体播放器(ZDO)所有者发送时间同步请求。你可以在配置文件中设置发送请求之间的时间间隔。

要手动跳转到媒体中的某个时间点,请使用齿轮设置菜单下的“设置时间”按钮。以秒为单位输入时间。

遥控器

媒体播放器可以用遥控器远程控制。遥控器可以用1个青铜制作。只需装备,指向媒体播放器并点击。指向并点击巴德的马车来使用。装备了吟游诗人的腰带时,指向并点击没有其他媒体播放器来使用。管理员可以指向并点击其他玩家的吟游诗人的腰带。你可以使用次要遥控操作将扬声器与媒体播放器连接。选择一个扬声器,然后选择一个媒体播放器进行配对。重复此过程可取消配对。你可以在媒体播放器的设置面板中查看扬声器数量并取消所有扬声器的链接。配置选项包括按键配置、最大控制器距离以及将遥控访问设为私有的选项。

锁定

媒体播放器可以锁定在菜单的右上角。当媒体播放器被锁定后,维京人只有在能够进入由守护结界创建的私人区域时才能访问它。管理员可以从齿轮菜单中锁定媒体播放器,阻止普通维京人与特定屏幕进行交互。

附加选项

右下角的齿轮按钮会显示额外选项。此处有仅限管理员访问的选项、收听距离和主音量。

  • 主音量控制所有媒体播放器的整体音量水平。这是一个客户端选项,旨在让维京人可以根据个人喜好静音或增强媒体播放器的音频。每种媒体播放器都有独立的混音器——影院屏幕、收音机和移动播放器。
  • 聆听距离为 多人同步 决定从各个媒体播放器听到声音距离的参数。该参数可在插件配置中限制,但不会对管理员强制执行。

默认值和客户端主音量值也可以在配置中更改。

大多数功能通过RPC事件在多人游戏中同步,包括玩家时间。音量是客户端独立的。

波形可视化器

你可以在配置设置中调整音频波形可视化器的缩放系数。如果你把音量调低了,就需要把这个调高。

动态广播电台

要使用动态音频加载器,你需要按特定格式准备音频文件和附加资源。你可以从资源包或包含音频文件的文件夹中创建自己的电台,然后通过模组仓库或模组整合包进行分发。

注意文件名不能包含字符“#”。

从资源包创建

  1. 准备资源包:

    • 你的资源包应包含你想要在电台中收录的所有音频片段。
    • 包含一个 标题 包含你空间站名称的文本资源。
    • 可选,包含一个 缩略图 用于在视觉上表示你的站点的精灵图资源。 确保在属性检查器中将其设置为“精灵”类型资源。
    • 如果你想让你的电台以随机顺序播放曲目,请包含一个 随机 文本资源。
  2. 加载站点:

    • 当资源包放入(插件路径,例如 OdinOnDemand)\assetbundles 时,该站点将自动创建。

从文件夹创建

  1. 准备文件夹:

    • 放置你的所有音频文件(支持的格式: .ogg, .wav, .mp3, .flac放在同一个文件夹中。
    • 创建一个 标题.txt 包含你空间站名称的文件,并将其放在同一文件夹中。
    • 可选,添加一个名为 缩略图 受支持的扩展名之一(.png, .jpg, .jpeg, .bmp, .tga, .gif) 用作该站点的缩略图。
    • 如果你想让你的电台随机顺序播放曲目,请创建一个空文件,命名为 shuffle.txt 在文件夹中。
  2. 装载站:

    • 当文件夹被放入(插件路径,例如 OdinOnDemand)\radio 时,电台将自动创建。

电台附加内容 - 示例模组

要为便于分发而创建自定义电台插件,请遵循以下简单步骤:

  1. 创建你的电台文件夹
  2. 创建必要文件:
    • odinondemand.txt: 此文件表示该文件夹是一个电台插件。只需创建一个空的 odinondemand.txt 你空间站文件夹中的文件。
    • title.txt: 此文件应包含您的电台名称。创建一个 title.txt 在您电台的文件夹中新建文件,并在其中写上您电台的名称。
  3. 添加音频文件: 将你的音频文件(.ogg、.wav、.mp3 或 .flac)放入电台的文件夹中。插件会将这些文件识别为你的广播电台的一部分。
  4. (可选)AssetBundle 支持: 如果您更喜欢使用AssetBundle,请按照上述说明创建您的AssetBundle,然后将您的AssetBundle文件放入您的站点文件夹中,文件扩展名为“.assetbundle”。
  5. 将文件压缩后用于上传至Thunderstore / Nexus,或将文件夹放入Valheim\BepInEx\plugins\

站点播放

当游戏世界初始化时,服务器站点管理器会启动回放模拟:

  1. 赛道选择: 如果启用了随机播放模式,曲目会被打乱以创建随机播放顺序。否则,曲目将按其在电台中出现的顺序播放。

  2. 同步: 在多人游戏中,电台管理器确保所有玩家在同一时间听到同一首曲目,营造共享的音频体验。这是通过定期与所有玩家同步当前曲目和播放时间来实现的。

  3. 升级进度: 曲目按顺序播放。一首结束后,下一首开始。若启用随机播放,每次完整循环电台曲目列表后顺序都会改变。

  4. 循环: 电台会持续循环播放其曲目列表。最后一首曲目播放完毕后,将回到第一首重新播放(若启用了随机播放,则随机选择一首曲目)。

服务器会模拟电台播放位置或“时间”,并在需要时将其发送给玩家。一旦玩家通过媒体播放器开始播放某个电台,他们就会收到来自服务器的最新电台数据,在客户端加载该电台,并播放媒体。

客户端和服务器必须具有相同的文件才能正常播放。

配置

从 OOD 1.0 开始,配置文件现在存储于 BepInEx\config\OdinOnDemand
配置包含 YouTube API 选择、音量控制、音频播放距离参数、服务端与客户端配置、远程控制功能、VIP 模式设置以及音频淡入淡出选项。它允许对游戏内媒体播放器的行为进行广泛自定义,包括启用或禁用某些功能、调节音量、设置音频接收距离以及指定仅管理员可用的设置。

VLC音频诊断

要诊断音频问题,请在现有的 [YouTube] 部分 BepInEx/配置/com.valmedia.odinondemand.cfg:

[YouTube] 解码器音频统计 = true

默认为 假 并涵盖所有VLC播放。启用后, [VLC 音频 #N] 摘要每五秒写入输出日志一次,并在播放结束或游戏关闭时写入。

日志包括PCM格式、Unity输出速率、DSP缓冲区设置以及:

  • 从 VLC 通过 Unity 传回的回调和帧计数。 提交并不代表能被听见;测量在混音、空间化和设备输出之前停止。
  • 队列欠载、计划静音、非活动读写、丢帧或清除帧、计时重置、刷新、回调和寻址。
  • 队列与预取时长、背压、回调间隔,以及 AudioSource 状态、音高和音量。

配方

配方(部件和物品)现在可以通过位于 BepInEx\config\recipes.json 和 recipes_item.json 的 json 文件进行调整。模组会自动创建这些文件。不过,默认配方文件可以在以下位置找到 这里 如果需要的话。

这里有一些有助于你编辑此文件的实用链接

美化/验证JSON 英灵神殿物品列表

不要修改物品名称,除非你想让它们被移除。如果你遇到任何问题,请记住你可以删除你的 .json 文件,模组会用默认值重新创建它。

VIP系统(测试版)

启用后,仅VIP可放置、移除和交互OdinOnDemand建筑(管理员除外)

通过配置文件启用。将VIP模式设置为True,并为VIP添加SteamID。你也可以自定义消息。该系统非常简陋,请通过Github或Nexus提供反馈。

已知问题

  • 音箱目前很难放置。就……多试几次吧。放在地形上似乎更容易一些。我不太清楚为什么会这样。留声机不受影响。

如果你的GPU驱动控制面板中强制启用了垂直同步,该模组可能无法正常运行。

V-Sync Screenshot

如果模组无法播放任何类型的视频文件,而不仅仅是YouTube——请检查你的GPU驱动程序控制面板,确保垂直同步设置与你的游戏内设置相同,或设置为“匹配应用程序设置”。你也可以查看Player.log。如果有关于Direct3D和刷新率/垂直同步的错误,你可能需要这样做。

截图

Mod Screenshot Mod Screenshot Mod Screenshot Mod Screenshot 由DanAugust建造 最后一张图片是在关闭背光设置的情况下拍摄的。

对于任何精通技术的维京人来说,有一个备用的YouTube API,可以使用Node和youtube-dl自行托管。这是 完全可选 只要内置库(YouTubeExplode)得到维护,就不是必需的。

教程视频

GitHub 说明

致谢

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!