# 操作FAQ・AIへの質問方法

操作の質問は手順を通常の文章で回答し、設計相談やJSON作成とは区別します。画面とこの資料は同じ手順データから生成します。

## 公開モデルをもとに作り始めるには？

1. ログインして「ゲームを作る」を押します。
2. 「モデルから作る」の一覧で作品を選び、プレビューを確認して「このモデルで作る」を押します。
3. 新しい下書きの編集画面で内容・設定・処理を確認して変更します。サーバー保存・公開は別途行います。

対象は指定9作品に固定です。元の作品の保存先や公開設定は引き継ぎません。一から始める場合は「新規作成」を選びます。

[関連仕様・サンプル](README.md)

## JSONの読込で使えないデータを確認するには？

1. 編集画面の「読込」でJSONを選びます。
2. エラー一覧・警告一覧で、部品名・項目・理由を確認します。「全文をコピー」で、画面に出ていない分も含めて全件をコピーできます。
3. エラーがある場合は、元のJSONを修正して再度読み込みます。編集中のゲームは置き換わりません。警告だけなら読み込めます。

作者のSVGは使用できません。PNG・JPEG・WebP・GIFを埋め込んでください。トークン移動の演出はshowAnimation:trueで設定できます。マーカーのiconは「●」「◆」などの文字、imageは画像です。8MiBの容量制限は埋込画像をアセット参照に置き換えた定義に適用し、画像本体込みのJSONファイルは8MiBを超える場合があります。

[関連仕様・サンプル](validation.md)

## 処理でカードと案内文を拡大画面に出せる？

1. 「カードを拡大表示」を追加し、対象プレイヤーと実カード1枚を選びます。
2. 任意のメッセージに固定文・変数・一時値を設定します。
3. ゲーム中は対象者へ表示され、×で閉じられます。

表示後すぐ後続へ進みます。同じ拡大通知は端末内で1回だけ表示し、視点切替後の行動で古い拡大は出しません。確認待ちは別の通知・確認処理で設定します。閲覧できない面・説明は表示しません。

[関連仕様・サンプル](action-reference.md)

## 手札を回収した後の確認操作やエラー通知は？

1. 手札からなくなったカードの選択は自動で解除されます。確認するための手動の選択解除やプレイヤー切替は不要です。
2. 操作が拒否された場合は画面内のエラー通知を確認します。ローカル確認画面では、開始した操作・停止した処理・理由も表示します。失敗した操作の途中変更は反映しません。
3. 長文は通知内をスクロールし、×で閉じられます。

JSONへの追加設定は不要です。サーバーは現在のカード所有・公開範囲・操作権限を引き続き検証します。

[関連仕様・サンプル](physical-card-values.md)

## 選択画面を出さずに手札や場から複数枚を選べる？

1. カード選択の「選択候補→候補の種類」を「カードの場所」にし、候補の場所と条件を設定します。
2. 「選択候補→表示形式」を「直接選択」にし、最少・最多選択数を設定します。
3. ゲーム中は手札・ホルダー・盤面の候補を直接押し、操作バーの「確定」を押します。

JSONは choice.display:"surface"。実カード専用で、ピース・独自候補には使えません。省略時は従来の一覧表示です。未確定の選択は本人の端末内だけで保持し、複数枚を1回の回答で送ります。操作バーは選択タイトルと「確定」、他プレイヤーの手番を表示し、再表示ボタン・回答人数・定型説明・選択枚数・重複案内は出しません。サーバーが個体・枚数・候補を検証します。

[関連仕様・サンプル](physical-card-values.md)

## 1手番に3回操作してから確定したい。配置をやり直せる？

1. ボタン設定でフェーズごとの操作ボタンを作ります。
2. 通常の変数・条件で残り回数を管理し、配置開始に「セーブポイント」の作成を追加します。
3. 完了ボタンで「条件・配置を検査」を実行してから回数を減らします。復元ボタンには同じ記録の復元処理だけを設定します。
4. 手番確定では記録を破棄して次の手番へ進めます。

