myRoupeiro 〜 サッカーの試合のログを取ってデータ分析するアプリ 〜 の使いかた

myRoupeiro  〜 サッカーの試合のログを取ってデータ分析するアプリ 〜 の使いかた

English

myRoupeiroって何ですの?

「myRoupeiro」はサッカーの試合記録をとってプレーを分析するための無料アプリです。

  • 試合のビデオを観ながら、誰がいつどこでどのようにボールに関与したのかをポチポチと記録して、データ分析結果を可視化するツールです
  • 試合におけるシュートやパスなど、さまざまなイベントデータを記録し可視化することができます
  • 可視化した分析結果は対話的に確認することができます
  • 分析結果はhtmlファイルに保存されるので、他のデバイスで確認したり、チームで共有したりできます
  • 入力したデータはcsvファイルとxmlファイルに保存されるので、別途自分で好きなように加工して使うこともできます
  • データは詳細に記録することも、気になるものだけざっくり記録することもできます
  • ハーフサイズのコートにも対応しているので少年サッカーの分析にも使えます
  • 完全無料です

もともとは本サイトの運営者が、自分たちのサッカーチームの試合記録・分析用に良かれと思って作成したプログラムです。これを誰でも使用できるようにアプリ化したものがmyRoupeiroです(androidのみ)。

myRoupeiro_launcher02-playstore_rounded
myRoupeiro – soccer analyzer
Google Play で手に入れよう

Roupeiro(ポルトガル語、「ホペイロ」と読みます)は、サッカーチームの用具係という意味で、チームを支える大事な裏方のことです。

これにちなんで、チームを支えるための役立つツールになればいいなと思い、myRoupeiroという名称にしました。

myRoupeiroで分析した結果を、日々の練習や次の試合に活かしていただければうれしいです。

こんな感じです

試合中のイベントを可視化してみる

  • シュート
  • ゴール
  • パス
  • フリーキック etc.

チームデータを眺めてみる

  • 試合スタッツ
  • チームのイベントデータ
  • パスマトリックス
myRoupeiro_individual_data

個人データを分析してみる

  • 個人のイベントデータ
  • パス方向、距離、成否割合
  • ヒートマップ
  • イベントマップ

試合中のイベントを時系列で追ってみる

myRoupeiro_data_entry

データ入力画面

試合中のさまざまなイベントをぽちぽち記録していきます

注意事項

  • ビデオプレーヤーは付いていません
  • あくまでビデオカメラで追って撮影できた範囲で、ボールの近くでプレーした選手に注目して記録と分析をするためのアプリです。
    ですので、ボールそのものの動きや、選手たちのオフザボールでの動きや試合を通してのトラッキングデータを分析したい、といった用途には対応していません
  • 日本語入力・表示(試合情報とチーム情報)にも対応しています。
    ただし現在(2022年8月2日)、日本語入力システムがGboadの場合は日本語で入力ができません(日本語の表示はできます)。
    日本語で入力して記録するためには、他の日本語入力アプリを別途インストールするか、メモ帳などにあらかじめ入力しておいた日本語をコピーアンドペーストする必要があります。(2022年8月2日の時点で、日本語入力が動作することを確認できているのは”Microsoft SwiftKey Keyboard”と”Flick”です)

使い方

<データ記録編>

誰がいつどこでどのようにボールに関与したのか(ここでは「イベント」と呼ぶことにします)を記録していきます。

アプリの起動と終了

起動 通常のアプリの起動と同じように、アイコンをタップすれば起動します
終了 通常のアプリの終了と同じように、Androidのタスクボタン(□)をタップしてマルチタスク画面を表示し、起動中のmyRoupeiroをスワイプして終了します

メモ:myRoupeiroにオートセーブ機能は付いていません。こまめにデータを保存することをお勧めします。

画面の説明

メイン画面

アプリを起動するとメイン画面が表示されます。ここでイベントの入力等を行います。

