はじめに
まずはじめに,この記事で紹介するものは stat.ink というSplatoonの戦績を記録するサービスに登録していることが前提です(そこからデータを取得します).
まだ登録してない人は,この機会に登録して戦績を記録しちゃいましょう.
無印時代では戦績の記録にキャプチャボードが必要でしたが,2になってイカリング2からデータを取得する方法が確立されているので,だいぶ導入までの敷居が下がりました.適当なキーワードで検索すれば,導入方法を解説した記事がたくさん引っかかると思います.
作ったもの
こんな感じで,その時点での最新のウデマエ情報を取得して表示することが可能です.
spl.0ko.me で動いてます.
使い方は簡単で,画面に従って stat.ink のユーザ名を入力するだけです.戦績が正しく記録されていれば,最新のウデマエが表示されるはずです.
作った理由
最新のウデマエXのXパワーを確認するために作りました.ウデマエがS+9までの間はゲーム内やイカリング2で常にウデマエが確認できるので特に困ることは無いのですが,ウデマエXになってからだとなぜか殆どの場所でXとしか表示されません.
Xパワー1900でも,2500でも,同じXです.
正規の方法でXパワーを確認しようと思うと,そのガチルールが開催されている時間にゲーム内で確認するか,イカリング2の戦績をさかのぼって調べるしかありません.さかのぼるにしても,イカリング2では最新の50戦までの戦績しか残らないので,流れていたりするとそもそも確認することができません.
ゲームデザイン的には「開催中のルール以外のXパワーはそれほど気にしなくて良い」というような考えなのでしょうが,他人に伝えたり次のルールに向けてモチベを高めたりしようとしたときに,サッと確認できる手段があるに越したことはありません.
画像を生成して出力できるようにすれば,ブログパーツ的な感じでも使えるのかなーと思ったのですが,ちょっと面倒くさそうだったのでまだ手を付けてません.もしも誰かがいい感じのテンプレート画像を作ってくれたりしたら頑張るかもしれません.
実装について
ソースコードはこちらです.
ASP.NET Core 2 の Razor Pages です.Razor Pages を使ってみたかっただけなので,デザイン周りとかは 手抜き 一切手を付けてないです.パッサパサです.
stat.ink からの戦績データの取得にはAPIを使いたかったのですが,あいにくAPI経由でのフィルタ条件の指定に対応していなかった*1ので,ページをスクレイピングしてます.APIでのフィルタ条件の指定に対応したら実装し直そうと思います.stat.ink 側に迷惑がかかるといけないので,一度取得したデータは5分間ぐらいは自前でキャッシュするようにしてます.
おわりに
完全に自分用で作ってたのですが,せっかくなので誰でも使えるようにしました.どこかに少しぐらいは需要があるんじゃないかなーと思うので,よければ自由に使ってください.