Memorandum

普段の生活の覚え書き。主に技術録

【Splatoon2】サーバを利用した自動戦績登録の方法

以前の記事でご紹介したとおりSplatoon 2の対戦成績の保存・分析にstat.inkを利用させて頂いております。

https://memoran.net/splatoon2-analytics-statink/

戦績が溜まっていってデータを眺めるだけでも面白いです。 無事にガチエリアでウデマエXに到達することも出来たので、さらにデータの分析をしていきたいです。

iksm_sessionの有効期限

しかし、現在stat.inkにデータを登録するために使用しているツール「SquidTracks」は、iksm_sessionを利用してデータを取得してきています。 このiksm_sessionには有効期限があるらしく、私の体感では1日に一度もログインされないと新しいiksm_sessionに書き換わり、以前のiksm_sessionだとログインできなくなります。

最近は結構な頻度でSplatoonをプレイして、SquidTracksで登録しているのですが、たまにプレイしない日があり、SquidTracksでログイン出来ないときがあります。 そうなると、もう一度iksm_sessionを取得し直さなければならず、結構手間がかかります。

そこで、現在ブログを運用しているこのサーバで、自動戦績登録を構築してみたのでご紹介します。

splatnet2statink

前回の記事でも少しご紹介したのですが、サーバで動く自動登録のスクリプト splatnet2statink.pyを使うとstat.inkに戦績を登録することが出来ます。

以前の記事でも紹介した下記のURLで導入までの手順をわかりやすく説明しています。

https://archive.fo/td52p

簡単に手順をまとめると

  1. サーバを用意する
  2. 環境を作る
    1. gitインストール
    2. Pythonインストール
    3. pipインストール
    4. ライブラリインストール
  3. splatnet2statink のインストール
  4. splatnet2statink の初期設定(API、言語、iksm_session)

これで登録が出来るかと思います。しかし、私はVPSでサーバを利用しているので、サーバへの接続が切れたら、同時にsplatnet2statinkのスクリプトも落ちてしまい、自動化が出来ませんでした。

nohup

そこで利用したのが、nohupというコマンドです。nohupとはコマンドを実行している際にログアウトしたり切断しても、そのままコマンドの実行を続けることが出来るコマンドです。

linuxサーバからログアウト、切断したときにHUPシグナルというのが送られて、対象のプロセスにkillを送信してプロセスを中断させるそうなのですが、nohupを使うとそのシグナルを無視して処理を継続することが出来ました。

他にもtmuxscreenというコマンドがあるそうですが、私のCentOS 7では標準で用意されていなかったので、今回はnohupコマンドを利用しました。

splatnet2statinkをnohupを利用するコマンドは


$ nohup python splatnet2statink.py -M 10000 &


nohupでコマンドを実行し続けるようにさせ、-Mのオプションで10000秒(約3時間)に一度新着のバトル戦績があるかチェックするようにさせています。

このときにnohup.outという実行結果を出力するファイルが作成されるのですが、実行し続けているとファイルが肥大化するのでここは定期的にチェックする必要があります。 現在3日ほど可動させたところ、ファイル容量は約3.3MByteほどなのでそれほど全体の容量を圧迫してはいないようですが、今後logwatchなどで確認しようと思います。

nohupのプロセスを確認したいときは、


ps x


で、現在動いているプロセス確認することが出来、終了させる場合はPID番号をメモして、


kill (PID番号)


で、プロセスを終了させます。

充実なSplatoonライフを!

現在、大乱闘スマッシュブラザーズ SPECIALが発売され、そちらに注目が行きがちですが、Splatoonもアップデートが続いており、まだまだやりごたえがあると思います。 私もすべてのルールでウデマエXに到達することを目標に続けていきたいと思います。

また、stat.inkでのデータをPythonで分析しようと目論んでいますので、結果が出たらまた報告しようと思います。

今回の方法を試すサーバがない方は私も使用しているConoHaのVPSサーバを検討してみてはいかがでしょうか。最安で1ヶ月630円で使えて、今回のようなスクリプトを組んだり、ブログなどを始めることが出来るのでおすすめです。

スマブラの興味はあるのですが、手を出してしまうとSplatoonが中途半端になりそうなので、手が出せずじまいです。

今回紹介した方法以外に手軽にSplatoonの戦績を保存する方法を見つけました。 スマホアプリでikaWidget2というアプリを使うと、アプリ内で戦績をダウンロードして保存・解析ができます。 こちらはiksm_sessionなどの取得などの手順が必要なく任天堂アカウントでログインするだけなので、PCでの開発データの閲覧や、込み入ったデータ分析をする必要がないという方は、導入してみてもいいかもしれません。

ikaWidget 2
ikaWidget 2
無料
posted withアプリーチ