2.6 KiB
2.6 KiB
VRC_OSC 設計書
目的
VRC_OSC は、VRChat の状態をきっかけにして、Discord のミュート操作、ログ通知、OCR、翻訳をまとめて扱うためのツールです。
全体構成
src/app.py- 起動処理の入口
- OSC パラメータを受け取って各機能に振り分ける
src/osc/gateway.py- OSC の受信とログ出力
src/discord_control/actions.py- Discord のミュート切り替え
src/vrc_log/log_actions.py- VRChat ログの収集、監視、Discord 通知
src/ocr/ocr_actions.py- 画面 OCR
src/translate/translate_actions.py- OCR 結果の翻訳とコピー
src/common/config_loader.py- 設定ファイルの読み込み
主要な機能
1. Discord ミュート連動
VRChat 側の DiscordSend パラメータを受けると、Discord のミュートを切り替えます。
ミュート操作は、Discord ウィンドウがあればそこに対して行い、見つからない場合はブラウザ版 Discord も探します。
2. VRC ログ通知
vrc_log パラメータでログ監視の開始・停止を切り替えます。
監視中は VRChat のログファイルを読み、入室や退室、ワールド変更を検出して、必要なら Discord Webhook に通知します。
3. OCR
ocrEnabled パラメータを受けると、VRChat 画面を読み取って OCR を実行します。
結果は runtime/ に記録されます。
4. 翻訳
translation パラメータを受けると、OCR を実行してから翻訳します。
翻訳結果はクリップボードへコピーし、あわせて runtime/ に保存します。
設定
設定は config/ に置きます。
config/config.toml- 自分の名前、guest 名簿、OCR 設定、ログ通知の設定
config/secrets.toml- Discord Webhook URL、VRChat の認証情報
config/guests.txt- guest として扱う名前を 1 行ずつ書くファイル
データの流れ
src/app.pyが OSC サーバーを起動する- VRChat からパラメータが届く
- 受け取ったパラメータに応じて、Discord ミュート、ログ監視、OCR、翻訳の処理に分岐する
- 必要に応じて Discord、クリップボード、
runtime/、WebHook に反映する
保存先
runtime/runtime.logruntime/latest_ocr.pngruntime/latest_screenshot.png
補足
この設計書は、ソースコードを見なくても全体像が分かることを目的にしています。
細かな判定ルールは src/vrc_log/log_actions.py と src/translate/translate_actions.py を参照してください。