ウマ娘プリティーダービー チーム競技場スコア集計ツール

ウマ娘プリティーダービーチーム競技場スコア集計ツール コラム

ウマ娘プリティーダービーのチーム競技場のスコアをスクリーンショットから集計するツール(Googleスプレッドシート)をつくりました。スクリーンショットをOCRにかけてスプレッドシートに集計します。

Deku
Deku

次に育てるウマ娘を検討するのにお役立ていただければ幸いです

ダウンロード

どなたでも無料でご利用いただけます。加工も問題ありません。ただし、著作権は放棄しておりませんので、加工の有無に関わらず再配布は禁止とさせていただきます。

(2021/06/01更新)

Update your browser to use Google Drive, Docs, Sheets, Sites, Slides, and Forms - Google Drive Help
To use Google Drive, Docs, Sheets, Sites, Slides, and Forms, you need to use a supported web browser. Learn what a brows...

実際のデータを入れたサンプルもご用意しました。

コピーしてご利用ください

読み取り専用で公開していますので、自分の Google Drive にコピーしてご利用ください。

上記スプレッドシートをブラウザで開き、メニューの[ファイル] > [コピーを作成]からコピーいただけます。

ツールのスクリーンショット

OCRで取り込んだデータ

ピボットテーブルとグラフ

グラフ

使い方

チームレースの[スコア情報]のスクリーンショットを撮ります。スコア情報は、下のレース終了画面の[スコア情報]ボタンで表示できます。

1レース分のスコアは1画面に収まらないので、スクロールの一番上と一番下の2回に分けて撮ります。

スクリーンショット1枚目の例

スクリーンショット2枚目の例

スクリーンショットは、DMM版ならウマドなどのツールを使うと簡単に取得できます。

BOOTH - 創作物の総合マーケット
BOOTH(ブース)とは、pixivと連携した、創作物の総合マーケットです。無料で簡単にショップを作成でき、商品の保管・発送代行サービスも提供しています!

Googleドライブ上に新しいフォルダを作成し、先程コピーしたスプレッドシートとスクリーンショットを新しく作成したフォルダに入れます。ツールはこのフォルダ内に対して操作を行うので、関係ないファイルを一緒に入れない方が無難です。

スクリーンショットのファイルをコピーしたスプレッドシートと同じフォルダにコピー

スプレッドシートを開き、[データ]シートの上部の[データ追加]ボタンをクリックします。処理が終わるまで少し時間がかかります。

初めて実行する場合

初めて実行する場合、スクリプトを実行するための承認が必要です。

下のような画面が表示されますので、[続行]をクリックします。

スクリプトを実行するアカウントを選択します。普通は今ログインしているアカウントを選択することになります。

「このアプリはGoogleで確認されていません」と表示されますので、[詳細を表示]をクリックし、[myOcr(安全でないページ)に移動]をクリックします。

[許可]ボタンをクリックします。スクリプトでは、画像ファイルを探し、画像をOCRにかけ、OCR結果は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」に書き換えます。これでピボットテーブルが自動的に更新され、グラフも自動的に更新されます。

以上で修正完了です。修正したグラフは以下です。

コメント

  1. くまきち より:

    とても便利なツールを公開していただきありがとうございます。
    データ追加をしようとすると、「TypeError: Cannot read property ‘1’ of null」というエラーコードが出てきてデータが追加できないのですが、何か考え得る原因と解決策はありますか?

    • Deku より:

      くまきちさん、
      ご連絡ありがとうございます。また、返信が遅くなり大変申し訳ございません。
      エラーコードから問題を特定することが難しかったため、詳細な情報をいただきたく、
      後ほどメールにてご連絡させていただきます。

タイトルとURLをコピーしました