SquidTracksでSplatoon2の戦績データをstat.inkに送信する方法 (2020年2月3日修正)
SquidTracks と stat.ink について
つまるところ要約すると,
SquidTracks : PC用アプリケーション。
Splatoon2の戦績情報をPCで取得・閲覧でき,stat.inkへ送信できる。
stat.ink : webサービス。
SquidTracksから送られてきた戦績をweb上で蓄積,分析・統計化できる。
公式に配布されているNintendo Switch Onlineアプリのイカリング2を使うことで過去50戦の戦績を確認することができるが,あくまで戦績を確認することができるのみで,例えば50戦以上の情報を蓄積したり,過去の戦績を比較する,分析する,といった事ができない。もしくは向いていない。
SquidTracksを使うことでイカリング上では非表示化されている,いわゆる隠しパラメータ的な情報も可視化する事ができる。
(例えば過去全試合・ルルステ毎・ブキ毎などの勝敗数や勝率,味方や相手チームの推定Xパワーを数値として確認することができたりする。)
そしてstat.inkに戦績を定期的に送ることによって50戦以上の戦績を蓄積することができ,条件を設定しながら過去の戦績を絞り込む事ができる。
(例 : ガチマッチのみ,特定のブキのみ,直近24時間のみ など)
ので,自分のプレイをより詳細に分析したい場合に非常に有用になる。
文章ではなかなか有用さを説明しづらいため,ぜひ適当なユーザーのstat.inkを一度覗いて欲しい。
SquidTracks を使うために必要な iksm_session を準備する
SquidTracksは通常のログイン方法では使う事ができない。
iksm_session という認証用の固有文字列(セッションクッキー) が予め必要になるので,これを取得する。
iksm_session の取得方法に関する文献はすでに幾つか存在しているため詳細は割愛するが,Windowsを使用している方は下記ツールを使用する事で比較的簡単に取得できる。
iksm_session取得ツール|えむいーさんは今日も頑張るよ
また,mitmproxy を使ってiOSの通信を読み取る方法もある。
上記ツールで上手く取得できない場合や,macやLinux環境の方は下記を試してみるべきだろう。
イカリング2をPCブラウザで見れる方法があるらしいのでやってみた - Qiita
注意事項として,iksm_sessionという文字列を扱う上で留意したいのは,この値が第三者に知られた場合,イカリング2で可能なあらゆる操作を第三者が行えるようになるなど悪用される可能性があるという事。
取得に関しては完全に自己責任な上,扱いには十分注意する必要がある。
SquidTracksを使ってstat.inkに戦績を送信する
1. SquidTracksをダウンロードして実行する。
ダウンロードすべきファイルはプラットフォームによって異なるが,例えばwinならsquid-tracks-setup-X.X.X.exe,macならsquid-tracks-X.X.X-mac.zipになるだろう。
2. 起動するとこのようなレイアウトの画面が表示される。
通常のログイン方法は使えないため,一番下の「セッションクッキーでログイン」をクリックする。
3. 画面が遷移し iksm session Token という入力欄が出てくるため,前項で予め取得しておいた iksm_session の文字列を入力し,Loginボタンをクリックする。
4. 入力した iksm_session に問題がなければ正常にログインが完了し,このような画面に遷移する。
画面上部のメニューバーからスケジュール,バトル記録など,イカリング2で確認できるあらゆる情報にアクセスできる。
5. まだstat.inkのアカウントを持っていない場合はアカウントを作成し,プロフィールと設定画面の APIキーを表示ボタン をクリックすると表示されるAPIキー(文字列)をコピーしておく。
5. SquidTracks側に戻り,画面上部のメニューから設定(Settings)を選択。
API Token の欄に先ほどコピーした stat.inkのAPIキー を貼り付け,Save Token ボタンをクリック。
また,設定画面上部にLanguage(言語)の設定欄もあるので,日本語にしたい場合は日本語に変えておくと良い。
6. 正常にstat.inkのAPIキーを設定できていれば,バトル記録画面を開いた際に戦績をstat.inkへ送信するための3つのボタンが表示されるかと思うので,それぞれを適宜使い分けると良い。
バトル#○○を登録 : 表示されているバトルの戦績をstat.inkへ送信
stat.inkに自動登録 : 新しいバトルを認識したら自動的にstat.inkへ送信
バトル記録をすべてstat.inkに登録する : 直近50戦の全戦績をstat.inkへ送信
7. 戦績をstat.inkに送信したら,正常にstat.ink側で反映されているか確認する。もし反映されていない場合は,APIキーが誤っている可能性が高い。
stat.inkではあらゆる条件で戦績の絞り込みができる。ガチマッチのみ,リーグマッチのみ,などはもちろん,シューター系のブキを使用した場合のみ かつ 直近50バトルのみ,のような複数の条件指定も可能なので,知りたい戦績のみを表示することができる。
勝敗理由の分析に役立てるなど,さまざまな活用法が想定できるはず。
戦績を確認する間隔に注意しよう
stat.ink への自動転送のための、イカリング2へのアクセス間隔について
stat.inkからイカリング2へのアクセス間隔についての注意点が発表されている。前述した非公式だという事の留意点の延長線上で,あまり任天堂のサーバーに負担を掛けるような事があれば極論(現状黙認状態にある)すべてのサードパーティ製アプリのアクセスが遮断される可能性があるぞという話で,極力自動登録機能を使わず,ある程度戦績が蓄積された段階で一気にstat.inkへ送信する手法をオススメされている。
記事内には具体的な数値として
なお、私は 1 時間に 1 回のデータ取得を行っています。2 時間ごとでもいいかなとすら思っています。
というような記述があるので,参考まで。
これはstat.inkを活発化させる上でも最も重要な事項であり,利用者のモラルの問題ではありますが,SquidTracksのようなアプリケーションサイドにおいてもこのような注意喚起をすべきでしょう。