弾幕シューティングは、プレイヤーが到達できる1つの隙間を持つ1列の接近ショットから始めます。固定のオーバーヘッド視点では、プレイヤーは自分の機体を見つけ、どのレーンが埋まりつつあるかを確認し、列が到着する前に開いた場所へ移動できるようにする必要があります。異なる隙間を持つ2回目の砲撃を使用し、同じ警告がプレイヤーに通過経路を与え続けるかどうかを確認します。
以下の架空の格納庫は、5つのレーン、1つの敵対的な発射機、そして2回の反撃の機会を提供します。紙の上で安全なルートを計算し、その後、AIの助けを借りて構築したプロトタイプとそれらの位置を比較できます。同じセットアップにより、誤って見えるヒットを調査する方法が得られます。

機体の船体とヒットボックスを分離する
デバッグビューで1から5まで番号が付けられた5つの平行レーンを持つコンパクトな格納庫を描画します。機体は、下部付近の水平防御ライン上のレーン1から開始します。1ティックごとに、その場で待機するか、左または右に1レーン移動できます。発射機をレーンの上に配置し、各弾丸列がラインに向かって移動するようにします。レーンが埋まることを警告するために細いアウトラインを使用し、アクティブなショットには実体形状を使用します。プレイヤーは、攻撃が接近しているのか、すでに機体に到達したのかを区別できるようにする必要があります。
機体に小さな円形の衝突コアを与え、船体の中心に表示します。翼はそれを超えて突き出ても構いません。これにより、プレイヤーは、異なるシルエットの機体に切り替えた場合でも、一貫したマークを使用して接触を判断できます。
このモデルでは、レーン中心を1単位間隔に配置します。コアの半径を0.18単位、弾丸の半径を0.32に使用します。2つの円は、中心が最大0.50単位離れている場合に接触または重なります。防御ライン上で中心が整列している状態で境界をテストします。水平方向の分離が0.45の場合にはヒットと判定され、0.55の場合には通過するはずです。視覚的な弾丸を衝突サイズに近づけ、テストがプレイヤーが見るものと対応するようにします。

2つの隙間と2回の返り撃ちを体験する
リセット後、時計はティック0から始まります。最初のバージョンでは、発射機はティック1に警告し、最初の列はティック3の終わりに到着します。列にはレーン1、2、3、5にショットがあります。機体は3回の移動でレーン4に到達できます。ティック4に、列は消え、機体は1発の返り撃ちを行うことができます。
2回目の警告はティック5に始まります。その列はティック7の終わりに防御ラインに到達し、レーン2を空にします。レーン4から、機体はレーン2に到達するために2回の移動が必要で、そこで最後のティックまで待つことができます。ティック8に再び発砲して部屋をクリアします。コアにヒットした弾丸は試行を終了させます。
| ティック | 入力 | 移動後のレーン | 期待される結果 |
|---|---|---|---|
| 0 | 待機 | 1 | ベースラインは警告なしで開始 |
| 1 | 右 | 2 | 最初の警告が表示される |
| 2 | 右 | 3 | 機体が衝撃前に将来の危険レーンを横断する |
| 3 | 右 | 4 | 最初の列がラインに到達し、コアをミスする |
| 4 | 発砲 | 4 | 発射機への最初の確認済みヒット |
| 5 | 左 | 3 | 2回目の警告が表示される |
| 6 | 左 | 2 | 機体が2番目の隙間に到達する |
| 7 | 待機 | 2 | 2番目の列がラインに到達し、コアをミスする |
| 8 | 発砲 | 2 | 2番目の確認済みヒットが部屋をクリアする |
列の到着を確認する前に移動を適用し、その後、返り撃ちを処理します。この順序により、ティック3での移動がカウントされます。最初に衝突を確認すると、表の正確な入力は、列が到着した瞬間に機体をレーン3に留まらせます。
AIに部屋とステップコントロールを構築させる
SEELEのスペースシューティングクリエイターは、機体、接近する砲火、そして回避するための空間を説明するための出発点を提供します。1つの遭遇とそれをステップで通る方法を与え、ペースを調整する前に基礎的なルールを検証できるようにします。最初のビルドは、ワークシートと一緒に検査するものとして扱います。
固定のオーバーヘッドブラウザシューティングルームを1つ構築します。1単位間隔の5つのレーン、下部防御ライン上の1つのプレイヤー機体、そして上部の敵発射機を使用します。リセット時にティック0、レーン1、ヒット数ゼロから開始します。
各ティックで、待機、左、または右を許可し、最大で隣接する1レーンまで移動します。将来の危険レーンには細いアウトラインを、アクティブなショットには実体形状を表示します。ティック1の開始時にレーン1、2、3、5を警告します。最初の列はティック3の終わりに防御ラインに到達します。ティック5の開始時にレーン1、3、4、5を警告します。2番目の列はティック7に到着します。
到着時の衝突の前に移動を適用します。プレイヤーのコア半径を0.18単位、弾丸の半径を0.32単位に使用します。距離が0.50以下の場合に接触とカウントします。コアへの接触はランを終了させます。機体の翼とは独立した視認可能なコアマーカーを表示します。
ティック4と8での新しいFire押下を1つずつ受け入れます。各受け入れられたショットはヒット数を1増やします。長押しは新しい押下としてカウントされず、ウィンドウ外のショットはヒット数を増やしません。2回のヒットで部屋がクリアされます。
1ティックずつのデバッグステップコントロールを追加し、0.45と0.55単位のオフセットで衝突を確認する方法を提供します。デバッグビューにティック、レーン、キュー状態、確認済みヒットを表示します。リスタートは状態をクリアし、機体、発射機、時計、発砲ウィンドウを復元します。
完全なトレースを実行する前に、機体が1ティックでレーン1からレーン3にジャンプできないことを確認します。その後、レーン1から最初の砲撃を実行し、ティック1で意図的な待機を行います。2回の右移動後、機体はレーン3にいるべきで、ヒットを受けます。近接接触のオフセットを個別にチェックします。これらの2つのチェックにより、タイミングの問題と衝突の問題を区別するのに役立ちます。
入力処理については、ティック3でFireを押下し、ティック4まで保持します。ヒット数はゼロのままになるはずです。ティック4で新しい押下を繰り返して、1回だけカウントされることを確認します。ヒットまたは勝利後、リスタートし、時計がティック0を表示し、両方の砲撃が再び利用可能であることを確認します。AIゲームを小さなステップでチェックするガイドは、失敗したチェックを焦点の絞られた修正リクエストに変えるのに役立ちます。
最初の警告に1ティック追加する
ベースラインでは、プレイヤーは警告を見た後、最初の隙間に到達するのにちょうど十分な時間しかありません。1ティックの躊躇を許可するために、その警告をティック0の開始に移動します。ティック0は両方のレイアウトに存在します。弾丸の発射と到着時間、占有レーン、移動速度、2回目の警告、返り撃ちウィンドウは固定します。