myRoupeiro_data_adder2

メニューバー

myRoupeiro_main_00
*この図は横向き画面で表示しています
Title解析するデータのタイトルを入力します
team settingsチーム情報の入力画面に移動します
import files既にあるデータファイルをimportします
get ext-files別の端末等で作成したmyRoupeiroのデータファイルを、現在使用中の端末で使えるように取り込みます
hide ads短い動画広告の視聴を完了することで、一定時間すべての広告を非表示にすることができます
manualマニュアルページ(外部ページ = このページ)へ移動します
licenseライセンスを確認します
privacy policyプライバシーポリシーのページ(外部ページ=当ブログの別ページ)へ移動します

メモ;画面の幅が狭い時はメニューが ≡ に隠れている場合があります

ビデオ時間入力前半/後半選択・Kickoff時間入力

myRoupeiro_main_02

Video Time・記録したいイベントが起こったビデオの表示時間(時間、分、秒)を入力します
・上向きの矢印を押すと1ずつ進みます。下向きの矢印を押すと1ずつ戻ります
1st period
/ 2nd period
前半、後半を選択します(選択しなければ前半であるとみなされます)
Kickoffキックオフの年(西暦下2桁)、月、日、時刻(時間:分)を入力します

メモ;myRoupeiroではビデオ映像を観ながら記録することを想定しているので、”ビデオ時間”を入力するようにしています。

Player/Area

myRoupeiro_Playerarea
自チーム名/相手チーム名を表示しています
*設定はmy team settings/opp team settings画面で行います
自チーム/相手チームの得点を入力します
*最終結果で構いません
自チーム/相手チームの選手リストを表示しています
*設定はmy team settings/opp team settings画面で行います
*イベントに関与した選手をここから選択します
*「dest」はボールの受け手がいなかった時のボールの行き先を記録するときに使用します
選手がピッチのどこでイベントに関与したかを指定する領域です
clear dots選手の選択を解除し、イベントに関与した場所に描画したポイントを消去します
change ends両チームのエンド(陣地)を入れ替えます
pitch sizeコートサイズ
*ドロップダウンリストからノーマルサイズまたはハーフサイズを選択します
*非選択の場合はノーマルサイズとみなされます
*上図では既に”Normal”が選択されている状態です

Before event

イベント前のボールの状態です

myRoupeiro_main_04

ball holder; 誰がボールを持っていたか

oneself自分自身
allymy teamの選手
oppopp teamの選手
loose ballルーズボール/ボール保持者なし
drop ballドロップボール
None非該当

ball state; ボールの高さの状態

grounderグラウンダー
lowピッチから頭までの浮き球
high頭より上の浮き球

Event

イベント選択タブ;イベントのタイプを選択するためのタブ

myRoupeiro_main_10_2
PASSパスに関連するイベント
SHOTシュートに関連するイベント
RECOVERYボール回収やクリアに関連するイベント
FAULT RECEIVEDファールを受けた場合
SET PIECEセットプレー、スローイン、キックオフなど
BALL OUTアウトオブプレーになったプレー
CARDカード
CHALLENGEプレスやタックル、デュエルなどチャレンジングなプレー
CARRYボールを運ぶドリブルや、トラップとボールキープ

イベント内容選択ボタン;イベントの内容を選択するボタン群

myRoupeiro_main_11
attemptイベントのタイプの小分類
result1成功と失敗(良い失敗/悪い失敗)
result2結果の内容(該当するものがあれば選択します)
pressure
state
イベント時のプレッシャー状態
body partsプレーに関わった体の部位
Direct/Indirectダイレクトプレーか否か
ball state afterイベント後のボールの高さの状態
next playイベント後の次の展開
next holderイベント後の次のボール保持者

その他のボタン/領域

