# 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 行ずつ書くファイル ## データの流れ 1. `src/app.py` が OSC サーバーを起動する 2. VRChat からパラメータが届く 3. 受け取ったパラメータに応じて、Discord ミュート、ログ監視、OCR、翻訳の処理に分岐する 4. 必要に応じて Discord、クリップボード、`runtime/`、WebHook に反映する ## 保存先 - `runtime/runtime.log` - `runtime/latest_ocr.png` - `runtime/latest_screenshot.png` ## 補足 この設計書は、ソースコードを見なくても全体像が分かることを目的にしています。 細かな判定ルールは `src/vrc_log/log_actions.py` と `src/translate/translate_actions.py` を参照してください。