Make launcher a Windows GUI app

This commit is contained in:
every_holiday
2026-06-25 00:09:58 +09:00
parent 329bcd0c50
commit 23d5fcfcda
4 changed files with 116 additions and 112 deletions

134
README.md
View File

@@ -1,133 +1,73 @@
# VRC_OSC
VRC_OSC は、VRChat の状態を見て Discord やログ連携を行うためのツールです。
VRChat のログ監視、Discord ミュート連携、OCR、同意リスト生成をまとめたツールです。
一番の使い方は、VRChat の `ExMenu` から操作することです。
`ExMenu` は VRChat のメニュー画面に出る、追加の操作メニューです。
## 主な機能
## できること
- VRChat のログを見て Discord に通知する
- 変更があった部分だけを差分で送る
- Discord のミュートを VRChat 側の操作に合わせて切り替える
- VRChat 画面を読み取って OCR する
- OCR した文字を翻訳してコピーする
## 画面イメージ
### ExMenu
VRChat のメニュー画面から、このツールの機能を操作します。
![ExMenu 1](doc/ExMenu1.png)
![ExMenu 2](doc/ExMenu2.png)
### VRC Log
VRChat のログ確認や通知の流れは、次のようなイメージです。
![VRC Log](doc/VRC_Log.png)
## 使い方
1. 必要な設定ファイルを用意します。
2. ツールを起動します。
3. VRChat を開きます。
4. VRChat の `ExMenu` から必要な機能を選びます。
### Discord のミュート連動
VRChat 側で特定の操作が行われたときに、Discord のミュート状態を切り替えます。
通話中に VRChat を使うとき、Discord の音声操作を手で切り替える手間を減らすための機能です。
### OCR と翻訳
VRChat 画面の文字を読み取って、必要に応じて翻訳します。
見た文字や翻訳結果はコピーできるので、内容をそのまま使いやすくなります。
- VRChat の入退出ログを監視して `join / leave` を出力
- Discord のミュート切り替え
- OCR で画面文字を取得
- 同意フォーム用の JSON 生成とログ抽出
- Gitea Release からの自動更新
## 起動方法
PowerShell から起動する場合:
配布 zip を展開したら、まず `vrc_osc_launcher.exe` を起動してください。
```powershell
bin\vrc_osc.ps1
vrc_osc_launcher.exe
```
Python から直接起動する場合:
launcher は起動時に最新 Release を確認します。新しい版があれば自動で更新してから本体を起動します。
本体を直接起動することもできます。
```powershell
python src\app.py
vrc_osc.exe
```
## 事前準備
ただし、この場合は自動更新は走りません。
依存関係を入れます。
## 配布物
```powershell
python -m pip install -r requirements.txt
```
Release の zip には次のファイルが入ります。
## 設定ファイル
- `vrc_osc.exe`
- `vrc_osc_launcher.exe`
- `vrwt_tool.exe`
- `config.example.toml`
- `secrets.example.toml`
- `guests.example.txt`
設定は `config/` に置きます。
## 設定
設定ファイルは exe の横の `config/` に置きます。
- `config/config.toml`
- `config/secrets.toml`
- `config/guests.txt`
サンプルはそれぞれ `*.example.*`使って作成できます
最初は各 `*.example.*`コピーして使ってください
## 初期セットアップ
## Release 更新
最初は、`config/` のサンプルファイルを実ファイルにしてから中身を埋めます。
自動更新は Gitea の Release を参照します。
1. `config/config.example.toml``config/config.toml` にコピーします。
2. `config/secrets.example.toml``config/secrets.toml` にコピーします。
3. `config/guests.example.txt``config/guests.txt` にコピーします。
4. `config/config.toml``self.name` を自分の VRChat 表示名にします。
5. `config/secrets.toml``discord.webhook_url` を設定します。
6. `config/secrets.toml``vrchat.username``vrchat.password` を設定します。
7. `config/guests.txt` に、あらかじめ guest として見たい参加者名を 1 行ずつ書きます。
8. 自分の名前も guest 扱いしたい場合は、`guests.txt` に自分の名前も 1 行追加します。
- 更新元: `https://git.vrcworldtour.com/every_holiday/VRCWT-OSC/releases`
- 対象 asset: `vrc_osc-windows.zip`
`guests.txt` は、例として次のように書きます。
## 開発時のビルド
```text
GuestUserA
GuestUserB
YourNameHere
```powershell
go test ./...
go build -ldflags="-H windowsgui" -o .\dist\vrc_osc.exe ./cmd/vrc_osc
go build -ldflags="-H windowsgui" -o .\dist\vrc_osc_launcher.exe ./cmd/vrc_osc_launcher
go build -o .\dist\vrwt_tool.exe ./cmd\vrwt_tool
```
## よく使う設定
- `discord.webhook_url`
- Discord に通知を送るための Webhook URL
- `vrchat.username`
- VRChat のアカウント名
- `vrchat.password`
- VRChat のパスワード
- `staff.names`
- スタッフとして扱う名前
- `guest.file`
- guest 名簿のファイル
## 補足
この README は、まず使い方が分かることを優先して簡単にまとめています。
細かい内部仕様が必要な場合は、ソースコードと `config/*.example.*` を見てください。
## 生成されるログ
## ログ
- `runtime/runtime.log`
- 通常の実行ログ
- `runtime/join_leave.log`
- join / leave だけを抜き出したログ
- `runtime/latest_ocr.png`
- `runtime/latest_screenshot.png`
## 詳しい資料
- [設計書](doc/design.md)
- [シーケンス図](doc/sequence.md)
- [ワークフロー](doc/workflow.md)