|
本文为 其乐用户(UID:438110) 发布的原创文章,转摘前请联系该用户获得许可
本帖最后由 438110 于 2026-4-22 09:26 编辑
项目代码已发布到 rowinglink - GitHub
书接上回 花了半个下午看看有没有办法从我的划船机导出实时运动数据 鸽了快一年后。Kayak VR Mirage 的划船机议程实在是没有什么进展,我决定借助 Claude Opus 4.6 + GLM 5.1 + Godot 做点什么东西出来,不过在消耗了可观的 token 后发现自己欠缺的好像是审美。
就在这时候,Arnis 给了我灵感 —— 这个项目能用 OpenStreetMap 的数据生成 Minecraft 地图。与其从零开始搭一个过得去的 3D 世界,Minecraft 显然是个更好上手、更好折腾的框架。
我上回玩 Minecraft 好像还是 1.17 版本。研究了一阵子 Fabric Mod 框架后,我捣鼓出了这个叫 RowingLink 的 Fabric 模组。原理很简单:通过 UDP 协议接收划船机的数据,把功率和桨频转化成游戏里小船的推进。我还加了个自动转向功能,默认是开着的,这样你就不用担心撞到岸上,只要埋头划桨就行了。当然,如果你觉得方向不对,随时可以手动拨回来。
首先,你得有一台划船机,而且你得有办法把它的运动数据弄出来。如果你的机器支持 FTMS 协议,那事情就简单多了。我用的是 Mok Fitness K10,是个私有协议,所以我逆向分析了它的蓝牙数据包,写了一个解析逻辑,用的就是上一篇文章的方法,不过多划了一会以找出进位的方法。如果你用的是别的牌子,可能得自己动手。如果你的划船机没有数字化的交互手段,那我推荐 Open Rowing Monitor(布豪,This repository was archived by the owner on Apr 5, 2026. It is now read-only)。
我不是什么专业的 Minecraft 模组专家,我只在下面这个环境里跑通过:
- JDK 21
- Minecraft 1.21.11
- Fabric API [0.141.3+1.21.11]
- 单人游戏模式
为了让划船的感觉更真实,我还装了一堆非常棒的视觉增强模组:
- Iris [1.10.7+mc1.21.11]
- Lithostitched [1.6.1]
- Sodium [0.8.7+mc1.21.11]
- Tectonic [3.0.19]
- Voxy [0.2.13-alpha]
- Voxy World Gen V2 [2.2.4]
顺便提一下,Prism Launcher 很好用,管理版本和模组省了我不少事
- 先把 Fabric API 装上
- 运行 ./gradlew build 来构建项目,生成的 jar 文件就在 build/libs/ 下面
- 把这个 jar 文件扔进你的 ${MINECRAFT_DIR}/mods/ 文件夹
- 启动你的数据桥接工具,让它往 UDP 端口发数据
- 进游戏,坐上船,输入 /rowing connect
- 开始划吧
- 如果你想练个二十分钟,就用 /rowing train 20
- 如果你想要一点魔鬼训练,就开生存模式
老实说,它们在我的 Ryzen 9700X 上运行似乎有些吃力,暂时不清楚如何配置 Mod 优化,不过换成 Apple Silicon M5 就顺畅了,这下真成了「我有个叔叔用 x86 Windows 11 打游戏.jpg」 了。
我还在 modrinth 上找到了一些自行车模组,所以动感单车什么的也不是不行。
什么,你说有 EXR 这样的服务?那可要花老多钱了。
|