add eventボタンイベントをデータテーブルに追加します
myRoupeiro_main_07
︿ ボタン選手の選択/イベント発生場所の指定をクリアして画面上部に移動します
myRoupeiro_main_08
通知エリアメッセージ表示領域
myRoupeiro_main_12
stretch listデータテーブルを広げて表示します
delete selected row選択したデータ行を削除します
Analyze!分析を実行します
myRoupeiro_main_13
データテーブル追加したイベントを表示する領域
myRoupeiro_main_09

メモ; データテーブルのデータ行を長押しするとポップアップでそのデータを確認することができます。

my team 設定画面

自チームのチーム名、選手の背番号、選手名、ポジションの設定画面です

myRoupeiro_myteam_settings_org

メニューバー

myRoupeiro_myteam_settings05_2
opp team settings対戦相手チーム情報の入力画面(opp team設定画面)に移動します

選手情報入力領域

24名まで設定できます。

myRoupeiro_myteam_settings01
#背番号
name選手名
posiポジション(ドロップダウンからポジションを選択します)

選手表示領域

myRoupeiro_myteam_settings03
myRoupeiro_myteam_settings04
選手表示領域スターティングメンバー/控えメンバーを表示するエリアです

メモ
・選手アイコンをダブルタップすると選手情報入力領域に入力カーソルが移ります
・選手のポジションとフォーメーションの情報は分析に使用しません

opp team 設定画面

メニューバー

myRoupeiro_oppteam_settings01_2
back to mainメイン画面に移動します

その他はmy team設定画面と同様です

イベントの記録の方法

イベントをぽちぽちと選択し記録していきます。

*選択状態のボタンを再度タップすると選択が解除されます

1タイトル、キックオフ時間、得点、ピッチサイズを入力します
2my team/opp team 設定画面でチーム名と選手情報を入力して、メイン画面に戻ります
3試合のビデオを観ながら、イベントが発生した時間をVideo Timeに入力します
4前半/後半を選択します
5イベントに関与した選手を選択し、イベントに関与した場所をタップします

パス等でボールの受け手がいる場合は、さらに受け手の選手を選択し、ボールを受けた場所をタップします(パスが失敗した等のためにボールの受け手がいない場合は選手の代わりにdestを選択し、ボールの行き先となった場所をタップします)
*ボールの出し手の入力が常に先になり、受け手の入力が後になります。
*clear dotsで選手の選択とイベントに関与した場所の指定をリセットできます
6Before eventからイベント前のボールホルダーとボールの高さの状態を選択します
7イベント選択タブからイベントのタイプを選択します
8attemptからnext holderまでのそれぞれのイベント内容を選択します
*該当するものがなければそのままにしておきます
9add eventボタンを押してイベントデータをデータテーブルに追加します
103から9を繰り返します
*結果は順不同で選択できます

メモ;
イベントが重なった場合、例えば相手ボールのインターセプトがそのままパスになった場合、「リカバリー/インターセプト」と「パス」の2つのイベントに分けて入力すると良いです。

イベントデータの修正

1データテーブルにおいて修正したいイベントデータ行をダブルタップすると、その行のイベントデータを編集できるようになります
add eventボタンがfinish editボタンに変わります
2イベントデータの編集が終わったら、finish editボタンを押して編集を終了します

メモ; イベントデータの行をロングタップすると、ポップアップでその行の内容を確認することができます。ポップアップを消す場合は画面のどこかをタップします。

イベントの削除

1データテーブルにおいてイベントデータを削除したい行をタップして選択状態にします
2delete selected rowボタンで削除します

メモ; 削除したデータ行は元に戻すことはできませんので慎重に

データの保存

入力したデータを保存します。

1メニューバーのsave dataをタップします
2ファイル名を指定してsaveボタンをタップしてsaveします
3.xmlファイルと.csvが生成します。
.xmlファイル試合データと選手データを格納しています
.csvファイルイベントデータを格納しています

メモ:myRoupeiroにオートセーブ機能は付いていません。こまめにデータを保存することをお勧めします。

データの読み込み

