Blue Protocol: Star Resonance 向けの軽量 DPS チェッカー (Windows 専用)
Slint(Rust ネイティブ GUI) で実装。戦闘中・計測で本当に必要な機能に絞っているため、CPU・メモリの消費が小さく、長時間でも軽快に安定して動作します。ゲーム画面の上に半透明オーバーレイ表示も可能。外部サーバへのデータ送信は一切ありません。
- DPS / 回復 / 被ダメ / 履歴タブ — 与ダメ・回復量・被ダメージをタブ切替で集計(列見出し・合計値もタブに追従)。戦闘終了後は自動でエンカウントを履歴へ保存し、アプリを再起動しても過去ログが残る(ディスク保存)
- スキル別内訳 — プレイヤーをクリックすると、そのプレイヤーのスキルごとのダメージ・命中数・クリ率を表示
- バトルイマジン名の表示 — 各プレイヤーが装備しているバトルイマジン(ティナ / アルーナ / タータ / バジリスク 等)をレベル(凸数)付きで DPS 一覧の名前列末尾に表示(例:
ソラ-ティナ(3)/アルーナ(1))。自分はマップ移動ごと、周囲のプレイヤーはダンジョン読込やボス部屋切替のタイミングで検知し、発動が控えめで見えにくいイマジンも漏れなく表示できる。ロールスキル枠に装備した簡易版バトルイマジン(最大4件)は実装備の2枠とは区別し、(R:名前)の形式で追記表示する(例:ソラ-ティナ(3)/アルーナ(1) (R:サンダーオーガ/ファルファラ))。名前列テンプレートの{imagine}トークンで表示位置を調整でき、不要なら削除して非表示にできる。プレイヤーをクリックして開くスキル別内訳の見出しでは常に表示。イマジン名は設定から開く専用の編集ウィンドウで手動メンテでき、表示名の上書きや特定イマジンの非表示を指定できる(上書きは表示のみに適用され、検知や記録には影響しない) - 計測モード — 模擬戦やボス練習向けに、戦闘開始から固定時間で集計する専用モード (デフォルト 180 秒、変更可)。計測後の結果画面では、キャラ別・スキル別の DPS 推移グラフ(時間軸・DPS 目盛り付き)と、スキル内訳の円グラフ(TOP10+その他)を確認可能。自己ベストを計測時間ごとに自動記録し、更新時は結果画面に「新記録!」を表示。TOP3 は金/銀/銅で強調され、日時入りの結果画像をワンクリックでコピーして Discord 等へ共有できる
- イマジン (バトルイマジン) デバフタイマー — ティナ / アルーナ / タータ / バジリスク / ガトグリフの免疫デバフ残時間を独立オーバーレイで表示。既定では DPS 一覧と同期し、表示する顔ぶれ・並び順を自動追従する(並び順の追従は個別に OFF 可)。ピンアイコンで各プレイヤーをタイマーから隠す/表示を切替。同期を OFF にすればピンで手動追加した相手だけを表示する従来運用に切替でき、一括クリアの導線も用意。表示するイマジン種類はパーティ構成に合わせて個別に選択可。行を詰める密表示にも対応。カラムヘッダーにカタカナ名・キャラ別識別色(ティナ赤 / アルーナ緑 / タータ紫 / バジリスク茶 / ガトグリフ水色)付きリングで視認性を確保
- 自キャラ バフ/デバフ表示 — 自分のキャラクターに現在かかっているバフ・デバフを別ウインドウで日本語表示。残時間バー付きアイコン形式でひと目で把握可能。スタック制バフは重ね掛け数 (×N) とタイマー更新にも追従
- 自キャラ ステータス表示 — 攻撃力・会心・HP など自キャラのステータスを独立オーバーレイにリアルタイム表示。表示する項目はゲーム内パネル単位のグループで自由にカスタマイズ可(一括 ON/OFF 対応)
- 食事 / シロップ表示 — 各プレイヤーの食事・シロップバフの使用状況を DPS 一覧の名前列に縦型残時間タイマーで表示。アイコンにホバーすると効果内容と残り時間を確認可能。戦闘終了・手動リセット・アプリ再起動をまたいで残時間を保持(失効した分は自動的に消える)。設定から表示 ON/OFF 可
- デバフタイマー専用モード (軽量) — DPS/回復の集計を停止してデバフタイマーのみ動作させる省リソースモード
- 2 列コンパクト表示 — DPS テーブルを 2 列に分割して横幅を節約するレイアウトモード
- DPS 推移グラフ — 各プレイヤー行の DPS 推移を小グラフで可視化
- 常に最前面表示・クリックスルー・タスクバー/トレイ切替 — オーバーレイ運用に必須。タイトルバーのボタンから最小化・最前面ピン止めをワンタッチ切替でき、ウィンドウ幅が狭いときはヘッダーが自動でアイコン表示に切り替わる。最小化は既定でタスクトレイへ格納(メインを最小化するとオーバーレイも一緒に退避し、トレイアイコンの左クリックまたは右クリック「メインを表示」で復帰)。設定の「タスクバーに常駐」をオンにすると、メイン・各オーバーレイが個別のタスクバーボタンになり、各ウィンドウの最小化ボタンでタスクバーへ最小化できる。各オーバーレイは右上の × ボタンで閉じられる(設定の表示トグルと連動)。クリックスルー(背後のゲームへクリックを素通し)はタスクトレイから切替・解除。各ウィンドウは縁ドラッグでリサイズ可能
- オーバーレイの外観カスタマイズ — 各オーバーレイの背景不透明度・フォント・文字サイズ・太字・文字色を本体とは独立して設定可能。文字色とアプリのアクセントカラーは HSV ピッカーで自由に調整できる
- コピーテンプレート — 集計結果を任意フォーマット (Discord 貼り付け等) でクリップボードへ
- 多言語対応 — 日本語 / English
- キャラ指定 — 自動判定が外れた時は、設定パネルで自キャラの UID を直接入力するか現在のプレイヤー候補から選択して固定(名前は名前キャッシュから解決表示)
- フッターのお問い合わせ導線 — メイン画面下部の半透明フッター(設定で非表示可)から、開発者へのお問い合わせフォームや GitHub Issue への報告を既定ブラウザで開ける
![]() 3 分計測の結果画面 — キャラ/スキル別 DPS 推移と内訳円グラフ |
![]() イマジンデバフタイマー — 免疫デバフ残時間をキャラ別色リングで表示 |
![]() 自キャラ バフ/デバフ表示 — 残時間バー付きアイコンで一覧 |
![]() 設定パネル — 透明度・列表示・コピーテンプレート等 |
Releases から最新の bpsr-checker-setup-x.x.x.exe(インストーラ)をダウンロードして実行してください。インストール不要のポータブル版 bpsr-checker-portable-x.x.x.zip もあります(解凍して bpsr-checker.exe を実行)。
- アップデート時は起動中のアプリを終了しなくてもインストール可能です。
- 設定・履歴は再インストール後も保持されます(
%APPDATA%\bpsr-checker)。
- Windows 10 / 11 (x64)
- 管理者権限 (WinDivert カーネルドライバのロードに必要)
本ツールに対するよくある懸念に回答します。
ゲーム側ファイル・メモリ・通信内容のいずれも改変しません。 受信パケットを受動的に観測してダメージ表示文字列を再構築しているだけで、ゲームクライアントへの注入・パッチ・自動操作は一切行いません。
ただし、本ソフトウェアは個人開発の非公式ツールであり、運営の規約変更により将来的に黙認されなくなる可能性は否定できません。最終的な使用判断は利用者ご自身の責任でお願いします。 (詳細はライセンス末尾の免責条項を参照)
誤検知です。 カーネルレベルでパケットをキャプチャする WinDivert ドライバを同梱しているため、一部のウイルス対策ソフトが「ネットワーク監視ツール」として警告を出すことがあります。
例えば VirusTotal では Kaspersky が Not-a-virus:HEUR:RiskTool.Multi.WinDivert.gen と表示することがありますが、これは同梱の WinDivert ドライバを「リスクツール(ネットワークツール)」として分類しているもので、マルウェアではありません(検出名の先頭が Not-a-virus であることに注目してください)。
対処:
- WinDivert ドライバ (
WinDivert.dll,WinDivert64.sys) およびインストールフォルダをウイルス対策ソフトの除外設定に追加してください。 - 不安な場合はソースコードを確認し、自分でビルドすることも可能です (GPL-3.0)。
- すべてのリリースは VirusTotal でスキャンしています(最新リリースの結果: インストーラ ・ ポータブル)。
ポータブル版 zip をご利用ください。 現在この警告が出るのはインストーラ (bpsr-checker-setup-*.exe) のみで、ポータブル版 zip とその中身 (bpsr-checker.exe 本体・WinDivert) は検出されません。
原因はブラウザではなく Windows Defender です。未署名かつ公開直後でレピュテーションが無い NSIS 形式のインストーラを、機械学習ヒューリスティックが Trojan:Win32/Wacatac.B!ml として誤検知します (検出名末尾の !ml が機械学習による推定判定であることを示します)。Chrome と Edge のどちらもダウンロード完了時に Windows 側のウイルス対策へ問い合わせるため、ブラウザを変えても結果は同じです。同じ理由で、PowerShell やコマンドラインで直接ダウンロードしてもリアルタイム保護に削除されます。
どうしてもインストーラ版が必要な場合:
- Windows セキュリティ → 「ウイルスと脅威の防止」→ 「設定の管理」→ 「除外の追加または削除」で、保存先フォルダを一時的に除外に追加してからダウンロードしてください。
- ダウンロードしたファイルの SHA256 が上記 VirusTotal リンクのハッシュと一致することを確認してください (
Get-FileHash <ファイル> -Algorithm SHA256)。一致していれば改ざんされていない正規のリリースです。 - インストール後、除外設定は元に戻して構いません。
誤検知が確認され次第 Microsoft へ報告しており、定義ファイルの更新で解消されます。ただしリリースのたびにファイルのハッシュが変わるため、新バージョン公開直後に再発することがあります。
本アプリは現在コードサイニング証明書による署名を行っていません。個人開発のため証明書の取得・運用コストが見合わず、対応を検討中です。署名の無いアプリはダウンロード実績が一定数に達するまで SmartScreen の警告対象となります。
ソースコードは全て公開しており (GPL-3.0)、リリース物は VirusTotal のスキャン結果を上記に掲載しています。ご自身でビルドして利用することも可能です。
回避手順:
- ダイアログの「詳細情報」をクリック
- 表示された「実行」ボタンをクリック
送信しません。 アプリ本体に HTTP クライアントライブラリは組み込まれておらず、テレメトリ・アナリティクス・クラッシュレポートの自動送信は一切行いません。すべての処理はローカルで完結します (アップデート確認のための GitHub Releases 参照を除く)。
- WinDivert を SNIFF モード (受動観測のみ) で起動
- ゲームサーバ宛/から流れる TCP パケットを観測
- ペイロードを protobuf としてデコードし、
SyncNearDeltaInfo等のメッセージからダメージ・回復イベントを抽出 - UID 単位で集計し、UI に表示
詳細は core/src/capture/windivert.rs を参照してください。
- アプリを起動 (UAC でゲーム同様に管理者権限を要求します)
- ゲームを起動して戦闘を開始すると、ダメージが自動検出されます
- プレイヤー行をクリックするとスキル別の内訳を表示
- 戦闘終了 (デフォルト 10 秒間ダメージなし) で履歴に自動保存
タスクトレイのアイコンを左クリックでメイン復帰、右クリックでメニューを開けます。
- クリックスルー — オン/オフを切替。オン中は全ウィンドウがマウスを素通しする(背後のゲームを操作可能)ため、解除は必ずトレイメニューから行います。
- メインを表示/非表示
- 終了
ヘッダーの S ボタンから開きます。主な項目:
- 自キャラ UID の固定 / 候補からの選択
- 透明度・フォントサイズ・列の表示切替(食事 / シロップ表示の ON/OFF を含む)
- コピーテンプレート (
{name} {dmg} {dps}等のプレースホルダ) - 3 分計測モードの時間設定
- イマジンデバフタイマーの表示切替 / メイン DPS との同期(並び順追従の ON/OFF・ウォッチ一括クリア)/ 表示イマジン種類の個別選択 / 行を詰める密表示 / デバフタイマー専用モード (DPS 集計を停止して軽量化) / 2 列コンパクト表示の ON/OFF
- 自キャラ バフ/デバフ表示の ON/OFF
- ウォッチリストへの追加は DPS 一覧のプレイヤー行横のピンアイコンから操作
- 起動時タブ (DPS / 回復 / 履歴)
- 起動直後 / リセット直後の周囲キャラ表示について 本ツールはゲームクライアントが受信したパケットをパッシブに観測する方式のため、起動・リセットの時点ですでに視界内にいるキャラについて、サーバから一度しか送られない名前・職業・装備力の情報を取得できないことがあります。 このようなキャラは「プレイヤー#XXXX」と薄く表示され、職業はスキルから自動推定されます。過去に観測したことがある UID は 30 日間の名前キャッシュから自動復元されます。ゾーン移動や再ログインで視界に再入場すると、正しい情報が取得されます。
| 症状 | 対処 |
|---|---|
| ダメージが検出されない | 管理者権限で起動しているか確認。VPN や ping reducer (ExitLag / NoPing 等) を有効にしている場合は無効化して再試行。 |
| ウイルス対策ソフトに検出される | 上記項目を参照。 |
| 起動しない / すぐ終了する | WinDivert.dll と WinDivert64.sys が bpsr-checker.exe と同じフォルダにあるか確認(インストーラ版は自動同梱)。 |
| 過去のリリースとライセンスが違う | v0.7.8 以降は GPL-3.0、それ以前は MIT ライセンスでした。(詳細) |
不具合報告・要望は Issues または Discord へお寄せください。
# 前提: Rust stable, Protoc, Visual Studio Build Tools (Windows)
git clone https://github.com/Rererr/bpsr-checker.git
cd bpsr-checker
# WinDivert を取得 (Windows のみ)
# https://github.com/basil00/WinDivert/releases から v2.2.2 A 版を取得し、
# WinDivert.dll / WinDivert64.sys を windivert/ に配置
# 開発実行(管理者権限が必要)
cargo run -p bpsr-app
# 配布物生成(release exe+WinDivert同梱→zip、makensis があればインストーラも)
pwsh scripts/package-slint.ps1成果物は dist-slint/(ポータブル zip と、NSIS があればインストーラ)に生成されます。
同じゲーム向けに開発されている DPS メーターは他にもあります。本プロジェクトはそれらの良い点を参考にしています。
- winjwinj/bpsr-logs — Rust + Tauri + Svelte、Discord コミュニティが活発
- anying1073/StarResonanceDps — .NET + WPF、機能豊富
- dmlgzs/StarResonanceDamageCounter — 多くの派生実装の原点
本ツールはプレイヤー個人の振り返りを目的としています。以下の用途には使用しないでください。
- 他プレイヤーのスコアを晒して中傷・煽る用途
- 野良パーティでの装備強要 / 同行拒否の根拠としての利用
DPS は装備・スキル回し・状況・ロールにより大きく変動します。数値はあくまで参考値としてご活用ください。
開発の継続を支援したい場合は、GitHub Sponsors からサポートできます。
本ソフトウェアは GNU General Public License v3.0 only (GPL-3.0-only) の下で配布されます。
- 改変版を配布する場合は、ソースコードを同じ GPL-3.0 ライセンスで公開する必要があります。
- 著作権表示・ライセンス全文・改変内容の明示を保持してください。
注: v0.7.7 以前は MIT ライセンスで配布していましたが、v0.7.8 から GPL-3.0 に変更しました。
本ソフトウェアは現状のまま提供され、明示または黙示を問わずいかなる保証もありません。本ソフトウェアの使用または使用不能から生じる一切の損害について、作者は責任を負いません。利用は自己責任でお願いします。
Copyright (C) 2025 Rererr




