スプラトゥーン3でもstat.inkへバトルを記録!「s3s」導入手順

Game
GameTips
この記事は約8分で読めます。
記事内に広告が含まれる場合があります。

「スプラトゥーン3」発売から1ヶ月が経過しましたが、イカがお過ごしでしょうか。

いつの間にかスプラトゥーン初代と2で使えた戦績記録サービス「stat.ink」が、スプラトゥーン3のナワバリバトルとバンカラマッチの戦績記録に対応していました。

ということで、以前紹介した「splatnet2statink」のスプラトゥーン3対応版にあたる「s3s」のWindows 10/11 PCへの導入方法を紹介。開発はsplatnet2statinkと同じくeli(rozenpandaman)氏。

s3sではsplatnet2statinkと異なり単体で実行できる.exeパッケージの配布はまだ無いので(後日配布予定とのこと)、Python環境の導入が必要なため、前回よりはちょっと導入のハードルが上がっているかもしれない。

全体的に何書いてあるのか良く分からん~って場合はやめといたほうがいいかも。イカ、よろしく~

s3sでは、Nintendo Switch Onlineアプリの受信データを解析してstat.inkに登録する仕組み。

そのためNSOアプリで戦績が確認できるマッチ(レギュラー/バンカラ/X/プラベ/バイトそれぞれの直近50戦)のみデータの取得が可能であるため、それ以前のマッチデータは取得できない。

stat.inkで過去戦績を振り返りたい人はなるべく早めの導入がオススメ。

スポンサーリンク

Pythonのインストール

Pythonは普通にインストーラー経由でインストールしても良いんですが、Microsoft Storeでも配布されているので今回はそちらを採用。

まずはMicrosoft Storeを起動して、「python」を検索。複数バージョンのPythonが表示されるので、最新版をインストールする。

なおRCはリリース候補版なので、今回なら3.10が最新バージョン。

インストールしたら、スタートメニューから「PowerShell」を検索してPowerShellを起動し、Python --versionコマンドで正常にインストールされているかチェック。

Scriptsフォルダを環境変数(Path)に追加する

MS Store版のPythonでは、ScriptsフォルダへPathが通っていないので、自分で追加する必要がある(通さないと後々問題になる)。

MS Storeアプリは%USERPROFILE%\AppData\Local\Packages\フォルダ以下にインストールされているので、エクスプローラーで探します。Python 3.10の場合は、%USERPROFILE%\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\ScriptsフォルダがPathに追加したいフォルダになる。

フォルダリンクをコピーして控えたら、Windowsボタン>「システムの詳細設定」を検索>システムのプロパティを起動。環境変数ボタンから環境変数の編集ウィンドウを開いて、「Path」を編集、新規追加で先程のリンクをコピペする。追加したら、OKで終了(OSの再起動等は不要)。

Gitのインストール

Pythonのインストールが終わったら、次はバージョン管理システムである「Git」を導入。

こちらはMS Storeでの配布が無いので、Gitの配布ページからインストーラーをダウンロードしてインストールするか、PowerShellからwinget経由でインストール(winget install --id Git.Git -e --source winget)すればOK。

インストールが終わったら、PowerShellを起動してgit --versionで正常にインストールされているかを確認しておくこと。

スポンサーリンク

s3sの導入

まずはs3sを管理したいフォルダをエクスプローラーで開く(そのフォルダ直下にs3sフォルダが作成される)。今回の例では「C:\Users\ユーザー名\Apps」フォルダで管理することにした。

保存先にしたいフォルダをエクスプローラーで開いたら、アドレスバーに「powershell」を入力してEnterを押すと、PowerShellが指定フォルダに移動した状態で起動する。

エクスプローラーでShift+右クリックから「PowerShellウィンドウをここで開く」でも可

PowerShellが指定フォルダで開かれている(PS C:\Users\ユーザー名\Apps\)ことを確認したら、git clone https://github.com/frozenpandaman/s3s.gitコマンドを実行。

すると、Githubのリポジトリから複製されたs3sフォルダがAppsフォルダ直下に作成されるので、cd s3sコマンドでs3sフォルダへ(PowerShell上で)移動。

移動したらpython -m pip install -r requirements.txtコマンドを実行し(スクショではpip install -r requirements.txtになってますが)、s3sの実行に必要なパッケージをインストールする。

なおこのとき、上で書いたようにPython環境のインストール時にScriptsフォルダのPathを通していないとWARNINGが出るので注意。Path通さずにs3s.pyを走らせると、プレイヤー名処理などでエラー吐いて止まる(実際止まった)。

s3sの実行環境の構築はこれで終了。

s3sの初回セットアップ

ここからはs3sのセットアップですが、作業的にはsplatnet2statinkの時とほぼ同じ。

s3sフォルダでPowerShellを起動したら、python s3s.py -rコマンドでs3sを実行する。

初回実行なので、config.txtが生成されstat.inkのAPIキーを要求される。stat.inkのプロフィール設定ページからAPIキーをコピペ&Enter

APIキーが保存されたら、ログイントークン生成用のURLが表示される。

ログイントークンの自動生成についての注意

イカリング3からデータを取得するためには「gtoken」および「bulletToken」の2つのトークンが必要で、s3sではこのトークンの生成を自動化するため、imink APIを利用している。

imink APIは任天堂ではなく第三者の管理する外部のサーバーですが、トークンの自動生成にあたってアカウントの識別情報(ユーザー名やパスワード含む)がimink APIに送信されることはなく、送信または保存されたデータからAPIリクエストを実行したアカウント/ユーザーを特定したり、ユーザーに関する識別情報の表示やアカウントへのアクセスといったことはできない(imink APIのプライバシーポリシードキュメント)とされている。

が、imink APIを使いたくない場合はrootを取得しているAndroid端末(またはエミュレーター)を介してローカルでトークン生成する方法もある。

URLをコピーし、Webブラウザーからアクセスする。Nintendoアカウントにログインしたら、連携したいアカウントの「この人にする」ボタンを右クリックし、リンクをコピー。

コピーしたリンクを「paste it below:」以降にペーストしEnterすると、トークン生成が実行されます。

ログイン失敗した場合は、python s3s.py -rを再実行。

トークンが生成され、イカリング3のデータが抽出できたら、stat.inkに未登録の戦績データが自動で登録されます。

スポンサーリンク

s3sの使い方

セットアップが終わったら、任意のオプションを指定してs3s.pyを実行すればOK。実際には-rと-Mを使うことになると思いますが。

オプション説明
-h, –helpヘルプを表示
-M [N]N秒ごとに未登録試合データが無いか確認する(Nは指定なしで300秒=5分間隔)
-rオープン/ナワバリ/サーモンランの直近戦績のうち未登録の戦績を登録(Ctrl+Cで終了)
-nsr直近戦績からサーモンラン以外の未登録戦績を登録
-osr直近戦績から未登録のサーモンラン戦績のみ登録
-ostat.inkへの登録はせずに直近の戦績ファイルすべてをローカル保存する
-i [results.json overview.json coop_results.json]stat.inkへの登録はせずに、指定した直近戦績ファイルをローカル保存する

stat.inkは10月10日時点ではサーモンランの戦績登録に未対応なので、一応記録として保管しておきたいといった場合は-iも使うかも。とはいえstat.inkがjsonのインポートに対応する予定があるのか不明ですが……

なおreadmeにもあるように、しばらくは高頻度でスクリプトのアップデートが続くと思われるので、s3s.py実行前にgit pullで更新が無いか確認するべし。

毎回コマンド入れるのは面倒なので、batファイルで連続実行したほうが便利かも。自分が使っているバッチファイルの中身はこんな感じ。

@echo off
chcp 65001

rem s3sフォルダへ移動
cd %USERPROFILE%\Apps\s3s

@echo s3sのアップデートを確認
git pull
echo.

@echo 直近の未登録戦績をアップロード後にモニタリングモードを起動 終了する場合はCtrl+C
python s3s.py -M -r
追記

-Mと-rを別に実行していましたが冗長だったのでバッチファイルを微修正。

バッチファイルとして使いたい場合はコピペしてメモ帳などで「s3sバッチ実行.bat」とか適当に名付けて保存、実行してください(s3sの保存先フォルダは各自の環境に合わせて要変更)。

以上、良いイカライフを~

コメント

  1. rom より:

    説明本当にありがとうございます!
    でも、2月17日からの記録しかアップしないんですが…もっと前、スプラ3の発売からの記録を呼び寄せることはできませんか?

    • V V より:

      冒頭に追記しましたが、s3sはNSOアプリが受信できるデータに依存しているため、直近50マッチのデータまでしか遡れないのが仕様で、残念ながら現状ではそれ以前のデータについては確認しようがありません。

  2. Canta より:

    アップデートについてご教示ください。

    There is a new version (v0.3.2) available.
    Would you like to update now? [Y/n] y
    » Couldn’t connect to GitHub. Please update the script manually via git pull.

    というメッセージが表示されます。
    アップデートのコマンドを教えて頂けますでしょうか。

    git pull の 引数を教えて頂けますと幸いです。

    • V V より:

      手順通り導入している場合gitを導入の上s3sフォルダをgithubからクローン済みであると思うので、s3sフォルダ直下で開いたコマンドプロンプトあるいはPowerShellでgit pullを実行するだけで差分が更新されます(引数はgit pull origin masterですが今回の例では省略しても同じ動作)。
      例:
      C:\Users\ユーザー名\Apps\s3s> git pull

      • Canta より:

        git をインストーラから再導入したところ解消しました
        お手数おかけしました

  3. つつつ より:

    記事を読ませていただき無事s3sが使用可能になりました
    ありがとうございます。

    最後にバッチファイルを作っていますがダブルクリックで実行後画面は消えてしまうのでしょうか。
    モニタリング終了させたいときはどこへCtrl+Cを実行するのでしょうか。

    • V V より:

      バッチファイルのダブルクリックでコマンドプロンプト(cmd.exe)が起動したあと、s3sがモニタリングモードで動き続けるためウィンドウは消えないのが正常な動作です。

      とりあえず思いつく対処法としてはバッチファイルを管理者権限で起動してみるくらいでしょうか。

タイトルとURLをコピーしました