記録は8個まで、操作制限のボタンIDは100件までです。非公開カードの内容が新しく見えた場合は既定で復元できません。本人1人の未回答中だけ復元でき、古い回答は無効になります。編集上の専用行動管理設定は使用しません。

[関連仕様・サンプル](phase-savepoints.md)

## 確認画面を別プレイヤー視点のままリセットできる？

1. 編集画面で「確認する」を開きます。
2. PCでは上部の「リセット」、狭い画面では「操作メニュー」→「リセット」を押します。
3. 確認ダイアログで「リセットする」を押すと、初期状態へ戻して初期処理を実行します。

確認画面では全プレイヤー視点から実行できます。演出中・回答待ち中のリセットは従来どおり抑止されます。オンラインの実ゲームにはリセットボタンを表示しません。

[関連仕様・サンプル](validation.md)

## 盤面にボタンを置いたときの処理はどこで設定する？

1. 編集画面で盤面のボタンを選択します。
2. 部品設定の「ボタン設定で処理・条件を編集」を押すと、そのボタンが選択された設定を開きます。
3. 「処理を編集」で処理を追加し、「ルールを保存」で編集内容に反映します。

別の入口はゲーム設定の「ボタン設定」→「盤面ボタン」→対象ボタン→「処理を編集」です。位置・画像・文字は部品設定で変更します。「背景を表示する」をオフにすると背景・枠線・影が透明になり、編集画面だけ青い点線で範囲が分かります。文字・画像は残り、確認・ゲーム画面には点線を表示しません。「ルールを保存」はサーバー保存ではありません。

[関連仕様・サンプル](action-reference.md)

## 上部に出るボタンやフェーズごとの処理はどこで設定する？

1. ゲーム設定の「ボタン設定」を開き、対象のフェーズを選びます。
2. そのフェーズのボタンを選び「処理を編集」を開きます。
3. 自動実行したい処理は「ゲーム進行」を開き、フェーズ開始・終了、ターン開始・終了の処理編集へ設定します。

盤面ボタンとは別の一覧です。盤面ボタンを特定フェーズだけに出す場合は表示条件で指定します。動作ログをONにすると確認モードでも実行者とボタン名を記録し、回答待ちから再開しても重複しません。内部のカード移動などは個別記録せず、明示した「ログを追加」の本文は表示します。

[関連仕様・サンプル](game-data-spec.md)

## ゲーム開始時にシャッフルして手札を配りたい。どこに設定する？

1. カード、山札、プレイヤーの手札設定を先に用意します。
2. ゲーム設定の「ゲーム進行」→「ゲーム開始時」→「初期処理を編集」を開きます。
3. シャッフル→カード移動→整列の順に設定します。配布枚数を全体合計にするか各移動先にするかも確認します。

初期処理の完了後にフェーズ1の開始処理が実行されます。両方へ同じ配布を入れないでください。

[関連仕様・サンプル](authoring-patterns.md)

## 実行できないボタンを非表示にしたい。灰色にする設定との違いは？

1. 「ボタン設定」で対象ボタンを選びます。
2. 非表示にする場合は「常に表示する」をOFFにして「表示条件」を設定します。
3. 表示したまま無効にする場合は「常に操作可能にする」をOFFにして「操作できる条件」を設定します。

表示条件は実行権限の代用ではありません。手番・所有者・選択枚数など必要な操作条件も合わせて設定します。

[関連仕様・サンプル](examples/selected-cards-button.json)

## 手札を選んで「出す」ボタンで出せる？

1. 手札のカードを選択できるようにし、盤面に「出す」ボタンを用意します。
2. ボタン処理のカード移動で、対象を選択中のカード、移動元を操作プレイヤーの手札、移動先を場のボックスにします。
3. 必要な選択枚数やゲーム固有の合法条件をボタンの条件にも設定します。

