📋 概述
OneComme OSC Router 是一個強大的插件,可將 YouTube、Bilibili 和 Niconico 的聊天訊息轉換為 OSC(Open Sound Control)資料串流。本指南將引導您完成設定和使用的每個步驟。
請確保您已準備:
- 已安裝 OneComme 並配置好串流平台帳號
- 支援 OSC 的應用程式(VRChat、OBS、TouchDesigner 等)
- 對 OneComme 介面有基本了解
您將學到
- 如何安裝和配置插件
- 導覽基於網頁的控制面板
- 建立自訂訊息路由規則
- 與 VRChat 和其他應用程式整合
- 常見問題的疑難排解
📦 安裝
將下載的 ZIP 檔案解壓縮到 OneComme 的插件目錄。資料夾結構應該如下:
OneComme/
└── Plugins/
└── onecommeOSCrouter/
├── plugin.js
├── package.json
├── web-ui/
├── impl/
├── tests/
└── node_modules/
螢幕截圖:檔案總管顯示 OneComme 插件目錄中的插件資料夾
新增螢幕截圖: plugin_folder_structure.png
onecommeOSCrouter(區分大小寫)。使用不同名稱,OneComme 將無法偵測到它。
完全關閉並重新啟動 OneComme 以偵測新插件。簡單的重新整理無效 — 需要完全重新啟動。
- 關閉 OneComme(檔案 → 結束 或 Alt+F4)
- 重新啟動 OneComme
- 檢查主控台中的插件載入訊息
螢幕截圖: OneComme 主控台顯示插件成功載入訊息
需要手動擷取: console_plugin_loaded.png
進入 OneComme 的插件設定並啟用「OneComme OSC Router」:
- 開啟 OneComme 設定
- 前往插件標籤
- 在清單中找到OneComme OSC Router
- 勾選啟用核取方塊
- 點選套用/儲存
螢幕截圖: 已啟用 OSC Router 的 OneComme 插件設定
新增螢幕截圖: enable_plugin.png
🚀 首次啟動
插件啟用後,開啟網頁瀏覽器並前往:
http://localhost:19101
您應該會看到 OneComme OSC Router 控制面板。
http://localhost:19101 儲存為書籤以便快速存取。只要 OneComme 執行且插件已啟用,介面就可以隨時存取。
插件配有針對 VRChat 最佳化的合理預設值:
| 設定 | 預設值 | 說明 |
|---|---|---|
| OSC 主機 | 127.0.0.1 |
本機(同一台電腦) |
| OSC 連接埠 | 19100 |
標準 VRChat OSC 連接埠 |
| 網頁 UI 連接埠 | 19101 |
控制面板存取 |
| 訊息格式 | 二進位 | 標準 OSC 格式 |
點選設定標籤以檢視並根據需要修改這些設定。
🖥️ 網頁介面導覽
網頁介面有四個主要標籤。讓我們逐一探索:
📊 概述標籤
即時監控的儀表板:
- 訊息統計:已處理的總訊息數、各平台訊息數
- 連線狀態:OneComme 和 OSC 連線指示器
- 系統健康:插件執行時間和效能指標
- 快速操作:快速存取常用設定
螢幕截圖:顯示統計資料和連線狀態的概述標籤
新增螢幕截圖: overview_tab_detailed.png
📜 規則標籤
建立和管理訊息路由規則:
- 規則清單:所有自訂路由規則
- 啟用/停用切換:快速規則啟用
- 編輯按鈕:修改現有規則
- 刪除按鈕:移除不需要的規則
- 新增規則:建立自訂路由邏輯
- 測試規則:使用範例訊息驗證規則
📋 記錄標籤
即時監控訊息流:
- 即時動態:傳入和傳出訊息
- 篩選選項:依平台、訊息類型篩選
- 搜尋:尋找特定訊息或使用者
- 匯出:下載記錄以進行除錯
- 清除:重設記錄歷程
⚙️ 設定標籤
配置插件行為:
- OSC 輸出:主機、連接埠、訊息格式
- 移除 Emoji:從訊息中去除 emoji
- 預設端點:啟用/停用特定平台端點
- 進階:連線設定、效能調整
- 備份/還原:匯出和匯入配置
🎨 建立自訂路由規則
路由規則讓您能將特定類型的訊息發送到不同的 OSC 端點。讓我們逐步建立一個規則。
- 點選規則標籤
- 點選「新增規則」按鈕
- 規則建立器模態視窗將出現
填寫基本資訊:
- 規則名稱:描述性名稱(例如:「高額超級留言」)
- 說明:此規則的作用(選填但建議填寫)
- 端點:訊息將被發送到的 OSC 位址(例如:
/chat/superchats) - 已啟用:勾選以立即啟用
條件決定哪些訊息符合此規則。範例:路由超過 $20 的超級留言
- 點選「新增條件群組」
- 選擇平台: YouTube
- 選擇訊息類型: superchat
- 點選「新增條件」
- 設定:
- 欄位:
amount - 運算子:
greater_than - 值:
20
- 欄位:
equals- 完全符合not_equals- 不相等contains- 字串包含not_contains- 字串不包含greater_than/less_than- 數值比較regex- 正規表示式符合exists/not_exists- 欄位存在
欄位對應讓您自訂 OSC 訊息中包含的資料欄位。如果未指定,將發送所有欄位。
對應範例:
username→namemessage_text→commentdonation_amount→amountcurrency_code→currency
螢幕截圖:包含欄位對應的規則建立器
新增螢幕截圖: rule_builder_mappings.png
儲存前,使用範例資料測試規則:
- 點選「測試規則」按鈕
- 測試面板將顯示範例訊息
- 查看哪些訊息符合您的規則
- 根據需要調整條件
螢幕截圖:顯示符合訊息的規則測試結果
新增螢幕截圖: rule_test_results.png
對規則滿意後:
- 點選「儲存規則」
- 規則會出現在規則清單中
- 隨時切換開關以啟用/停用
- 規則會自動儲存到磁碟
螢幕截圖:顯示新建立規則的規則清單
新增螢幕截圖: rule_saved_in_list.png
規則範例
以下是一些實用的規則範例助您開始:
| 規則名稱 | 目的 | 條件 |
|---|---|---|
| 僅限 VIP 會員 | 路由來自頻道會員的訊息 | is_member equals true |
| Bilibili 高額禮物 | 突顯高價值的 Bilibili 禮物 | coins greater_than 100 |
| 關鍵字篩選 | 捕捉特定關鍵字 | comment contains \"VRChat\" |
| 封鎖垃圾訊息 | 過濾垃圾訊息 | comment regex \"\\b(spam|bot)\\b\"(NOT 邏輯) |
🎮 VRChat 整合
插件已針對 VRChat 進行開箱即用的最佳化。以下是在世界中顯示聊天訊息的方法:
- 已安裝並執行 VRChat
- 對 VRChat 的 OSC 系統有基本了解
- 可以接收 OSC 訊息的虛擬角色或世界
步驟 1:啟用 VRChat OSC
在 VRChat 的動作選單中:
- 開啟Options
- 前往OSC標籤
- 啟用OSC
- 如有問題,點選Reset Config
螢幕截圖: VRChat OSC 設定選單
新增螢幕截圖: vrchat_osc_settings.png
步驟 2:驗證連線
插件預設將訊息發送到連接埠 19100(VRChat 的標準連接埠)。驗證方法:
- 使用 OneComme 開始串流
- 請某人發送聊天訊息
- 檢查插件的記錄標籤查看傳出訊息
- 在記錄中尋找
/onecomme/youtube/comment(或類似)
螢幕截圖:顯示發送到 VRChat 的訊息的記錄
新增螢幕截圖: logs_vrchat_messages.png
步驟 3:設定虛擬角色/世界參數
要在 VRChat 中顯示訊息,您需要監聽 OSC 位址的虛擬角色參數或世界腳本。
預設 OSC 端點:
/onecomme/youtube/comment- YouTube 留言/onecomme/youtube/superchat- 超級留言/onecomme/bilibili/comment- Bilibili 留言/onecomme/bilibili/gift- Bilibili 禮物/onecomme/niconico/comment- Niconico 留言
VRChat 連線疑難排解
如果訊息未在 VRChat 中顯示:
- 驗證設定中已啟用 VRChat OSC
- 檢查防火牆沒有封鎖 UDP 連接埠 19100
- 確認 OneComme 正在接收聊天訊息
- 查看插件記錄以驗證訊息正在發送
- 嘗試在設定中切換二進位 vs 字串格式
- 進行 OSC 變更後重新啟動 VRChat
🔧 疑難排解
插件無法載入
解決方案:
- 驗證資料夾名稱正確為
onecommeOSCrouter(區分大小寫) - 檢查插件資料夾根目錄中存在
plugin.js - 確保存在
node_modules資料夾(應包含在發布版本中) - 嘗試完全重新啟動 OneComme(不只是重新整理)
- 檢查 OneComme 主控台中的錯誤訊息
網頁介面無法載入
http://localhost:19101 顯示「無法連線到此網頁」
解決方案:
- 驗證 OneComme 設定中已啟用插件
- 檢查是否有其他應用程式正在使用連接埠 19101
- 嘗試從不同的瀏覽器存取
- 在 OneComme 主控台中尋找網頁伺服器啟動訊息
- 檢查 Windows 防火牆設定中被封鎖的連接埠
訊息未到達目標應用程式
解決方案:
- 驗證目標應用程式正在正確的連接埠上監聽
- 確認設定中的 OSC 主機/連接埠符合目標應用程式
- 嘗試在二進位和字串訊息格式之間切換
- 檢查防火牆沒有封鎖 UDP 流量
- 使用
npm run monitor驗證正在發送 OSC 訊息 - 變更 OSC 設定後重新啟動目標應用程式
規則未觸發
解決方案:
- 驗證規則已啟用(切換開關為開啟狀態)
- 使用規則測試功能驗證條件
- 檢查條件邏輯(AND vs OR)
- 驗證欄位名稱符合傳入訊息結構
- 簡化條件以進行測試(移除除一個條件外的所有條件)
- 檢查記錄標籤以查看哪些規則正在符合
獲取協助
如果您仍遇到問題:
- 查看 GitHub Issues 頁面尋找類似問題
- 查看 README 中的 問答區
- 執行測試套件:
npm test(從插件目錄) - 開啟新 issue 並包含:
- OneComme 版本
- 插件版本
- 作業系統
- 主控台錯誤訊息
- 重現步驟
🚀 進階使用
測試 OSC 訊息
插件在 tests/ 目錄中包含測試工具:
# 執行所有測試
npm test
# 測試配置持久性
npm run test:config
# 測試 OSC 可靠性
npm run test:osc
# 測試訊息格式
npm run test:formats
# 即時 OSC 監控器
npm run monitor
配置檔案
插件設定儲存在本機:
config.json- 主要配置(自動建立)routing-rules.json- 您的自訂規則config.backup.json- 變更前的自動備份
routing-rules.json 以批次建立規則,然後在網頁介面中重新載入。
OSC 訊息格式
訊息以以下結構的 JSON 發送:
{
"timestamp": "2024-09-20T08:30:01.123Z",
"service": "youtube",
"type": "superchat",
"user": {
"id": "UC1234567890",
"name": "StreamerFan123",
"display_name": "StreamerFan123"
},
"message": {
"content": "很棒的直播!",
"id": "msg_12345"
},
"platform_data": {
"amount": "5.00",
"currency": "USD",
"is_member": true
},
"processing": {
"rule_matched": "High Value Donations",
"endpoint": "/alerts/bigdonation"
}
}
REST API
插件在 http://localhost:19101/api/* 公開完整的 REST API:
| 端點 | 方法 | 說明 |
|---|---|---|
/api/rules |
GET | 列出所有規則 |
/api/rules |
POST | 建立新規則 |
/api/rules/:id |
PUT | 更新規則 |
/api/rules/:id |
DELETE | 刪除規則 |
/api/config/full |
GET | 取得配置 |
/api/logs |
GET | 取得訊息記錄 |
/api/status |
GET | 系統狀態 |
效能提示
- 將啟用的規則限制為您需要的規則
- 使用特定條件來減少處理
- 如不需要,停用 emoji 移除(輕微效能提升)
- 保持合理的記錄保留(預設:100 則訊息)
- 透過概述標籤監控記憶體使用情況