myRoupeiroで作成したデータファイル(.xmlファイル、.csvファイル)を読み込みます

1メニューバーのimport dataをタップします
2読み込みたい.xmlと.csvファイルを選択し、loadボタンをタップして読み込みます。
(1ファイルずつ読み込むこともできます)

外部データの読み込み

他の端末で作成したmyRoupeiroのデータはそのままでは読み込めません。
読み込み可能な状態にしてから、myRoupeiroに読み込みます。

1メニューバーのget ext-filesをタップします
2他の端末で作成した.xmlと.csvファイル(またはその片方)を選択し、loadボタンをタップします
3ファイル名の先頭に”fetched-“が付与された、現在使用中の端末で読み込み可能なファイルが生成されます
4生成されたファイルはメニューバーのimport dataから読み込めるようになります

<データ分析編>

分析を開始する

Analyze!ボタンをタップすると、分析が始まり、Match Results 画面に移動します。

adder_vertical_analyzebutton

Match Results 画面

この画面を起点に、それぞれの分析結果を表示することができます

myRoupeiro_analysis_screen_tate
Event Dataイベントデータ分析結果
Team Dataチームデータ分析結果
Individual Data選手の個人データ分析結果
Time Series of Eventsイベントが発生した場所の時系列表示

<Event Data>

myRoupeiro_freekicks
*Freekicksの結果例
データ名説明
Shotsシュート
Goalsゴールに直結したイベント
Cornersコーナーキックとその次のイベント
Freekicksフリーキックとその次のイベント
Challengesプレス(緩いものも含む)、デュエル、タックル、 チャレンジングなドリブル
Recoveriesパスのインターセプト、ボール回収など
Turnoversパスをインターセプトされて攻守が切り替わった、などの攻守の切り替わり
Shot Assistsシュートをアシストしたイベント
Assistsゴールをアシストしたイベント
Passes成功したパスの出し手と受け手の位置。矢印はボー ルの移動方向
Passers成功したパスの出し手
Receivers成功したパスの受け手

ポップアップについて
マーカーをマウスオーバーするとポップアップで詳細を確認することができます。
例;Shots

myRoupeiro_shots
ポップアップの表示説明
1(-23.32, -2.04)センターマークを原点(0, 0)としたx座標とy座標 (原点からのおおよそのx軸距離とy軸距離(メートル))
2Time 52ʼ25”ビデオでの表示時間(試合の経過時間とは一致していません)
3sane (no.10 Byern)プレーヤー名(背番号 チーム名)
4oneselfイベントの前のボールの保持者
5grounderイベントの前のボールの高さ
6SHOTイベントのタイプ
7Successイベントの成否(result1)
8GOALイベントの結果 (result2)
9loose pressイベント時に受けているプレッシャー状態(その他の例;自分_on_相手)
10foot Lプレーした部位
11INDIRECTダイレクトプレーかどうか
12ON TARGET枠に飛んだかどうか
13longイベント後のボールの飛距離。longは30m程度上
14highイベント後のボールの高さ(high; 頭より上)
15KICK OFFイベント後の次のプレー(ゴールだったので、次はキックオフ)

<Team Data>

Stats tableについて

myRoupeiro_statstable
*Barcelonaのデータは主要なものしか記録していないので、パスの数字と成功率は実際とは異なります。
項目説明
GOAL得点数
BALL POSSESSIONボール保持率(%)
*my Teamのボール保持時間からの概算
SHOTS(On target)シュート本数
*シュートの意図がみられたが惜 しくもボールに触れなかったもの(result2; close to touch)を含む
*括弧内は枠内シュート数
PASSES(Success)成功したパス数
*括弧内は成功率(%)
DUEL
GROUND(Won)
空中戦でないデュエル勝ち数
*括弧内は勝率(%)
DUEL
AERIAL(Won)
空中戦のデュエル勝ち数
*括弧内は勝率(%)
CORNERSコーナーキック数
PENALTIESペナルティーキック数
CARDSカードを出された数

Tree Mapについて

ボールに関わった全イベントをまとめています。

myRoupeiro_event_treemap
  • 前半と後半に分けて表示しています。
  • そこに、イベントの種類ごとに分類された結果が入れ子になっています。
  • さらに、それぞれのイベントの中に個人ごとの結果が入れ子になっています。
  • 面積が大きいものほどイベントのカウント数が多いことになります。
  • 入れ子になっている部分をタップすることで内訳を見ることができます
    • その他の主な内訳
      • 成功/良い失敗/悪い失敗
      • プレッシャー状態(フリー/緩いプレス/1対1/1対多/多対1)
      • プレー部位
      • ダイレクトプレー/ダイレクトプレーでない
      • プレー方向
      • ボール飛距離(ボールを蹴った場合)etc.
        *選択したときに出てくる数字はイベントがカウントされた回数
        *Noneは無視します

Pass Matrixについて

成功したパスの出し手と受け手を示すマトリックス表です

myRoupeiro_passmatrix

*縦軸; 出し手 / 横軸; 受け手

*パスの数が多いほど赤色が濃くなります

<Individual Data>

個人データです。

myRoupeiro_individual_data
Event tree map個人が関与したイベントとその内訳
*タップで詳細を確認することができます
Pass direction/distance全パスの内訳 (方向、距離、本数、その方向での成否)
*体の向きに関係なく、常に相手ゴールライン側が上で、自陣ゴールライン側が下
*円の内側から、
・ショートパス(15m程度まで)
・ミドルパス(15m〜30m程度まで)
・ロングパス(30m程度以上)
*本数が多いほど色が濃い
Heat mapイベント発生場所と回数
*前半と後半の攻撃方向が同じ方向になるように表示しています
Event mapイベント発生場所と種類
*前半と後半の攻撃方向が同じ方向になるように表示しています
*下にある凡例のクリックで表示のon/offができます

<Time Series of Events>

時系列でイベントを発生場所とともに確認できます

ドットの色はイベント直前のボールホルダー(Before eventの段でball holderとして入力されたもの)を示しています

●;自チームボール

●;ルーズボール

●;相手ボール

<イベントの定義/説明>

*チームの状況に合わせて使いやすいように再解釈、再定義しても良いと思います

PASS; パス

大分類説明
normal普通のパス
CROSSクロス
THROUGH BALLスルーパス
DEEP BALLディフェンス裏狙いのハイボール
Kick(GK)ボールキャッチ後のGKのキックによるパス
Throw(GK)ボールキャッチ後のGKのスローによるパス
VOLUNTARY意図的にボールを相手に返した
小分類説明
OFFSIDEオフサイドになる
CLEARANCEクリアされる
assistアシストする
Loose ballルーズボールになる
SAVEDキーパーにセーブまたはキャッチされる
Mistake(opp)パスの質は低かったが相手のミスで何故かうまくいった
Pass to opps相手チームにパスをしてしまった
Aiming spaceスペース狙い
miskickミスキック/パスミス
OUTそのままアウトオブプレーになる
INTERCEPTIONインターセプトされる
BLOCKEDブロックされる
REFEREE HIT審判に当たる

SHOT; シュート

大分類説明
GOALゴール
BLOCKEDブロックされる
SAVEDキーパーにセーブまたはキャッチされる
WOODWORK枠に当たる
OUT枠外でそのままアウトオブプレー
Close to touch惜しくも触れなかった(シュートとしてカウント)
REFEREE HIT審判に当たった
方向説明
ON TARGET枠内シュート
OFF TARGET枠外シュート

Recovery; リカバリー

大分類説明
CLEARANCEクリアした
INTERCEPTIONインターセプトした
Ball recoveryルーズボール/セカンドボールの回収またはその意図のあるプレー
BLOCKEDシュート/クロスをブロックした
Course block相手の進行方向をブロックしてボールを守る
Catch(GK)GKがキャッチ(自チームが守備のとき)
REFEREE HIT審判に当たった
小分類説明
Own goalオウンゴールになった

FAULT RECEIVED; ファールを受ける

大分類説明
Get FKフリーキックを得た
ADVANTAGEアドバンテージが適用された
PENALTYPKを得た

BALL OUT; ボールアウトオブプレー

大分類説明
CLEARANCEクリアしてアウトオブプレーにする
VOLUNTARYプレーを中断するために意図的にアウトオブプレーにする
FORCED審判によるプレーの停止
END HALF前半/後半終了
REFEREE HIT審判に当たる
Mistouchボールコントロールを失敗してアウトオブプレーになる
HAND BALLハンド

SET PIECE; セットプレー

大分類説明
GOAL KICKゴールキック
FREE KICKフリーキック
FREE KICK SHOTシュート意図のあるフリーキック
CORNER KICKコーナーキック
THROW INスローイン
KICK OFFキックオフ
RETAKENセットプレーのやり直し
小分類説明
BLOCKEDブロックされる
CLEARANCEクリアされる
assistアシストする
GOALゴールする
SAVEDキーパーにセーブまたはキャッチされる
WOODWORK枠に当たる
OUT枠外でそのままアウトオブプレー
Aiming spaceスペース狙い
Own goalオウンゴールで得点した
方向説明
ON TARGET枠内シュート
OFF TARGET枠外シュート

CHALLENGE; チャレンジ

大分類説明
pressingプレス
TACKLEタックル
DRIBBLEドリブルを仕掛ける
GROUND地上戦デュエル
AERIAL空中戦デュエル
小分類説明
FAULTファウルする
ADVANTAGEアドバンテージ適用
PENALTYPKを与える
THEFTボールを奪われる
WONデュエル勝ち
LOSTデュエル負け

参考;作者の場合、「pressing」は、目立った良い効果があったものは「Success」、目立った悪影響のあったものは「Bad failure」、それら以外は「Good failure」としています

CARRY; キャリー

大分類説明
DRIBBLE仕掛けない運ぶドリブル
Trapトラップ
keepボールキープ
小分類説明
Ball outアウトオブプレーになる
CLEARANCEクリアされる
THEFTボールを奪われる
FAULTファウルする
Loose ballルーズボールになる

その他の項目

分類項目説明
プレー結果Successプレーが成功した
Bad Failure「そこでそれはだめ」なプレーや質の低いプレーによる失敗
Good Failure意図的で質も比較的良いプレーをしたが成功しなかった
プレッシャー状態Freeフリー
Loose press緩いプレッシャー
1_on_11対1またはそれに近い状態
1_on_many1対多またはそれに近い状態
many_on_1多対1またはそれに近い状態
Opp_free相手にフリーでプレーさせている(自チームが守備目線のとき)
プレー部位Foot R/Foot L/foot either右足/左足/両方または不明
HEAD
Body胴体
both hands両手
hand R右手
hand L左手
ダイレクトプレーDIRECT/INDIRECTダイレクト/ダイレクトでない
距離short/middle/long〜15m/15〜30m/30m〜 (およそ)
ボールの高さの状態grounder/low/highグラウンダー/地面から頭まで/頭より上
次の展開inplayインプレー
THROW INスローイン
GOAL KICKゴールキック
CORNER KICKコーナーキック
FREE KICKフリーキック
drop ballドロップボール
PENALTYPK
KICK OFFキックオフ(ゴール後の次のプレーとして)
lost score失点
次のボール保持者my ball/opp ball自分のチーム/相手チーム
loose ballルーズボール
refereeレフェリー
イベント前ボール状態grounder/low/highグラウンダー/地面から頭までの間/頭より上
イベント前ボール保持者oneself自分自身
ally味方チームメイト
opp相手チーム
loose ballルーズボール
drop ballドロップボールで再開