選択と自由なドラッグ移動は別です。移動不可でも手札選択を利用できます。未選択時や違反時の条件も確認します。動作ログがONなら、押下時点で表向きかつ全員に公開されている選択カード名をボタン名へ添えます。本人・チーム限定、裏面、山の下や未選択の札名は記録しません。

[関連仕様・サンプル](examples/selected-cards-button.json)

## 各プレイヤーの下に得点や役名を表示するには？

1. プレイヤー設定で得点用の数値変数、役名用の文字変数を作ります。
2. テキスト部品をプレイヤー用に設定し、人数分の配置を用意します。
3. 「文章と変数を組み合わせる」で対象をその部品の所有者にして、表示する変数を参照します。

変数名・部品名と表示文章は別です。表示OFFは秘密化ではありません。役職などの秘密値は本人公開の変数と対象を使います。

[関連仕様・サンプル](component-reference.md)

## 手番の順番や複数人の手番を変えるには？

1. ゲーム設定の「ゲーム進行」でターンを設定します。
2. 複数人を同時に手番にする場合はターンの「複数可」をONにします。
3. 処理の「マーカーを操作」でターンの移動・追加・除去を設定します。

通常のマーカーは「部品共通設定」で編集し、ターン設定とは別です。新規JSONはsettings.turnを使い、旧markers[id=turn]は生成しません。全解除中に再開できる操作条件も用意します。

[関連仕様・サンプル](game-data-spec.md)

## 3分後に自動で投票へ進めるには？

1. カウントダウンのタイマー部品を用意し、3分（180秒）に設定します。
2. タイマー設定の「時間終了時の処理を編集」から投票フェーズへ進む処理を設定し、必要なら「実行するフェーズ」を限定します。
3. 昼の開始処理でタイマーをリセットして開始します。手動で昼を終える場合は停止も設定します。

時間終了処理にはボタンを押した操作プレイヤーがいません。対象を明示してください。確認モードと実部屋の実行は別に確認します。

[関連仕様・サンプル](authoring-patterns.md)

## お知らせだけ出す場合と全員確認してから進む場合は？

1. 処理で「通知・確認」を使い、本文と表示するプレイヤーを指定します。
2. 単なるお知らせは通知のみ、次へ進む前に全員の確認が必要なら確認待ちありを選びます。
3. 確認待ちの後へ次フェーズへの移動などの処理を置きます。

単なる通知に選択肢や回答変数は不要です。途中退出者を勝手に確認済みにしません。秘密の本文を全員向けに出さないでください。 画面に動かす対象がない演出は、その区間の表示待ちを省いて次の見える演出へ進みます。見える演出の順序と長さは変えません。変数表示やタブ切替も処理順に反映します。操作可能時刻と入力期限はサーバーが管理し、表示だけが先に進んでも次の回答可能時刻は早まりません。スクロール・手札やログの閲覧は引き続き利用できます。

[関連仕様・サンプル](examples/notification-confirmation.json)

## 勝者や最終得点をリザルトに出すには？

1. ゲーム設定の「リザルト設定」で個人・チーム・協力の方式と集計する成績を設定します。
2. ゲーム終了条件を判定する処理で、必要な得点・役職公開などを先に確定します。
3. 最後にゲーム終了処理を実行します。

ゲーム終了後に続く処理は実行されません。秘密の役職を公開する場合は、終局で許可する情報だけを明示的に公開します。個人ランキングとチーム・協力メンバーはゲーム中と同じ参加者画像・既定の動物アイコンを表示し、画像未読込時は既定アイコンを表示します。アイコン表示のためにJSONを変更する必要はありません。

[関連仕様・サンプル](authoring-patterns.md)

## JSONの読み込み・書き出しとサーバー保存はどこ？

1. PCでは編集画面の「読込」「書出」を使います。狭い画面では「その他」に同じ操作があります。
2. 処理編集の「ルールを保存」や設定画面の「完了」は編集内容への反映です。
3. アカウントへ保存するには、ログインして編集画面の「サーバーに保存」を押します。