| 最初のキュー | それを見た後1ティック待機 | 到着前の右移動 | ティック3でのレーン |
|---|---|---|---|
| ティック1の開始 | ティック1で待機 | ティック2と3 | 3、ヒット |
| ティック0の開始 | ティック0で待機 | ティック1、2、3 | 4、安全 |
ワークシートは、より早い警告に1ティック分の追加の移動時間を与えます。ご自身のビルドでは、初見のプレイヤーがアウトラインを見て、方向を決める前に空のレーンを認識できるかを確認します。プレイヤーが警告に気づいたがマークされたレーンを選んだ場合、キューが伝える内容を調整してから、再び延長します。
最初のパターンを診断できるほど小さく保つ
より速いショットや別の発射機を追加する前に、両方の砲撃を構築します。到着時のプレイヤーのレーンを監視し、ヒットがコアマーカーと一致しているかを確認し、ルールを変更する際は記録された入力シーケンスを使用します。SEELEのスペースシューティングクリエイターで弾幕プロトタイプを開始し、最初の部屋を2砲撃トレースと比較します。
よくある質問
翼に触れたショットはヒットとカウントされるべきですか?
このプロトタイプでは、マークされた中心を衝突コアとして使用します。翼の外側をかすめたショットは、そのコアをミスした場合に通過できます。マーカーを視認可能に保ち、アニメーションとダメージルールの間の不一致をキャッチするために近接接触チェックを使用します。
ショットのアニメーションとゲーム時計が一致しない場合はどうしますか?
衝突を確認するタイミングを決定するためにゲーム時計を使用し、その後、アニメーションをそのイベントに同期します。到着をステップで通し、列の位置を記録されたティックと比較します。ダメージが発生したときにまだ遠くに見える列は、タイミングまたは表示を修正する必要があります。
色に頼らずに安全レーンをマークするにはどうすればよいですか?
隙間を警告アウトラインから自由にし、占有レーンには明確な破線形状を与えます。アクティブなショットは視認可能なエッジを持つ実体として作成します。グレースケールで、通常のプレイサイズでシーンを確認し、隙間と弾丸列が認識可能かどうかを見ます。
対角線や移動パターンをいつ追加すべきですか?
まず、プレイヤーが列を読み取り、隙間に移動し、ヒットが発生した理由を特定できることを確認します。その後、短い遭遇で1つの新しい運動ルールを導入します。新しい方向が問題の原因なのか、基本的なコントロールが原因なのかを区別できるように、古い列を保持します。


