ステータス: 実装中(最小構成)· 市場調査・U1–U9 確定済
更新: 2026-07-04
正本方針: PRODUCT_NOTE.md
調査入力: Gemini / Claude / ChatGPT による日・欧・アルゼンチン市場調査(2026-07-04)
OSS: OSS_SURVEY.md — フォーク可能な本命リポなし(自前実装継続)
実装: 本 SPEC の提督承認後に着手。承認前の本実装・本番デプロイは禁止。
PRODUCT_NOTE と矛盾する場合は本ファイルで「変更提案」と明示する。勝手に方針を覆さない。
分析ソフトではなく、配信・講習・戦術教育のための「キャンバス最大化 Web 戦術ボード」。登録不要・ローカル完結・ユーザー自身のブランドで発信できることを核価値とする。
日本語圏の主競合 TACTICALista には全画面表示がある(019=通常、020=全画面)。
「全画面が無いから勝てる」は 誤り。差は次のとおり。
| TACTICALista 全画面(020) | ZoneBoard 配信モード | |
|---|---|---|
| ピッチ面積 | 大きい(目視で大半) | 契約として ≥80%(計測・受け入れ条件) |
| ツールバー | 残る(左ツール列+右上ユーティリティ) | 消す(解除・極小インジケータのみ) |
| ピッチ上ロゴ | 運営ロゴ強制(TACTICALista) | ユーザーロゴ(運営ロゴなし) |
| アカウント | Google/クラウド前提 | 登録不要・ローカル |
| 目的語 | 編集の最大化 | OBS/画面共有の見た目(配信・講習) |
楔の言い方を更新する:
- ❌「全画面がない市場」
- ✅「配信用に chrome を消せるボード」+「自分のロゴ」+「登録不要」
日本語圏は専用 Web ボードが少なく、実質 TACTICALista 一強+ Google スライド。競合が少ないのは事実だが、一強が全画面まで持っているので「空白市場」ではない。差は全画面の有無ではなく、配信契約(chrome ゼロ級)とブランディング主権。
| 競合 | ZoneBoard との差 |
|---|---|
| TACTICALista(日本一強) | 全画面はあるが ツールバー残存・運営ロゴ・クラウド前提。配信契約なし |
| AthletePath / renderfoot / tactical-board.com | 登録不要・無料だが配信最適化・ユーザロゴなし・戦術記号が薄い |
| TacticalPad / Hudl / Coach Paint | 多機能・高価・分析寄り。個人の配信机ではない |
「chrome を消した配信モード」と「ユーザーロゴ透かし」をセットで売るツールは調査範囲で 未確認 → 楔。全画面単体では楔にならない。
| 項目 | Gemini | Claude | ChatGPT | ZoneBoard 裁定 |
|---|---|---|---|---|
| 配信モード ≥80% | Must | Must | Must | Must(v1) |
| ユーザーロゴ透かし | Must | Must | Must | Must(v1) |
| 登録不要・ローカル保存 | Must | Must | Must(個人) | Must(v1) |
| PNG Export | Must | Must | Must | Must(v1) |
| 5レーン ON/OFF | Must | Later | Must | Must(v1)·既定 ON(デファクト。OFF 可) |
| 3大線種(実線/破線/波線) | Must | Should | パス・ラン必須 | Must(v1) 実線=パス、破線=ラン、波線=ドリブル |
| 駒の向き | — | — | ◎ | Must(v1) サンプル UseCase でも必須 |
| home+away 両チーム | — | — | — | Must(v1) 解説ユースで両軍必須(旧 U3 を覆す) |
| ハーフピッチ | 標準 | Should | 必須 | Must(サッカー v1) |
| バスケ・バレー | Should 早期 | Later | Should | Must(v1) PRODUCT_NOTE 維持。レーンはサッカーのみ |
| 視野角(扇形) | Should | — | ○ | 出さない(概念は認識。PRODUCT_NOTE.md 決定ログ 2026-08-25) |
| アニメ / GIF | Later | Should(v1.1) | Later | Later(v1.1) 配信は手で駒を動かす運用が主流 |
| クラウド同期 | Should | Should | Later | Later |
| 動画解析・Webcam・運営ロゴ | Avoid | Avoid | Avoid | Avoid |
| es UI | — | — | Should | Later(v1.1) v1 は ja/en |
収益メモ(v1 では未実装): Pro = Local Library Entitlement(選手セット・画角テンプレ・上限緩和)+ BYO Portability。Board JSON Export は無料楔(Storage full Recovery の Primary)。マルチデバイスは BYO(ユーザの Online Storage を指す)。ZB 預かりクラウド/ User Account ログインは本線にしない(Purchase Identity = Checkout email + Restore)。価格は年額 or 一回買いを本線仮説。詳細は PRODUCT_NOTE.md §6 · STRIPE_PRO_ARCHITECTURE.md。無料でコア体験(描画・Broadcast・ロゴ・PNG)。
- カラムは先に固定:
number(必須)·label·preferredFoot· セットのdefaultColor - 中身の作成はユーザ任せ(貼り付け・手入力・ボードから保存)
- 公式データのライブ取込・スクレイピングはしない。参考用の空テンプレ(番号枠だけ)は可
- Later: 同じスキーマでセットをやり取りするコミュニティ流通(運営 DB ではなくユーザ作成データの共有)。流通場所は自ドメイン外。FAQ+既存 SNS への軽い種まき。Reddit は EN 向けのみ(JP 主戦場にしない)
- 詳細は
PRODUCT_NOTE.md収益節
競技コート俯瞰の戦術ボード Web アプリ。解説・配信・部活・講習で ピッチを大きく見せたまま 駒・矢印・ゾーンを編集できる。
| ID | ゴール |
|---|---|
| G1 | 配信モードでキャンバス(コート+駒+描画)がビューポート面積の ≥80% |
| G2 | ユーザーロゴ透かし(運営ロゴ強制なし)。配信モードでも常時表示 |
| G3 | 競技プリセット: サッカー / バスケ / バレーのみ(SPORTS_SCOPE.md) |
| G4 | 駒(両チーム・向き)・世界基準3線種・ゾーン・タイトル帯・ローカル保存・PNG Export |
| G5 | 登録不要。データはブラウザ localStorage。ボードは 最大3枚(競合横並び) |
| G6 | i18n 基盤: /ja /en(UI 文言のみ。キャンバスは言語非依存) |
使いこなしたい人が最小学習コストでいける。 ホットキー・自由曲線・局面・ズームは任意。使わない人は駒の移動だけで足りる、と割り切る。chrome・設定・パネルの型は UI_UX.md(クリエイターツール型。パネル=試合、設定=自分)。
§12 と同一。要約: 選手 DB、予想スタメン専用機能、動画解析、クラウド同期、アニメ/GIF、ボード内 Webcam、運営ウォーターマーク、国別 DNS、SUGUDASU ブランド、es UI。
調査で補強したペルソナ。v1 の第一ターゲットは P1 / P1b。P2・P3 も同一ボードで満たす。
| 項目 | 内容 |
|---|---|
| 痛み | スライドでコート比が崩れる。既存ボードはツールバーが厚く配信でピッチが小さい。運営ロゴでオリジナル感が出ない |
| 成功 | OBS / Zoom / Meet で画面共有。配信モードでピッチ最大化+自分のロゴ。両チーム配置で試合レビュー |
シナリオ S1(配信画面共有)
zoneboard.app/jaを開く(登録なし)- サッカー・フルピッチ。5レーンは既定 ON
- home/away 配置・向き・背番号・名前。パス/ラン/ドリブル線
- ロゴ PNG を設定
- 配信モード ON → ツールバー消失、ピッチ ≥80%
- OBS キャプチャ。ホットキーで UNDO / ツール切替 / 駒移動
- PNG Export(透かし焼き込み ON)→ SNS・サムネ
| 項目 | 内容 |
|---|---|
| 痛み | 俯瞰ボードを画面の主役にしたいが、既存ツールは chrome が厚い/運営ロゴが残る。アバターやスコアは別レイヤで重ねたい |
| 成功 | ZoneBoard を全画面キャプチャ。OBS でアバター・スコア帯・チャットを合成。駒は番号+名前、チーム色、ロゴでチャンネル色を出す |
シナリオ S1b(同時視聴)
- 試合前に名簿(番号+分かる範囲の名前)を取り込み、スタメン配置
- チーム色を両軍で設定。ユーザロゴをセンター付近に
- 配信モード ON。OBS でブラウザソース/ウィンドウキャプチャ
- アバター・スコア・テロップは OBS 側(ボードに埋め込まない)
- 試合中は駒移動・ボール吸着・局面/ズームで解説
- ハイライトは縦プリセットで PNG → X / IG
境界(やらない): アバター表示、スコア/タイマー UI、スパチャ、アンケート、同時視聴用の映像プレイヤー。
| 項目 | 内容 |
|---|---|
| 痛み | ホワイトボードか紙。共有は写真。月額 SaaS は個人財布に重い(特に南米) |
| 成功 | 登録なしで即描画。PNG を LINE / チャット / 印刷 |
シナリオ S2(ホワイトボード代替) — バスケでも可。フォーメ → 矢印・ゾーン → Export。
| 項目 | 内容 |
|---|---|
| 痛み | PowerPoint はコート専用挙動がない。TacticalPad は重い |
| 成功 | ハーフピッチ+5レーン+記号体系で教本用 PNG |
| 画面 ID | 名前 | 説明 |
|---|---|---|
| SCR-EDIT | 編集モード | 既定。キャンバス+右 Notion 風ドロワー |
| SCR-BROADCAST | 配信モード | ドロワー強制クローズ。最小 UI のみ。ピッチ最大化 |
| SCR-SETTINGS | 設定オーバーレイ | Esc またはボタンで開閉。保存・Export・透かし・競技・オーバーレイ・言語 |
| SCR-LP | ランディング(薄い) | /ja /en の入口。短い LP+「ボードを開く」 |
┌──────────────────────────────────────────────┬────────────┐
│ [配信] [設定] […] タイトル帯(編集可) │ │
├──────────────────────────────────────────────┤ 右ドロワー │
│ │ (Notion風)│
│ キャンバス(コート) │ ツール │
│ │ プロパティ │
│ │ オブジェクト│
└──────────────────────────────────────────────┴────────────┘
- ツール/プロパティは 右ドロワー(Notion 風)。開閉可能。閉じるとキャンバスが全幅
- ドロワー幅の目安: 280–320px(固定)。オーバーレイではなくメインを押し縮める(push)でも、キャンバス上に被せる(overlay)でも可。実装は push 推奨(キャンバス座標が安定)
- 右端に細い開閉ハンドル(またはヘッダのパネルアイコン)
- 編集モード・ドロワー開時でもキャンバス面積は目安 ≥55%。ドロワー閉時は ≥80% に近づく
- 配信モードではドロワーを強制クローズ(ツール UI を残さない)
| セクション | 内容 |
|---|---|
| 競技 | サッカー / バスケ / バレー(切替時確認: 駒配置リセット) |
| ピッチ(サッカー) | フル / ハーフ、5レーン ON/OFF |
| 透かし | 画像・位置・サイズ・不透明度・表示 ON/OFF |
| Export | PNG(透かし焼き込み ON/OFF) |
| データ | ボードリセット / 全クリア |
| 言語 | ja / en |
| バージョン | アプリバージョン |
黒帯・16:9 フレーム・緑(芝/余白)・リサイズ時の画角の 現行仕様は BROADCAST_LAYOUT.md。
| 指標 | 契約 |
|---|---|
| キャンバス可視領域 | ビューポートの ≥80% |
| 測定対象 | コート+駒・描画・タイトル帯・透かしを含む「ボード面」 |
| 除外 | 最小 UI(§4-2)は面積計算から除外可(合計 ≤20%) |
| 余白 | 装飾余白禁止(0〜8px) |
検証: 1280×720 および 1920×1080 で面積比 ≥0.80。
| UI | 必須 | 備考 |
|---|---|---|
| 現在ツールの小さなインジケータ | 推奨 | アイコンのみ・端・半透明 |
| UNDO | 任意 | Ctrl+Z があればボタン不要 |
| 配信モード解除 | 必須 | 端に小さく。Esc でも解除 |
| ユーザーロゴ透かし | 必須 | ツールバー非表示でも残す |
| タイトル帯 | 任意 | 表示維持。編集は配信モード外推奨 |
| キー | 動作 |
|---|---|
B |
配信モード トグル |
Esc |
オーバーレイ閉じる / 配信モード解除(オーバーレイ優先) |
V |
選択 |
1 |
パス線(実線矢印) |
2 |
ラン線(破線矢印) |
3 |
ドリブル線(波線) |
Z |
ゾーン(矩形) |
P |
フリーハンド |
T |
テキスト |
R |
選択駒の向きを 45° 回転(選択中のみ) |
Ctrl+Z / Cmd+Z |
UNDO |
Ctrl+Shift+Z / Cmd+Shift+Z |
REDO |
Delete / Backspace |
選択削除 |
Ctrl+S / Cmd+S |
localStorage 即時 flush(preventDefault) |
<input> / <textarea> フォーカス中は文字キー無効。
| 項目 | 仕様 |
|---|---|
| 入力 | image/png, image/jpeg, image/webp。透過 PNG 推奨 |
| 送信 | サーバーへ送らない |
| 表示 | キャンバス最前面。pointer-events: none |
| 位置 | ピッチ上の自由座標 (x,y) 0–1(既定センター 0.5,0.5)。ドラッグで移動。四隅ショートカット可 |
| サイズ | ボード短辺比 5–25%(既定 12%) |
| 不透明度 | 10–100%(既定 40%) |
| 配信モード | 設定 ON なら常時表示 |
| PNG 焼き込み | Export 時 ON/OFF(既定 ON) |
| 永続化 | zoneboard:v1:watermark。data URL ≤ 500KB |
| やらない | 運営強制ウォーターマーク |
単位: コート外接矩形の論理座標。幅 W・高さ H(横長既定)。縦ボード(Later · B-072) は VERTICAL_PITCH.md — 比入替、横局面との座標切替なし。
| 競技 ID | 表示名 (ja/en) | 公式寸法(参考) | 論理比 W:H |
|---|---|---|---|
soccer |
サッカー / Soccer | 105m × 68m(FIFA推奨・Jリーグ解説) | 105:68 |
basketball |
バスケ / Basketball | 28m × 15m(FIBA) | 28:15 |
volleyball |
バレー / Volleyball | 18m × 9m(FIVB) | 18:9 |
| 項目 | 仕様 |
|---|---|
| ピッチビュー | full(全面)/ half(攻撃側ハーフ。反転トグルあり) |
| 5レーン | タッチライン方向を5等分(LW / 左HS / 中央 / 右HS / RW)。ハーフスペース帯を薄く着色。ON/OFF(既定 ON)。OFF で配信ノイズ除去可 |
| ピッチ寸法(正確) | ペナ16.5m・ゴールエリア5.5m・PK点11m・センター円半径9.15m・コーナー弧1m(Jリーグ/FIFA)。実装定数: src/presets/soccerPitch.ts |
| 駒サイズ | pieceScale 0.5–1.6。プリセット: 戦術(大) / 標準 / 精密(小)。Match Piece Size=ユーザ意図。 ズーム密度補正は乗算のみで値を書き換えない(PRODUCT_NOTE 決定ログ 2026-08-25) |
| 駒の向き | ドラッグ移動方向に追従。ドラッグ中は拡大+影(配信フィール) |
| サブ | ピッチ外帯。大会カテゴリ別最大控え: 小9 / 中7 / 高7 / 大9 / 社会人12 |
| ロゴ | 自由配置。サイズ最大55%(短辺比)。レイヤ: 5レーン→ロゴ→ピッチ線→描画→駒→ボール。白背景PNGは白を透過扱い |
| 局面(Scene) | 配置の差し替え。最大8。[ ] で切替。UNIQUE は scene.id |
| 画角(Viewport) | 同じ配置のままズーム。ホイール/プリセット(CK・スローイン・ペナ)。駒は消さない。寄せたとき駒の画面サイズはフル画角相当を維持(密度優先・上記と整合) |
| ハーフ非表示 | レガシー。左右の空間カット。セットプレーは画角ズーム推奨。使い所は制作会社次第(PRODUCT_NOTE 決定ログ 2026-08-25) |
| チーム表示 | teamFocus: both / home / away。試合前・試合後の準備。Scenes。駒は消さず描画フィルタ。実況 chrome 本線にしない |
| 名簿・スタメン | 背番号が本体、名前は任意(地方大会・州選手権など名前不明を想定)。発表後にスタメン番号だけで一括配置 |
| 利き足 | 任意。L/R/B を駒に小さく表示(解説・VTuber)。未設定は非表示。名簿は 10,久保,R 形式可 |
| ボール | 競技別グラフィック(サカ/バス/バレ)。選択・ドラッグ時は駒と同様に拡大アニメ |
| thirds | v1.1(横3分割ガイド) |
| 競技 | 描く線・領域 |
|---|---|
| soccer | 外枠、ハーフウェイ、センターサークル、ペナルティエリア、ゴールエリア、ペナルティスポット、コーナーアーク(簡易可) |
| basketball | 外枠、ハーフ、スリーポイント(FIBA 簡易)、フリースローレーン、センターサークル |
| volleyball | 外枠、センターライン、アタックライン(両側) |
色(決定 U6): v1 は全競技とも コート面白一色・線は黒(または濃灰)。TACTICALista 全画面に近い高コントラスト。競技ごとの緑/橙/青やユーザー独自色は v1.1 以降。
寸法比は公式標準の実装用固定値。大会固有ピッチは対象外。
指導者教本でデファクトとされる3線種。ドラッグ自由曲線(制御点なし。ダイアゴナルラン・スクリーンの弧など):
lineKind |
見た目 | 意味 |
|---|---|---|
pass |
実線矢印(自由曲線可) | ボール移動(パス) |
run |
破線矢印(自由曲線可) | 選手の移動(ランニング) |
dribble |
実線矢印(自由曲線可) | ドリブル軌道(ユーザが弧を描く) |
UI ラベル(i18n): ja「パス / ラン / ドリブル」、en「Pass / Run / Dribble」。Illustrator 型の制御点は使わない。
| 属性 | 仕様 |
|---|---|
| team | home / away(両チーム配置可) |
| number | 背番号文字列 |
| label | 名前(長文は省略表示可。フルはツールチップ or 編集パネル) |
| color | チーム既定色を上書き可 |
| facing | 向き(度: 0=右、反時計)。駒縁の小さな三角矢印で表示。体の向き=視線の代理。扇は出さない(PRODUCT_NOTE 決定ログ) |
type SportId = "soccer" | "basketball" | "volleyball";
type LineKind = "pass" | "run" | "dribble";
type PitchView = "full" | "half";
interface BoardDocument {
schemaVersion: 1;
id: string; // uuid
sport: SportId;
title: string;
pitchView: PitchView; // soccer 以外は常に "full"
pitchFlipped: boolean; // half 時の左右反転
showLanes5: boolean; // soccer のみ。新規ボード既定 true
pieces: Piece[];
objects: DrawObject[];
updatedAt: string; // ISO-8601
}
/** localStorage 上のボード一覧。最大 MAX_BOARDS = 3 */
interface BoardStore {
boards: BoardDocument[]; // length 0–3
activeBoardId: string | null;
}
interface Piece {
id: string;
x: number; // 正規化 0–1(左上原点)
y: number;
number: string;
label: string;
color: string;
team: "home" | "away";
facing: number; // degrees 0–360
}
type DrawObject =
| LineObject
| ZoneObject
| PenObject
| TextObject;
interface LineObject {
id: string;
type: "line";
kind: LineKind; // pass | run | dribble
x1: number; y1: number; x2: number; y2: number;
color: string;
strokeWidth: number;
}
interface ZoneObject {
id: string;
type: "zone";
x: number; y: number; w: number; h: number;
color: string;
strokeColor: string;
}
interface PenObject {
id: string;
type: "pen";
points: { x: number; y: number }[];
color: string;
strokeWidth: number;
}
interface TextObject {
id: string;
type: "text";
x: number; y: number;
text: string;
color: string;
fontSize: number;
}
interface WatermarkSettings {
enabled: boolean;
imageDataUrl: string | null;
position: "top-left" | "top-right" | "bottom-left" | "bottom-right";
sizePercent: number;
opacity: number;
}| キー | 値 |
|---|---|
zoneboard:v1:store |
BoardStore JSON(最大3ボード) |
zoneboard:v1:watermark |
WatermarkSettings |
zoneboard:v1:prefs |
{ locale?: "ja"|"en", lastSport?: SportId } |
| 項目 | 仕様 |
|---|---|
| 上限 | 3枚(TACTICALista Starter 等と同規模) |
| 新規作成 | boards.length < 3 のときのみ。3枚時はボタン無効+「上限に達しています」 |
| 削除 | 可。最後の1枚を消した場合は空の既定ボードを1枚自動生成 |
| 切替 | ヘッダまたは右ドロワーにボード一覧(タイトル・競技)。クリックで activeBoardId 切替 |
| 月次リセット | しない(枚数上限のみ。月あたり作成数制限は設けない) |
- デバウンス 300ms +
Ctrl+S即時(アクティブボードを store に反映) - 破損時は空の既定ボード1枚へフォールバック
QuotaExceededError時は透かし画像を落として再試行
| 競技 | プリセット |
|---|---|
| soccer | home: 4-4-2, 4-3-3, 3-5-2 / away: 同型のミラー配置(対戦セットとして一括配置可) |
| basketball | home 5人 / away 5人 |
| volleyball | home 6人 / away 6人(簡易) |
色既定: home #e74c3c、away #3498db。
正本の考え方: SOCIAL_OUTPUT.md
| 項目 | 仕様 |
|---|---|
| 形式 | image/png(UI なし) |
| プリセット | 正方形 1080 / 16:9 1920×1080 / 4:5 / 9:16 Story / ピッチ比ネイティブ |
| レターボックス | ピッチは歪めない。余白 #f4f4f4 |
| 透かし | 焼き込み ON/OFF |
| キャプション | 試合名 · 局面名を下部バーに焼く(任意・単体投稿用) |
| 画角 | いまのズーム / 全体 / ファイナルサード(左・右) |
| ファイル名 | zoneboard-{sport}-{preset}-{yyyyMMdd-HHmm}.png |
映えの原則: 配信は横・投稿は縦(別ステージ)。高コントラスト・ロゴ帰属・文脈テキスト・セットプレーはズームのまま縦プリセットで書き出し。API 直投稿はしない。
正本の市場判断: LOCALE_MARKETS.md。
| 項目 | 仕様 |
|---|---|
| ドメイン | zoneboard.app のみ |
| 公開デフォルト | 英語。/ と静的ドキュメントは EN。Accept-Language で JA に振らない |
| あとで足すパス | /ja/ /es/ /pt/ /fr/ など 面を分ける。同一 URL に複数言語を積まない |
| 対象 | メニュー、設定、線種ラベル、エラー、LP、How-to、法務 |
| 対象外 | コート、背番号・ユーザー入力、ホットキー文字 |
| 次の UI | 流入を見て es → pt-BR。その次の候補は fr。独・伊はデータ次第 |
| 5大リーグ | キット・フォーメ(中身)。chrome の5言語化ではない |
ブランド名 ZoneBoard は言語共通。SUGUDASU は出さない。
| 層 | 選択 |
|---|---|
| ビルド | Vite |
| UI | React + TypeScript(現行は React 19) |
| キャンバス | HTML Canvas 2D(薄い自前レイヤ) |
| ルーティング | react-router(英語=/ · 他=/{locale}/ · /en は / へ。Board は /board) |
| 永続化 | localStorage(将来 IndexedDB 移行可。v1 は localStorage で足りる) |
| ホスト | Cloudflare Pages(SUGUDASU と別プロジェクト) |
デプロイ・env・二層ルーティング・Functions の正本: INFRASTRUCTURE.md(本表より詳細・新しい)。
Football 多言語読み物(未実装): FOOTBALL_CONTENT_ARCHITECTURE.md。
見送り: Next.js、Konva/Fabric、バックエンド。
zoneboard/
docs/
samples/ # 参考スクショ(実装非依存)
src/
app/
canvas/
components/
i18n/
models/
storage/
presets/
public/
package.json
- AC1: 配信モードでボード面 ≥80%(1280×720, 1920×1080)
- AC2: ツールバー非表示。解除ボタン or Esc
- AC3: ユーザー透かしが表示される(ON 時)
- AC4: 装飾の大きな余白なし
- AC5–AC8: ローカル画像設定・四隅/サイズ/不透明度・リロード復元・サーバー非送信
- AC9: サッカー / バスケ / バレー切替、寸法比 §6 どおり。コート面は白・線は黒/濃灰
- AC9b: サッカーでフル/ハーフ切替、5レーン ON/OFF(新規ボードはレーン既定 ON)
- AC10: home/away 駒の追加・移動・背番号・名前・色・向き
- AC11: パス(実線)/ ラン(破線)/ ドリブル(波線)/ ゾーン / ペン / テキスト
- AC12: タイトル帯編集
- AC13: UNDO/REDO(最低 UNDO)
- AC14: 各競技でフォーメプリセット1つ以上(soccer は対戦セット可)
- AC15: リロードでボード復元(最大3枚・アクティブ維持)
- AC15b: 4枚目を作れない。3枚時に上限メッセージが出る
- AC16: PNG Export、透かし焼き込み ON/OFF
- AC17:
/ja/enで UI 切替 - AC18: SUGUDASU / 運営ロゴ強制なし
- AC19: 登録・ログインなし
- AC20: §4-3 ホットキーで主要操作可能
| 項目 | 理由 |
|---|---|
| 選手 DB / スクレイピング | 範囲外 |
| 予想スタメン専用機能 | やらない。 名簿+スタメン背番号+フォーメ配置で足りる。独自色はロゴ・局面名・解説側。他競技展開でも語彙がサッカー寄りになるため専用モードは持たない |
| 動画解析・テロストレーション | Hudl/Coach Paint 領域。ボードに徹する |
| クラウド同期・アカウント | 個人入口はローカル。クラブ向けは後続 |
| アニメ / GIF / MP4 | v1.1。配信は手動かしが主流 |
| ボード内 Webcam | OBS 側 |
| 運営強制ウォーターマーク | 差別化の逆 |
| 視野角扇形 | 出さない(2026-08-25。概念は認識のうえ敢えて非採用) |
| thirds ガイド | v1.1 |
| フットサル / ビーチサッカー | v1.1(サッカー派生のピッチプリセット。ボール・記号は流用) |
| ジュニアピッチ | v1.1 |
| v1 対象外競技(ラグビー、アメフト、野球、テニス、F1、eSports 等) | SPORTS_SCOPE.md。長方形・中密度・配信文化でサカ/バス/バレに固定 |
| コート色カスタム(競技色・ユーザー色) | v1.1(v1 は白地+黒線のみ)。VTuber のピンクピッチ等はここで |
| VTuber アバター埋め込み・スコアボード・スパチャ UI | OBS 側。ボードはピッチに徹する |
| es UI | v1.1 |
zoneboard.com / 国別 DNS |
却下済 |
| SUGUDASU ブランド | 別プロダクト |
| SNS 投稿連携・共同編集 | 範囲外 |
| ピッチ上の広告 / 配信モードの広告 | 絶対にやらない(2026-08-24)。 運営広告もユーザ設定広告も、配信キャプチャ面に出さない。LP 等のサイト面とは切り離す |
旧 U3(away)は調査反映時に v1 両チームで確定済み。
| # | 項目 | 決定 |
|---|---|---|
| U1 | ルート / の既定言語 |
Accept-Language、なければ ja |
| U2 | ツール UI | 右 Notion 風ドロワー(開閉可。配信モードでは強制クローズ) |
| U4 | JSON ファイル入出力 | v1.1 |
| U5 | LP | 短い LP+「ボードを開く」 |
| U6 | コート色 | v1 は白一色(線は黒/濃灰)。ユーザー独自色は v1.1 以降 |
| U7 | タッチ | タブレット・大型タッチ対応(1本指ドラッグ、ピンチズーム、2本指パン、当たり拡大)。ホットキーは PC 任意加速 |
| U8 | 5レーン既定 | ON(現代戦術のデファクト。OFF 切替は可) |
| U9 | ボード数制限 | 最大3枚(競合横並び。月次リセットなし) |
| 項目 | 状態 |
|---|---|
| SPEC ドラフト | 本ファイル(市場調査・U 決定反映) |
| 未決 U1–U9 | 確定 |
| 提督承認(実装着手) | 済(2026-07-04 · 最小構成で着手) |
承認後の実装順:
- Vite + React + TS 足場・i18n・短い LP
- レイアウト(薄いヘッダ+右ドロワー+キャンバス)
- サッカーコート(白地・フル/ハーフ)+5レーン+正規化座標
- 駒(home/away・向き)・3線種・ゾーン・ペン・テキスト・UNDO
- BoardStore(最大3枚・切替・新規/削除)
- ユーザーロゴ透かし
- 配信モード(ドロワー強制クローズ・面積計測付き)
- PNG Export
- バスケ・バレープリセット(白地のまま)
- Cloudflare Pages(別プロジェクト)
End of SPEC