#Hazy_Lazy_Blog

情報系学生、心にもないことをネットに書く

Steam APIを使って実績をExcelで管理しよう!

ここでExcelしか使えないのが技術的な話なのにダサさMAXでどうしようもない

Excel以外のいい感じのソフトないですかね?

最近ちょっと触り始めたSteam Web APIを使って実績をいろいろする方法についてメモ。

動機

アーケードでも稼働中の音楽ゲーム「GROOVE COASTER」のSteam版がリリースされている

store.steampowered.com

アーケードでは、楽曲ごとに一定以上のスコアを出すなどの条件を満たすことによって「称号」を得ることができる。

Steam版でも、その一部*1が「Steam 実績」として用意されている。

Steam Community :: Groove Coaster :: Achievements

曲ごとに何個か用意されているので、1010個*2もの実績が存在することになる。

以前は手作業で表を作っていたが、DLC楽曲の追加のたびに作業をするのが面倒になってきたので、自動化したいと思い立った。

f:id:signoiidx:20190416194713p:plain
途中でDLC楽曲について考えるのをやめたファイル

Steam Web API Keyを発行する

  1. URLを開いて、 https://steamcommunity.com/dev/apikey

    f:id:signoiidx:20190416185726p:plain
    ログインしておきましょう

  2. ドメイン名は localhost と入力

    f:id:signoiidx:20190416185905p:plain
    チェックボックスも入れよう(撮影時は失敗)

  3. よし(適当)

    f:id:signoiidx:20190416190049p:plain
    生成された
    このとき、API Keyは無効にしないように 今後の作業が全てやり直しになってしまう (撮影のときにやらかしました)

情報収集

実績のデータを手に入れるためには、次のリストにある情報が必要になる

  • api key (入手済)
  • steam id
  • app id

steam id

自分で名前として決められるID(customURL)ではなく、数値のみのIDが必要になる さっさと探してしまおう

Steam ID Finder

steamID64の欄にある数値をコピーしよう

f:id:signoiidx:20190416191350p:plain
steamID64をメモ帳にでもコピーしよう

app id

ゲームの識別に使うIDも必要になる これはストアページのURLからわかるので簡単だ

ttps://store.steampowered.com/app/******/GAME_TITLE/

となっているので、 app と title の間の数値をコピーしよう

f:id:signoiidx:20190416191551p:plain
こちらもメモ帳にコピー

JSONデータを手に入れる

APIを叩いて実績のデータを出すためのURLの構文は、

https://api.steampowered.com/ISteamUserStats/GetPlayerAchievements/v1/
?key=&steamid=&appid=&l=japanese

となる 先程から集めてきたデータをイコールのあとに順番に当てはめてほしい

これをブラウザにコピペすると...?

f:id:signoiidx:20190416192659p:plain
データだ

JSON形式のデータが得られた*3

Excelで開く

JSONデータを手に入れたら、このページを参考に作業を進めていこう qiita.com

URLは先程作ったものをコピペすればよい

具体的にSteamの実績を出すためにクリックすべき部分は、下図に示す

f:id:signoiidx:20190416193521p:plain

f:id:signoiidx:20190416193736p:plain

f:id:signoiidx:20190416193749p:plain
そのまま OK を押す

f:id:signoiidx:20190416193916p:plain
余分な項目を外すこともできる

f:id:signoiidx:20190416194004p:plain
完成 Excelに戻ろう

仕上げ

achievedの列は、解除していない実績が0になる フィルタをかけて解除した実績を見えなくしよう f:id:signoiidx:20190416194152p:plain

クエリのプロパティで、自動更新することもできる f:id:signoiidx:20190416194319p:plain

f:id:signoiidx:20190416194345p:plain
いろいろいじくってみよう

最後に、条件付き書式で見栄えを変えれば...

f:id:signoiidx:20190416194428p:plain

お疲れ様でした

参考文献

Steam API Keyの作成 liginc.co.jp

JSON から Excel へのいろいろな処理 qiita.com

Steam APIの使い方が書いてあるサイト 公式のクッソ見づらいやつなんかよりずっと良い steamwebapi.azurewebsites.net

*1:さすがに理論値狙いなど、アーケード特有の鬼畜称号はない

*2:記事執筆日(4月16日)現在

*3:Firefoxの場合データを整形することで見やすくなる。Chromeは未確認だけど多分大丈夫でしょ