myRoupeiro 〜 サッカーの試合のログを取ってデータ分析するアプリ 〜 の使いかた
myRoupeiroって何ですの?
「myRoupeiro」はサッカーの試合記録をとってプレーを分析するための無料アプリです。
- 試合のビデオを観ながら、誰がいつどこでどのようにボールに関与したのかをポチポチと記録して、データ分析結果を可視化するツールです
- 試合におけるシュートやパスなど、さまざまなイベントデータを記録し可視化することができます
- 可視化した分析結果は対話的に確認することができます
- 分析結果はhtmlファイルに保存されるので、他のデバイスで確認したり、チームで共有したりできます
- 入力したデータはcsvファイルとxmlファイルに保存されるので、別途自分で好きなように加工して使うこともできます
- データは詳細に記録することも、気になるものだけざっくり記録することもできます
- ハーフサイズのコートにも対応しているので少年サッカーの分析にも使えます
- 完全無料です
もともとは本サイトの運営者が、自分たちのサッカーチームの試合記録・分析用に良かれと思って作成したプログラムです。これを誰でも使用できるようにアプリ化したものがmyRoupeiroです(androidのみ)。
Roupeiro(ポルトガル語、「ホペイロ」と読みます)は、サッカーチームの用具係という意味で、チームを支える大事な裏方のことです。
これにちなんで、チームを支えるための役立つツールになればいいなと思い、myRoupeiroという名称にしました。
myRoupeiroで分析した結果を、日々の練習や次の試合に活かしていただければうれしいです。
こんな感じです
試合中のイベントを可視化してみる
- シュート
- ゴール
- パス
- フリーキック etc.
チームデータを眺めてみる
- 試合スタッツ
- チームのイベントデータ
- パスマトリックス
個人データを分析してみる
- 個人のイベントデータ
- パス方向、距離、成否割合
- ヒートマップ
- イベントマップ
試合中のイベントを時系列で追ってみる
データ入力画面
試合中のさまざまなイベントをぽちぽち記録していきます
注意事項
- ビデオプレーヤーは付いていません
- あくまでビデオカメラで追って撮影できた範囲で、ボールの近くでプレーした選手に注目して記録と分析をするためのアプリです。
ですので、ボールそのものの動きや、選手たちのオフザボールでの動きや試合を通してのトラッキングデータを分析したい、といった用途には対応していません - 日本語入力・表示(試合情報とチーム情報)にも対応しています。
使い方
<データ記録編>
誰がいつどこでどのようにボールに関与したのか(ここでは「イベント」と呼ぶことにします)を記録していきます。
アプリの起動と終了
起動 | 通常のアプリの起動と同じように、アイコンをタップすれば起動します |
終了 | 通常のアプリの終了と同じように、Androidのタスクボタン(□)をタップしてマルチタスク画面を表示し、起動中のmyRoupeiroをスワイプして終了します |
メモ:myRoupeiroにオートセーブ機能は付いていません。こまめにデータを保存することをお勧めします。
画面の説明
メイン画面
アプリを起動するとメイン画面が表示されます。ここでイベントの入力等を行います。
メニューバー
Title | 解析するデータのタイトルを入力します |
team settings | チーム情報の入力画面に移動します |
import files | 既にあるデータファイルをimportします |
get ext-files | 別の端末等で作成したmyRoupeiroのデータファイルを、現在使用中の端末で使えるように取り込みます |
hide ads | 短い動画広告の視聴を完了することで、一定時間すべての広告を非表示にすることができます |
manual | マニュアルページ(外部ページ = このページ)へ移動します |
license | ライセンスを確認します |
privacy policy | プライバシーポリシーのページ(外部ページ=当ブログの別ページ)へ移動します |
メモ;画面の幅が狭い時はメニューが ≡ に隠れている場合があります
ビデオ時間入力・前半/後半選択・Kickoff時間入力
Video Time | ・記録したいイベントが起こったビデオの表示時間(時間、分、秒)を入力します ・上向きの矢印を押すと1ずつ進みます。下向きの矢印を押すと1ずつ戻ります |
1st period / 2nd period | 前半、後半を選択します(選択しなければ前半であるとみなされます) |
Kickoff | キックオフの年(西暦下2桁)、月、日、時刻(時間:分)を入力します |
メモ;myRoupeiroではビデオ映像を観ながら記録することを想定しているので、”ビデオ時間”を入力するようにしています。
Player/Area
① | 自チーム名/相手チーム名を表示しています *設定はmy team settings/opp team settings画面で行います |
② | 自チーム/相手チームの得点を入力します *最終結果で構いません |
③ | 自チーム/相手チームの選手リストを表示しています *設定はmy team settings/opp team settings画面で行います *イベントに関与した選手をここから選択します *「dest」はボールの受け手がいなかった時のボールの行き先を記録するときに使用します |
④ | 選手がピッチのどこでイベントに関与したかを指定する領域です |
clear dots | 選手の選択を解除し、イベントに関与した場所に描画したポイントを消去します |
change ends | 両チームのエンド(陣地)を入れ替えます |
pitch size | コートサイズ *ドロップダウンリストからノーマルサイズまたはハーフサイズを選択します *非選択の場合はノーマルサイズとみなされます *上図では既に”Normal”が選択されている状態です |
Before event
イベント前のボールの状態です
ball holder; 誰がボールを持っていたか
oneself | 自分自身 |
ally | my teamの選手 |
opp | opp teamの選手 |
loose ball | ルーズボール/ボール保持者なし |
drop ball | ドロップボール |
None | 非該当 |
ball state; ボールの高さの状態
grounder | グラウンダー |
low | ピッチから頭までの浮き球 |
high | 頭より上の浮き球 |
Event
イベント選択タブ;イベントのタイプを選択するためのタブ
PASS | パスに関連するイベント |
SHOT | シュートに関連するイベント |
RECOVERY | ボール回収やクリアに関連するイベント |
FAULT RECEIVED | ファールを受けた場合 |
SET PIECE | セットプレー、スローイン、キックオフなど |
BALL OUT | アウトオブプレーになったプレー |
CARD | カード |
CHALLENGE | プレスやタックル、デュエルなどチャレンジングなプレー |
CARRY | ボールを運ぶドリブルや、トラップとボールキープ |
イベント内容選択ボタン;イベントの内容を選択するボタン群
attempt | イベントのタイプの小分類 |
result1 | 成功と失敗(良い失敗/悪い失敗) |
result2 | 結果の内容(該当するものがあれば選択します) |
pressure state | イベント時のプレッシャー状態 |
body parts | プレーに関わった体の部位 |
Direct/Indirect | ダイレクトプレーか否か |
ball state after | イベント後のボールの高さの状態 |
next play | イベント後の次の展開 |
next holder | イベント後の次のボール保持者 |
その他のボタン/領域
add eventボタン | イベントをデータテーブルに追加します |
︿ ボタン | 選手の選択/イベント発生場所の指定をクリアして画面上部に移動します |
通知エリア | メッセージ表示領域 |
stretch list | データテーブルを広げて表示します |
delete selected row | 選択したデータ行を削除します |
Analyze! | 分析を実行します |
データテーブル | 追加したイベントを表示する領域 |
メモ; データテーブルのデータ行を長押しするとポップアップでそのデータを確認することができます。
my team 設定画面
自チームのチーム名、選手の背番号、選手名、ポジションの設定画面です
メニューバー
opp team settings | 対戦相手チーム情報の入力画面(opp team設定画面)に移動します |
選手情報入力領域
24名まで設定できます。
# | 背番号 |
name | 選手名 |
posi | ポジション(ドロップダウンからポジションを選択します) |
選手表示領域
選手表示領域 | スターティングメンバー/控えメンバーを表示するエリアです |
メモ
・選手アイコンをダブルタップすると選手情報入力領域に入力カーソルが移ります
・選手のポジションとフォーメーションの情報は分析に使用しません
opp team 設定画面
メニューバー
back to main | メイン画面に移動します |
その他はmy team設定画面と同様です
イベントの記録の方法
イベントをぽちぽちと選択し記録していきます。
*選択状態のボタンを再度タップすると選択が解除されます
1 | タイトル、キックオフ時間、得点、ピッチサイズを入力します |
2 | my team/opp team 設定画面でチーム名と選手情報を入力して、メイン画面に戻ります |
3 | 試合のビデオを観ながら、イベントが発生した時間をVideo Timeに入力します |
4 | 前半/後半を選択します |
5 | イベントに関与した選手を選択し、イベントに関与した場所をタップします パス等でボールの受け手がいる場合は、さらに受け手の選手を選択し、ボールを受けた場所をタップします(パスが失敗した等のためにボールの受け手がいない場合は選手の代わりにdestを選択し、ボールの行き先となった場所をタップします) *ボールの出し手の入力が常に先になり、受け手の入力が後になります。 *clear dotsで選手の選択とイベントに関与した場所の指定をリセットできます |
6 | Before eventからイベント前のボールホルダーとボールの高さの状態を選択します |
7 | イベント選択タブからイベントのタイプを選択します |
8 | attemptからnext holderまでのそれぞれのイベント内容を選択します *該当するものがなければそのままにしておきます |
9 | add eventボタンを押してイベントデータをデータテーブルに追加します |
10 | 3から9を繰り返します *結果は順不同で選択できます |
メモ;
イベントが重なった場合、例えば相手ボールのインターセプトがそのままパスになった場合、「リカバリー/インターセプト」と「パス」の2つのイベントに分けて入力すると良いです。
イベントデータの修正
1 | データテーブルにおいて修正したいイベントデータ行をダブルタップすると、その行のイベントデータを編集できるようになります add eventボタンがfinish editボタンに変わります |
2 | イベントデータの編集が終わったら、finish editボタンを押して編集を終了します |
メモ; イベントデータの行をロングタップすると、ポップアップでその行の内容を確認することができます。ポップアップを消す場合は画面のどこかをタップします。
イベントの削除
1 | データテーブルにおいてイベントデータを削除したい行をタップして選択状態にします |
2 | delete 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 画面に移動します。
Match Results 画面
この画面を起点に、それぞれの分析結果を表示することができます
メモ:
・分析結果はhtmlファイルに保存されるので(データは「ダウンロード」フォルダに保存されます。)、他のデバイスのブラウザ上で確認したり、チームで共有したりできます
Event Data | イベントデータ分析結果 |
Team Data | チームデータ分析結果 |
Individual Data | 選手の個人データ分析結果 |
Time Series of Events | イベントが発生した場所の時系列表示 |
<Event Data>
データ名 | 説明 |
Shots | シュート |
Goals | ゴールに直結したイベント |
Corners | コーナーキックとその次のイベント |
Freekicks | フリーキックとその次のイベント |
Challenges | プレス(緩いものも含む)、デュエル、タックル、 チャレンジングなドリブル |
Recoveries | パスのインターセプト、ボール回収など |
Turnovers | パスをインターセプトされて攻守が切り替わった、などの攻守の切り替わり |
Shot Assists | シュートをアシストしたイベント |
Assists | ゴールをアシストしたイベント |
Passes | 成功したパスの出し手と受け手の位置。矢印はボー ルの移動方向 |
Passers | 成功したパスの出し手 |
Receivers | 成功したパスの受け手 |
ポップアップについて
マーカーをマウスオーバーするとポップアップで詳細を確認することができます。
例;Shots
行 | ポップアップの表示 | 説明 |
1 | (-23.32, -2.04) | センターマークを原点(0, 0)としたx座標とy座標 (原点からのおおよそのx軸距離とy軸距離(メートル)) |
2 | Time 52ʼ25” | ビデオでの表示時間(試合の経過時間とは一致していません) |
3 | sane (no.10 Byern) | プレーヤー名(背番号 チーム名) |
4 | oneself | イベントの前のボールの保持者 |
5 | grounder | イベントの前のボールの高さ |
6 | SHOT | イベントのタイプ |
7 | Success | イベントの成否(result1) |
8 | GOAL | イベントの結果 (result2) |
9 | loose press | イベント時に受けているプレッシャー状態(その他の例;自分_on_相手) |
10 | foot L | プレーした部位 |
11 | INDIRECT | ダイレクトプレーかどうか |
12 | ON TARGET | 枠に飛んだかどうか |
13 | long | イベント後のボールの飛距離。longは30m程度上 |
14 | high | イベント後のボールの高さ(high; 頭より上) |
15 | KICK OFF | イベント後の次のプレー(ゴールだったので、次はキックオフ) |
<Team Data>
Stats tableについて
項目 | 説明 |
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について
ボールに関わった全イベントをまとめています。
- 前半と後半に分けて表示しています。
- そこに、イベントの種類ごとに分類された結果が入れ子になっています。
- さらに、それぞれのイベントの中に個人ごとの結果が入れ子になっています。
- 面積が大きいものほどイベントのカウント数が多いことになります。
- 入れ子になっている部分をタップすることで内訳を見ることができます
- その他の主な内訳
- 成功/良い失敗/悪い失敗
- プレッシャー状態(フリー/緩いプレス/1対1/1対多/多対1)
- プレー部位
- ダイレクトプレー/ダイレクトプレーでない
- プレー方向
- ボール飛距離(ボールを蹴った場合)etc.
*選択したときに出てくる数字はイベントがカウントされた回数
*Noneは無視します
- その他の主な内訳
Pass Matrixについて
成功したパスの出し手と受け手を示すマトリックス表です
*縦軸; 出し手 / 横軸; 受け手
*パスの数が多いほど赤色が濃くなります
<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 | アドバンテージが適用された |
PENALTY | PKを得た |
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 | アドバンテージ適用 |
PENALTY | PKを与える |
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_1 | 1対1またはそれに近い状態 | |
1_on_many | 1対多またはそれに近い状態 | |
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 | ドロップボール | |
PENALTY | PK | |
KICK OFF | キックオフ(ゴール後の次のプレーとして) | |
lost score | 失点 | |
次のボール保持者 | my ball/opp ball | 自分のチーム/相手チーム |
loose ball | ルーズボール | |
referee | レフェリー | |
イベント前ボール状態 | grounder/low/high | グラウンダー/地面から頭までの間/頭より上 |
イベント前ボール保持者 | oneself | 自分自身 |
ally | 味方チームメイト | |
opp | 相手チーム | |
loose ball | ルーズボール | |
drop ball | ドロップボールで再開 |