Skip to content

Du1Bz/Flood

Repository files navigation

Flood — Halo Infinite 戦績 Notion 同期ツール

Halo Infinite の戦績を自動で Notion に記録するツールです。
試合後に同期を実行するだけで、マップ・ルール・K/D・推定MMR(eMMR)などが Notion に蓄積されていきます。

これは現在進行中のプロジェクト(Work In Progress)です
このツールは個人用途で作成されたものであり、環境構築やトラブルシュートを自力で行える方向けです。
プログラミング知識は不要ですが、PC操作や環境構築にある程度慣れている必要があります
ただしできるだけ導線は整えました。
セットアップは bat ファイルをダブルクリックするだけです。

alt text

マップ×ルール×プレイリスト別など、様々な視点から戦績を分析することができます。

alt text


📋 必要なもの

必要なもの 備考
Windows 10 / 11 Mac 非対応
Halo Infinite Xbox / PC 版どちらでも可
OpenSpartan Workshop 戦績を取得するツール
Python 3.11 以上 無料
Notion アカウント 無料プランで OK
Notion デスクトップアプリ Floodはブラウザでも利用できますが、複数タブに対応しているため推奨

🚀 セットアップ手順

Step 1|ファイルをダウンロードする

右側の Releases ページから最新版の Source code (zip) をダウンロードして解凍します。 または Git を使える方は以下を実行してください。

git clone https://github.com/Du1Bz/flood.git

Step 2|Python をインストールする

  1. https://www.python.org/downloads/ を開く
  2. 「Download Python 3.x.x」をクリックしてダウンロード
  3. インストーラーを起動し、「Add Python to PATH」に必ずチェックを入れてから Install Now をクリック

⚠️ このチェックを忘れるとツールが動きません。チェックし忘れた場合は Python をアンインストールして入れ直してください。

Step 3|OpenSpartan Workshop をインストールする

⚠️ 必ず 1.0.10 以下をインストールしてください。
1.0.11、1.0.12では現在、データの一部が正しく取得できないバグが確認されています。

① Windows App Runtime のインストール(先にやる)

以下の URL を開いてダウンロード・インストールします。

https://aka.ms/windowsappsdk/1.6/latest/windowsappruntimeinstall-x64.exe

⚠️ OpenSpartan1.0.10では、最新版(1.8.x)だとクラッシュします。必ず 1.6.x をインストールしてください。

② OpenSpartan Workshop 1.0.10 のインストール

リリースページ から 1.0.10.exe をダウンロードしてインストールします。

③ 起動後すぐクラッシュする場合

エクスプローラーのアドレスバーに %LOCALAPPDATA%\OpenSpartan.Workshop\ と入力して Enter を押し、settings.json を開いて extraRitualEvents の行を削除して保存。
("extraRitualEvents":~, の、最初の「"」から「,」まで)
その後ファイルを右クリック →「プロパティ」→「読み取り専用」にチェックを入れます。

④ データの同期

  1. OpenSpartan Workshop を起動して Xbox アカウントでログイン
  2. データが同期されるまで待つ(初回は数分かかります、作者は3700件で20分ほどかかりました)
  3. 以下のフォルダに .db ファイルが生成されれば OK です
C:\Users\あなたのユーザー名\AppData\Local\OpenSpartan.Workshop\data\

AppData が見えない場合はエクスプローラーの「表示」→「隠しファイル」を表示にしてください。

Step 4|Notion テンプレートを複製する

テンプレートを複製する

上のリンクを開いて右上の「複製」をクリックします。
自分のワークスペースに複製して利用してください。

Step 5|Notionの内部コネクトを作成する

  1. https://www.notion.so/developers を開く
  2. 「コネクト」をクリックしますalt text
  3. 「新規コネクト」をクリックしますalt text
  4. 名前を入力(例:Flood)してアクセストークンを選択し、コネクトを作成をクリックします。alt text

Step 6|データベースに内部コネクトを接続する

  1. 作成した内部コネクトの設定を開きますalt text
  2. 「インストール可能なワークスペース」をクリックし、使用するワークスペースを指定します。
  3. アクセストークン(ntn_ から始まる文字列)をコピーして控えておきます。
    トークンを知っている人なら誰でも、コネクトを代理操作できてしまうため、共有しないようにしてください。
  4. コンテンツへのアクセス→アクセス権限を編集 をクリックしますalt text
  5. 非公開と書かれたプルダウンを押下し、複製したテンプレートを選択して保存しますalt text

Step 7|セットアップを実行する

step 1 でダウンロードしたzipファイルをお好みの場所(デスクトップなど)に展開します。
展開したフォルダを開きます。
setup.bat をダブルクリックします。

  1. Notion トークンを入力(Step 6 で控えたトークン)
  2. Notion の親ページ URL を貼り付け(複製したテンプレートのURL)

自動で以下が行われます。

  • Python仮想環境(venv)の作成
  • 必要なPythonパッケージが自動でインストールされる
  • データベース ID を Notion から取得して設定に書き込む
  • OpenSpartan の .db ファイルを自動検索して設定に書き込む

これでセットアップは完了です。


▶️ 使い方

試合後に同期する

  1. OpenSpartan Workshop を起動してデータを同期する

  2. Flood.bat をダブルクリック

  3. 現在の設定が表示されるので、内容を確認して y で同期開始

  4. 同期が完了したら、y でもう一度同期、n で終了

    ‼何度同期しても、同じ試合は重複登録されません(MatchIDで判定)

設定を変更する

settings.bat をダブルクリックすると、以下の設定を変更できます。

設定 説明
latest_count 一度にデータベースから取得する最大試合数(最新からn件)
LatestCheckCount クイックスキャンモード時にnotionをチェックする件数
IsFullScanMode 有効 にするとnotionを全件チェック(確実・低速)(全件取得する際などは有効にしてください)

📊 記録される主なデータ

カラム 内容
マップ / ルール 試合のマップとゲームモード
勝敗 / チームスコア 試合結果
K/D / KDA キル・デス・アシスト比
命中率 / ダメージ差 精度と攻守バランス
期待キル / 期待デス TrueSkill2 がそのプレイヤーに期待する値
eMMR 推定 MMR(独自計算)
自チーム / 敵チーム MMR マッチングの実力帯
試合前 / 試合後 CSR ランクの増減
パーティ人数 ソロ・パーティの別

❓ よくあるエラー

「Python が見つかりません」
→ Python インストール時に「Add Python to PATH」をチェックしたか確認してください。

「OpenSpartan のデータベースファイルが見つかりません」
→ OpenSpartan Workshop を起動してデータを同期してください。

「Notion に接続できませんでした」
→ Step 5〜6 を再確認してください。内部コネクトが各 DB に接続されているか確認してください。

期待キル・CSR が空白になる
→ OpenSpartan Workshop 1.0.11 以降のバグです。1.0.10 以下を使用してください。


🔧 上級者向け

  • 設定ファイルは config.ini に保存されています
  • IsFullScanMode = True にすると全試合を照合します(初回や再同期時に推奨)
  • tests/ フォルダに計算ロジックのユニットテストがあります(python -m pytest tests/
  • 指標の詳細は docs/metrics.md を参照してください

注意

これは趣味の個人プロジェクトです。
このプロジェクトはDu1Bz個人が利用するために作ったプログラムを公開しているものです。
このプロジェクト、OpenSpartanを利用したことで発生したいかなる事象、損害に対しても責任は負いません。


📄 ライセンス

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors