スポーツプレイブック
Schematex のスポーツプレイブックエンジンを使って、アメリカンフットボール・バスケットボール・サッカーのプレー図をテキスト DSL から生成する方法を解説します。
スポーツプレイブックについて
スポーツプレイブックは、コーチが 1 つのプレー・セット・チームフォーメーションを図示したもので、選手をドット、動きをラインで表し、すべてのコーチが一目で読み取れる記法で描かれます。Schematex は、3 大チームスポーツのプレーをテキストから生成します:アメリカンフットボール(X&O プレー図)、バスケットボール(ハーフコートセット)、サッカー / アソシエーションフットボール(チームフォーメーションと動きのパターン)。各スポーツは、それぞれのコーチング標準の記法で、正確なスケールのフィールド・コート・ピッチ上に描かれます。
スポーツとフォーメーションを指定すれば、エンジンが選手を配置します。動詞(route、pass、cut、dribble、run、screen、shot)を追加すると、エンジンがそのスポーツのコーチが実際に使うラインスタイルで描画します。画像生成と異なり、出力は編集可能です。4 人目のレシーバーの追加やスクリーンの移動も 1 行の変更で済みます。
1. はじめてのプレー
すべての図は、スポーツを指定するヘッダーで始まり、次にフォーメーション(選手を配置する)、そしてアサインメントを続けます。
pass 1 2 は選手 1 から選手 2 へのパスを描き、cut 1 rim は選手 1 をリムへ走らせます。バスケットボールではパスを破線、カットを実線で描きます。これはすべてのコーチングホワイトボードで使われる表記法です。
2. 3 つのスポーツ
ヘッダーでスポーツを選択します(sport football|basketball|soccer)。各スポーツはそれぞれの単位と標準的なコーチング視点を使用します。
| スポーツ | 単位 | 視点 | フィールド |
|---|---|---|---|
football | ヤード | オフェンスが下、攻撃方向が上;ダウンフィールド = 上 | ヤードライン・ハッシュマーク・エンドゾーン付き緑フィールド |
basketball | フィート | NBA ハーフコート;ベースライン+フープが上 | ライトメープルのハードウッド |
soccer | メートル | 105 × 68 m フルピッチ(右方向へ攻撃);または view half | IFAB マーキング付き緑ピッチ |
3. 選手とフォーメーション
選手を最速で配置するにはフォーメーション(フットボール / サッカー)またはセット(バスケットボール)を使用します。
- フットボール —
formation i-form | shotgun | singleback | pistol | spread | trips | empty | goal-line | wishbone、オプションでleft/rightストレングス。レシーバーはX Z H Y(Y = タイトエンド)、バックスはQB RB FB、ラインはLT LG C RG RT。 - バスケットボール —
set horns | 1-4-high | 1-4-low | box | spread-pnr | 4-out | 5-out。選手は1〜5で番号付け。 - サッカー —
formation 4-3-3 | 4-4-2 | 4-2-3-1 | 4-5-1 | 4-4-1-1 | 3-5-2 | 3-4-3。選手は1(GK)〜11で番号付け。
セットピースやフリーフォーム図では、選手を個別に配置してハーフにトリミングできます。
4. 動詞とラインスタイル
同じラインスタイルでもスポーツによって意味が異なります。Schematex は各スポーツ固有の表記法を描画し、凡例も常に一致します。
| 動詞 | フットボール | バスケットボール | サッカー |
|---|---|---|---|
pass | 破線(スロー) | 破線 | 実線 |
run / cut | 実線 | 実線(カット) | 破線(ラン) |
dribble | — | 波線 | 波線 |
screen / block | T バー ⊥ | T バー ⊥(スクリーン) | T バー ⊥ |
shot | — | 実線 | 二重線 |
反転に注意: バスケットボールではパスが破線でカットが実線;サッカーではパスが実線でランが破線。これが 2 つのコーチングコミュニティの実際の図の描き方であり、Schematex はそれぞれを尊重します。
移動先のターゲットは選手 ID、ランドマーク名、または明示的な座標(to x,y)を指定できます。
5. フットボール:ルート、ラン、ディフェンス
パスルートはルートツリーを使用します:go fly streak slant flat hitch out in dig curl comeback corner post wheel cross drag seam。ランのコンセプト:dive iso power counter sweep toss draw trap。ブロッキングには block、pull、handoff を使います。goal N を設定してエンドゾーンとゴールポストを描きます。
defense cover-0/1/2/3/4/6 でカバレッジシェルを描き;defense 4-3 | 3-4 | nickel | dime でフロントを設定します。hash nfl|college|none でハッシュマークを制御します。
6. バスケットボール:セット、ランドマーク、スクリーン
カットとパスは名前付きランドマークをターゲットにします。rim elbow wing corner short-corner block slot top high-post dunker(左右を区別するには l/r プレフィックスを付ける)。screen A B は選手 B のためのボールスクリーン(T バー)を描き;dribble は波線です。
defense man は各ディフェンダーをマンマークに割り当て;defense zone-2-3 | zone-3-2 | zone-1-3-1 でゾーンフロントを描きます。
7. サッカー:フォーメーション、ラン、ビルドアップ
フォーメーションだけでチームフォーメーションを描けます。pass(実線)、run(破線)、dribble(波線)を追加してプレーのフェーズを表現します。
ランドマークには box top-box d penalty-spot near-post far-post six-yard center が含まれます。defense low-block | mid-block | high-press で相手のフォーメーションをオーバーレイします。サッカーは昼光専用レンダリングのため、theme: dark はデフォルトピッチにフォールバックします。
8. バリデーション
エンジンはモデルが実際に犯しやすいミスを検出して、有効なオプションをリスト表示します。
- 未知の
sport、formation/set、defense、または名前付きルート; - 未宣言の選手 ID を参照する移動;
- 不正な座標や
toターゲットの欠落。
軽微な問題(例:長さゼロの移動)はエラーではなく警告としてレンダリングされます。
9. 文法(EBNF)
playbook = "playbook" string "sport" sport NL { stmt NL } ;
sport = "football" | "basketball" | "soccer" ;
stmt = field | formation | defense | player | move | zone | "view" view ;
field = "field" { "down" num | "distance" num | "los" num
| "goal" num | "hash" hash | "view" view } ;
formation = ( "formation" | "set" ) name [ "left" | "right" ] ;
defense = "defense" scheme ;
player = "player" id pos "at" coord "label" text ;
move = route | run | pass | cut | dribble | screen
| shot | motion | handoff | pull | block ;
route = "route" id namedRoute [ num ] [ "left" | "right" ] ;
run = "run" id ( concept [ "left" | "right" ] | "to" coord ) ;
pass = "pass" id ( id | landmark | "to" coord ) ;
cut = "cut" id ( landmark | "to" coord ) ;
dribble = "dribble" id "to" coord ;
screen = "screen" id id ;
shot = "shot" id [ "to" coord ] ;
zone = "zone" coord coord string ;
coord = num "," num ;
view = "full" | "half" ;
hash = "nfl" | "college" | "none" ;関連サンプル
各スポーツごとに 5 つの標準的なプレーがサンプルとして用意されています。フットボール:Four Verticals、Mesh、Smash、Power O、レッドゾーンフェード;バスケットボール:Pick & Roll、Horns、Give & Go、Floppy、バックドアカット;サッカー:4-3-3 フォーメーション、Build-Up、オーバーラップ、ハイプレス、カウンターアタック。
Found this useful?
Schematex is free, fully open source, and zero-dependency. A star helps other developers discover it.