スポーツプレイブック

Schematex のスポーツプレイブックエンジンを使って、アメリカンフットボール・バスケットボール・サッカーのプレー図をテキスト DSL から生成する方法を解説します。

スポーツプレイブックについて

スポーツプレイブックは、コーチが 1 つのプレー・セット・チームフォーメーションを図示したもので、選手をドット、動きをラインで表し、すべてのコーチが一目で読み取れる記法で描かれます。Schematex は、3 大チームスポーツのプレーをテキストから生成します:アメリカンフットボール(X&O プレー図)、バスケットボール(ハーフコートセット)、サッカー / アソシエーションフットボール(チームフォーメーションと動きのパターン)。各スポーツは、それぞれのコーチング標準の記法で、正確なスケールのフィールド・コート・ピッチ上に描かれます。

スポーツとフォーメーションを指定すれば、エンジンが選手を配置します。動詞(routepasscutdribblerunscreenshot)を追加すると、エンジンがそのスポーツのコーチが実際に使うラインスタイルで描画します。画像生成と異なり、出力は編集可能です。4 人目のレシーバーの追加やスクリーンの移動も 1 行の変更で済みます。

playbook·§
↘ preview
100%
Four Verticals football play. 11 offensive players, 11 defenders, 5 assignments. Four Verticals 2nd & 7 · ball on 40 deep half deep half T G C G T QB RB X H Y Z E T T E W M S C C F $ Offense Defense Route / run Block Motion Zone
UTF-8 · LF · 9 lines · 172 chars✓ parsed·8.1 ms·15.1 KB SVG

1. はじめてのプレー

すべての図は、スポーツを指定するヘッダーで始まり、次にフォーメーション(選手を配置する)、そしてアサインメントを続けます。

playbook·§
↘ preview
100%
Give & Go basketball play. 5 players, 0 opponents, 3 assignments. Give & Go 1 2 3 4 5 Offense (1–5) Defense (X) Cut Pass Dribble Screen
UTF-8 · LF · 5 lines · 75 chars✓ parsed·3.3 ms·6.8 KB SVG

pass 1 2 は選手 1 から選手 2 へのパスを描き、cut 1 rim は選手 1 をリムへ走らせます。バスケットボールではパスを破線、カットを実線で描きます。これはすべてのコーチングホワイトボードで使われる表記法です。


2. 3 つのスポーツ

ヘッダーでスポーツを選択します(sport football|basketball|soccer)。各スポーツはそれぞれの単位と標準的なコーチング視点を使用します。

スポーツ単位視点フィールド
footballヤードオフェンスが下、攻撃方向が;ダウンフィールド = 上ヤードライン・ハッシュマーク・エンドゾーン付き緑フィールド
basketballフィートNBA ハーフコート;ベースライン+フープが上ライトメープルのハードウッド
soccerメートル105 × 68 m フルピッチ(右方向へ攻撃);または view halfIFAB マーキング付き緑ピッチ

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。選手は 15 で番号付け。
  • サッカー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 で番号付け。

セットピースやフリーフォーム図では、選手を個別に配置してハーフにトリミングできます。

playbook·§
↘ preview
100%
Overlap & Cross soccer play. 11 players, 0 opponents, 6 assignments. Overlap & Cross 1 2 4 5 3 6 8 10 7 9 11 Team Keeper Opponent Pass Run Dribble Shot
UTF-8 · LF · 13 lines · 291 chars✓ parsed·2.7 ms·10.2 KB SVG

4. 動詞とラインスタイル

同じラインスタイルでもスポーツによって意味が異なります。Schematex は各スポーツ固有の表記法を描画し、凡例も常に一致します。

動詞フットボールバスケットボールサッカー
pass破線(スロー)破線実線
run / cut実線実線(カット)破線(ラン)
dribble波線波線
screen / blockT バー ⊥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。ブロッキングには blockpullhandoff を使います。goal N を設定してエンドゾーンとゴールポストを描きます。

playbook·§
↘ preview
100%
Red Zone — Play-Action Fade football play. 11 offensive players, 11 defenders, 5 assignments. Red Zone — Play-Action Fade 1st & 5 · ball on 5 10 10 deep middle T G C G T Y QB F RB X Z E T T E W M S C C $ F Offense Defense Route / run Block Motion Zone
UTF-8 · LF · 9 lines · 215 chars✓ parsed·2.9 ms·13.6 KB SVG

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 は波線です。

playbook·§
↘ preview
100%
Spread Pick & Roll basketball play. 5 players, 0 opponents, 4 assignments. Spread Pick & Roll 1 2 3 4 5 Offense (1–5) Defense (X) Cut Pass Dribble Screen
UTF-8 · LF · 6 lines · 110 chars✓ parsed·1.1 ms·8.2 KB SVG

defense man は各ディフェンダーをマンマークに割り当て;defense zone-2-3 | zone-3-2 | zone-1-3-1 でゾーンフロントを描きます。


7. サッカー:フォーメーション、ラン、ビルドアップ

フォーメーションだけでチームフォーメーションを描けます。pass(実線)、run(破線)、dribble(波線)を追加してプレーのフェーズを表現します。

playbook·§
↘ preview
100%
Build-Up From the Back soccer play. 11 players, 0 opponents, 5 assignments. Build-Up From the Back 1 2 4 5 3 6 8 10 7 9 11 Team Keeper Opponent Pass Run Dribble Shot
UTF-8 · LF · 7 lines · 119 chars✓ parsed·8.0 ms·9.4 KB SVG

ランドマークには box top-box d penalty-spot near-post far-post six-yard center が含まれます。defense low-block | mid-block | high-press で相手のフォーメーションをオーバーレイします。サッカーは昼光専用レンダリングのため、theme: dark はデフォルトピッチにフォールバックします。


8. バリデーション

エンジンはモデルが実際に犯しやすいミスを検出して、有効なオプションをリスト表示します。

  • 未知の sportformation / setdefense、または名前付きルート;
  • 未宣言の選手 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.