Files
VRCWT-OSC/doc/design.md
2026-06-04 12:37:10 +09:00

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 行ずつ書くファイル

データの流れ

  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.pysrc/translate/translate_actions.py を参照してください。