ウマ娘プリティーダービーのチーム競技場のスコアをスクリーンショットから集計するツール(Googleスプレッドシート)をつくりました。スクリーンショットをOCRにかけてスプレッドシートに集計します。
次に育てるウマ娘を検討するのにお役立ていただければ幸いです
ダウンロード
どなたでも無料でご利用いただけます。加工も問題ありません。ただし、著作権は放棄しておりませんので、加工の有無に関わらず再配布は禁止とさせていただきます。
(2021/06/01更新)
実際のデータを入れたサンプルもご用意しました。
ツールのスクリーンショット
OCRで取り込んだデータ
ピボットテーブルとグラフ
グラフ
使い方
チームレースの[スコア情報]のスクリーンショットを撮ります。スコア情報は、下のレース終了画面の[スコア情報]ボタンで表示できます。
1レース分のスコアは1画面に収まらないので、スクロールの一番上と一番下の2回に分けて撮ります。
スクリーンショット1枚目の例
スクリーンショット2枚目の例
スクリーンショットは、DMM版ならウマドなどのツールを使うと簡単に取得できます。
Googleドライブ上に新しいフォルダを作成し、先程コピーしたスプレッドシートとスクリーンショットを新しく作成したフォルダに入れます。ツールはこのフォルダ内に対して操作を行うので、関係ないファイルを一緒に入れない方が無難です。
スプレッドシートを開き、[データ]シートの上部の[データ追加]ボタンをクリックします。処理が終わるまで少し時間がかかります。
処理が終わったら[グラフ更新]ボタンをクリックします。
結果
[グラフ]シートにピボットテーブルとグラフが生成されます。
新しくデータを追加する
一度グラフを作成した後にデータを追加する方法についてご説明します。
新しく撮ったスクリーンショットをGoogleドライブに追加し、[データ追加]→[グラフ更新]で完了です。ピボットテーブルやグラフに新しいデータが追加されます。
古いデータを削除する
古いレースのデータを削除する方法についてご説明します。
[データ]シートのすべてのデータを削除したい場合、[データクリア]→[グラフクリア]の順にクリックします。[データ]シートのデータと、[グラフ]シートのピボットテーブルとグラフが削除されます。
記録したレースが増えてきて古いレースの分だけ削除したい場合、[データ]シートの不要なレースの行を削除します。[グラフ]シートのピボットテーブルが更新されグラフが更新されます。
[データ]シートにデータを取り込み済みの画像ファイルは削除して問題ありません。ただし、改めて画像ファイルからデータを取り込み直したい場合、画像ファイルは削除せずに残しておく必要があります。
便利な使い方
グラフで1人のウマ娘を強調表示する
グラフの凡例(ウマ娘名)のエリアをダブルクリックした後、強調したいウマ娘の名前をクリックすると、クリックしたウマ娘の折れ線グラフが強調表示されます。
スコアの平均をみる
[グラフ]シートのピボットテーブル①をクリックして、右に表示される[レース番号]の[総計を表示]②にチェックを入れると、ピボットに列③が追加され、ウマ娘ごとの平均スコアが出ます。
上記②の[総計を表示]部分を拡大した図です。
ウマ娘をフィルタする
[グラフ]シートのピボットテーブルをクリックすると、右にピボットテーブルエディタが表示されますその中の[フィルタ]から表示するウマ娘を切り替えられます。表示を切り替えるにはプリダウンをクリックします。
チェックされているのは現在表示されているウマ娘です。チェックを外すとグラフに表示されなくなります。チェックをつけ直すとまたグラフに表示されるようになります。
制約
iPhoneではレースごとに画像をアップロードする必要があります
複数レース分のスクリーンショットを同時にアップロードすると、ファイル更新日がアップロードした日時で更新され、同一レースの判別ができなくなります。Androidは持っていないため試せていませんが、同じことが発生する可能性が高いです。
一度に読み込むファイル数が多いと処理が中断します
一度の読み込むファイル数は、20個(10レース分)をめどに、あまり多くし過ぎないようにしてください。Google Apps Scriptの制約で、処理時間が6分を超えると処理が中断されてしまい、データが取り込めません。
読み込んだデータが間違っている場合があります
OCRの精度は完璧ではありません。データが間違っている場合は手作業で[データ]シートのデータを修正し、[グラフ更新]をクリックしてください。
機能の説明
[データ追加]は、まだ読み取りを行っていない画像だけ読み取りを行います。データが追加された場合、ピボットテーブルの集計範囲を再設定する必要があるため、データ追加後はグラフ更新も実施してください。画像からデータを取り込み直したい場合、[データ]シートの取り込み直したい画像ファイルの行をすべて削除し、[データ追加]ボタンをクリックしてください。
[グラフ更新]は、[データ]シートからピボットテーブルを作成し、ピボットテーブルからグラフを作成します。すでにグラフがある場合、データの更新だけ行い、グラフの書式は維持されます。データ追加とボタン別にしている理由は、OCRの取り込みミスを手動で修正できるようにするためです。
[データ削除]は[データ]シートにある画像から取り込んだデータをすべて削除します。
[グラフ削除]はピボットテーブルとグラフを削除します。
データが正しく認識されなかった場合の修正例
OCRによる読み取りは完璧ではありませんので、読み取りに失敗する場合があります。下の図は読み取りに失敗したことが疑われる例です。
①はウマ娘の名前が読み取れていません。②、③はスコアが低すぎます。
ウマ娘の名前が読み取れていない
調査
まず、グラフの上にあるピボットテーブルを確認します。間違って読み取られた「チャンピオン」は、レース番号「16」だけにいることがわかります。逆にウオッカは前後のレースにいるのに「16」だけにいません。そのため、ウオッカの読み取りに失敗していそうであることがわかります。
修正
[データ]シートに移動し、レース番号「16」の「チャンピオン」を「ウオッカ」に書き換えます。これでピボットテーブルが自動的に更新され、グラフも自動的に更新されます。
スコアがおかしい
調査
[データ]シートへ移動し、スコア列のフィルタ(▼マーク)をクリックし、[A→Zで並び替え]をクリックすると、スコアの小さい順に並び替わります。
元となった画像のファイル名がわかるので、実際にファイルを開いて確認します。
グラスワンダーは4,023ではなく、34,023でした。
ダイワスカーレットは・・・・・・合ってました。。。
修正
[データ]シートのスコアを「4,023」から「34,023」に書き換えます。これでピボットテーブルが自動的に更新され、グラフも自動的に更新されます。
以上で修正完了です。修正したグラフは以下です。
コメント
とても便利なツールを公開していただきありがとうございます。
データ追加をしようとすると、「TypeError: Cannot read property ‘1’ of null」というエラーコードが出てきてデータが追加できないのですが、何か考え得る原因と解決策はありますか?
くまきちさん、
ご連絡ありがとうございます。また、返信が遅くなり大変申し訳ございません。
エラーコードから問題を特定することが難しかったため、詳細な情報をいただきたく、
後ほどメールにてご連絡させていただきます。