Unity用 ノードマップ&ステージ進行システムアセット "Node Map & Stage Progression System"
- ダウンロード商品¥ 200




■ 戦闘は作った。では、戦闘と戦闘の「あいだ」は? SRPG やタクティクス RPG を作っていると、戦闘そのものより先に手が止まるのが「進行の層」です。 出撃マップを分岐させたい。でもノードの管理が面倒。 ボスまで進んだら次のステージを解放したい。条件の判定をどこに書く? 戦闘シーンへ移ったら、マップのどこまで進んだか分からなくなった。 イベント海域みたいに「ボスを5回倒してゲージを削る」をやりたい。 このアセットは、その進行の層——**分岐マップの進行**と**ステージの解放・攻略ゲージ・クリア報酬**——を丸ごと引き受けます。 ■ できること ●分岐マップの進行 マスを並べて繋ぐだけ。一本道は自動で進み、**止まるのは「分岐」と「戦闘の結果待ち」の 2 箇所だけ**です。この単純な約束のおかげで、戦闘が 3 秒で終わろうと、別シーンで 3 分かかろうと、同じコードが動きます。 ●マスの種別はデータ 「戦闘・強敵・宝箱・休憩・店・ボス」は列挙型ではなく ScriptableObject です。決めるのは ・そこで進行を止めて結果を待つか ・到達すると出撃が終わるか ・経路探索の目的地になるか ・失敗したら打ち切るか(OFF にすれば「負けても進む」設計に) の 4 つだけ。**コードを書かずに種別を増やせます。** ●戦闘シーンを挟んでも続きから 出撃の途中経過は文字列 1 本になります。既存のセーブデータに 1 項目足すだけで、戦闘シーンから戻ってきたときに同じマスから再開できます(アセット専用のセーブファイルは作りません)。 ●マップの自動生成 段数・1 段あたりのマス数・分岐の多さ・種別の出やすさを決めるだけで、**必ず出発点からゴールまで繋がった**分岐マップが返ります。同じシードなら同じマップなので、「今日のマップ」や不具合の再現にも使えます。出てくるのは手で作ったマップと同じ形なので、扱いも同じです。 ●最短ルート探索と、マップの検証 ボスまでの最短経路・到達可否を返します。オート進行も同じ計算を通るので、**表示したルートと実際に進む道が食い違いません。** また「繋ぎ先が存在しない」「出発点から到達できないマスがある」「ゴールが無い」といった作り間違いを検出する機能も入っています。 ●ステージの解放 「どのステージを・どの評価でクリアすれば解放されるか」をデータで設定します。ロック中のステージは、**足りない条件を文章ではなくデータで返す**ので、表示文面も多言語化も自由に作れます。 ●攻略ゲージ ボスを何度も倒して削り切る、周回型の進行です。評価ごとの減少量、条件となるマス種別、削り切った瞬間だけの報酬、自動で満タンに戻すか——をステージ 1 つの設定だけで表せます。 ●報酬テーブル 個別抽選(運が良ければ全部当たる)/重み付きで 1 つ選択(ドロップテーブル)/確定、の 3 方式。**抽選までを引き受け、配るのは購入者のコード**なので、インベントリの実装には踏み込みません。 ■ 導入は 3 ステップ 【1】マップを作る メニューからマップを作ってマスを並べるか、シーンに `Map Node` を置いて隣のマスをドラッグして繋ぎます。どちらで作っても以降のコードは同じです。 【2】出撃を始める var run = new MapRun(map, rewardHandler); run.NodeEntered += node => MovePieceTo(node); run.RouteOptionsPresented += options => ShowBranchButtons(options); run.Finished += result => ShowResultScreen(result); run.Begin(); 【3】結果を報告する run.ReportOutcome(NodeOutcome.Cleared(rank: 3)); // 勝った run.ChooseNext(nodeId); // 分岐を選んだ 出撃が終わったら、その結果をそのまま進捗へ渡すだけです。 var report = progression.ReportRunResult(stage, run.Result); report には「初回クリアか」「最高評価を更新したか」「ゲージがどこまで減ったか」「削り切ったか」「配られた報酬」「新しく解放されたステージ」が入っています。リザルト画面はこれを読んで組み立てられます。 ■ 今ある戦闘システムも UI も、そのまま使えます このアセットは**戦闘を一切持ちません**。マスで何が起きるかは購入者の実装で、本アセットは「勝った/負けた/評価はいくつ」を受け取るだけです。つまり、すでに戦闘を作ってある人ほど導入が簡単です。 **UI も持ちません。** マスの座標・分岐の選択肢・ロックの理由・ゲージの残量といった「表示に必要な値」を返すところまでを引き受け、uGUI でも UI Toolkit でも自作でも好きな見た目を被せられます。マップの描画例はデモに丸ごと入っています(`MapDemoView.cs` がそのまま参考になります)。 **セーブも既存のものを使えます。** 保存先は差し替え可能で、メモリ/PlayerPrefs/JSON ファイルが同梱、自前のセーブへ埋め込みたい場合はインターフェースを 1 つ実装するだけです。 ■ 実演シーンを同梱 メニュー 1 クリックでシーンを構築し、再生するだけで 15 場面が字幕付きで自動再生されます(操作不要・無限ループ)。 マップの進行/分岐/マス種別/結果待ち/敗北での打ち切り/撤退/マスの報酬/最短ルート/中断と再開/ステージ解放/評価の条件/攻略ゲージ/ゲージ破壊報酬/リセットして周回/マップの自動生成——を目で見て確認できます。 外部素材はゼロで、図形はコード生成、文字は OS フォント参照です。 ■ 動作環境 ・Unity 2022.3 LTS 以降 ・追加パッケージ不要(外部プラグインにも依存しません) ・Input System はどちらの設定でも動作します(入力を一切使いません) ・2D / 3D どちらでも動作します(描画を行わないため) ■ 収録内容 ・Runtime(本体)… マップとマスの定義・出撃の進行・途中経過の保存と復元・経路探索と検証・マップ自動生成・ステージ解放・攻略ゲージ・報酬テーブル・保存先 3 種 ・Samples … 最小構成のコード例 4 本(出撃の最短形/ステージ選択画面/報酬の受け取り/戦闘シーンを挟む保存と再開) ・Demo … 実演シーン一式(メニューから自動生成。削除しても本体に影響しません) ・動作確認メニュー … 129 項目の自己診断をその場で実行できます ・README(日本語/英語) ・フルソース付属。改変して組み込めます ■ よくある質問 Q. 戦闘システムは含まれますか? A. 含まれません。マスで何が起きるかは購入者の実装です。本アセットは結果の報告を受け取って進行を続けます。 Q. マップの絵は描いてくれますか? A. 描きません。マスの座標は返しますが、線や絵は購入者側で描きます(デモに描画の実装例が丸ごと入っています)。 Q. ローグライトの「毎回ちがうマップ」に使えますか? A. 使えます。自動生成は段状の分岐マップ(Slay the Spire 型)に対応しています。洞窟状・格子状のダンジョン生成は対象外です。 Q. ヘックスや格子のマップでも使えますか? A. マスの繋がりだけを見るので、盤面の形は問いません。ただし座標は表示用に返すだけで、マス間の距離計算は行いません。 Q. ネットワーク対戦に使えますか? A. 同期の仕組みは含まれません。シードを共有すれば同じマップは作れます。 ■ ライセンス 購入者ご自身の商用・非商用プロジェクトでご利用いただけます。アセット単体での再配布・販売はご遠慮ください。