読込は今編集中のゲームの内容をJSONで置き換えます。ゲームや下書きは追加せず、URL・公開範囲・保存先を維持します。サーバー保存済みのゲームは「サーバーに保存」で同じゲームを更新します。読込に失敗した場合は元の内容を維持し、成功後も「戻る」で置換前へ戻せます。書出はJSONファイルの保存で、サーバー保存ではありません。「未保存の変更を破棄」「端末の下書きを削除」は別操作です。マイゲームの「保存履歴」で直近10版を確認し、過去版を別下書きへ復元できます。保持版の画像も保存容量に含まれます。

[関連仕様・サンプル](validation.md)

## 未選択や秘密情報の警告が出たら？ AIだけで検証完了にできる？

1. 該当処理を開き、共通処理の呼び出し先、変数、部品、対象の未選択や参照切れを確認します。
2. 秘密情報の警告は取得元の公開範囲と出力先を確認し、警告を消すためだけに全員公開へ変えないでください。
3. Schemaと正式読み込みを検査し、確認モードで初期処理・手番・入力待ち・終了を実際に試します。

確認モードの「実行を調べる」で、押せない理由、実行順、全体変数の前後を確認し、該当処理の編集へ戻れます。AIが資料を読めたこと、Schema合格、実行器検証、実画面、オンライン、本番反映は別です。できなかった検査を確認済みと報告しないでください。

[関連仕様・サンプル](validation.md)

## 盤面の横幅を指定するには？

1. JSONのbackground.width、またはtabs[].background.widthに100〜10000の整数pxを指定します。
2. 読み込んで確認画面で初期表示範囲と盤面右側を確認します。
3. 高さを編集した後も、書き出したJSONでwidthが保持されることを確認します。

幅を省略した軸は従来のsizeの既定寸法を使います。横幅の編集UIは追加していません。部品のx/yは百分率、幅・高さは論理pxです。

[関連仕様・サンプル](examples/board-width.json)

## AIへ渡す共通プロンプト

あなたはASOBI LABの操作・ゲーム制作アシスタントです。
作成ガイド: https://asobilab.party/game-authoring-guide
公開仕様: https://asobilab.party/docs/ai-game-authoring
作者のSVG画像は使わずPNG・JPEG・WebP・GIFを埋め込み、JSON読込のエラー一覧を解消してください。tokenのset／recallはshowAnimation:trueで移動演出を指定できます。
カード個体を選んで移動する場合は choice/card-location と cardSelector、game.input.cards を使用します。候補や未選択札の公開範囲を広げず、別入力前に必要な結果は一時変数へ保存してください。
準備画面のオプションとタブ切替: https://asobilab.party/docs/ai-game-authoring/game-options-and-tabs.md
操作FAQ: https://asobilab.party/docs/ai-game-authoring/operation-faq.md
まず依頼を次の3種類に分け、必要な資料を読んで回答してください。
1. 操作の質問：操作FAQを使い、実際の画面名・ボタン名・設定手順を通常の文章で直接回答してください。ゲーム全体の聞き取りやJSON生成を始めないでください。
2. 設計相談：目的に関係する不足点だけを質問し、設計案を説明してください。依頼されていないJSONやコード変更を行わないでください。
3. ゲーム作成・変更：公開仕様のREADMEにある部品・処理・制約・参照表・実装パターン・サンプル・Schemaを確認してください。不足や矛盾を解消して設計を確認し、明示された作成・修正依頼の範囲でJSONを生成してください。すでに確定した条件を繰り返し聞かないでください。JSONファイルの内容には説明文やコードフェンスを含めないでください。
リンクを読めない場合は読めなかったことを伝え、必要な資料本文の貼り付けか添付を依頼してください。画面名や仕様を推測しないでください。
公開資料だけで回答できない点や未実装機能は明示してください。秘密情報を公開して警告を回避しないでください。静的検査・実行器・実画面・オンライン・本番反映を区別し、未実施の確認を実施済みと報告しないでください。
私の質問・依頼：
