Unity用 捕獲&仲間化システム SRPGアセット "Capture & Recruit System"
- ダウンロード商品¥ 200





■ 「倒すかわりに、捕まえて仲間にする」は、書いてみると意外と厄介 将棋の持ち駒、SRPG の説得や勧誘、モンスター収集。敵を倒さずに捕まえて自分の戦力にする——遊ぶ側には単純に見えるこの仕組みは、作り始めると次々に引っかかります。 「囲んだ」の判定は、画面と実際の処理で同じになっている? 成功率 30% の内訳を、どうやってプレイヤーに見せる? ボスや兵器は捕まえられない、をどこに持たせる? 捕まえた敵は、盤上に残す? 消す? その場で味方にする? 捕まえた直後に撤退したら、その仲間は手に入る? このアセットは、その全部——**包囲の判定・成功率とその内訳・捕まえられない相手・失敗時の扱い・捕獲後の処遇・確定のタイミング・図鑑**——を 1 本の流れにまとめて引き受けます。 ■ できること ●包囲の形はデータで決める 四方包囲・八方包囲・挟み撃ち・「8 方向のうち 5 以上」を、インスペクターの設定だけで切り替えられます。**壁や盤端を一辺に数える**設定にすれば、角へ追い詰めて 2 人で捕まえる戦術が生まれます。六角マスにも対応しています。 ●足りないマスがわかる 「あと何人・どのマスに入れば完成か」が返ります。足りない辺を赤く光らせる UI がすぐ作れます。 ●成功率は内訳ごと返る HP 段階の基本率+包囲に加わった味方+捕獲する側の装備+失敗の積み重ね+独自補正。「基本 35%+包囲 +15%+装備 +15%=65%」をそのまま画面に並べられます。**確認画面の数字と実際の判定が同じ関数を通る**ので、表示とずれることがありません。 ●捕まえられない相手・条件つきの相手 ボスは固定率(装備も HP も効かない)、兵器は捕獲不可、「調教師にしか捕まらない」——どれも設定 1 つです。押せない理由は文章ではなく**データで返る**ので、文面も多言語化も購入者の自由です。 ●失敗したとき 「反撃すべき」という合図を返します(戦闘処理は購入者のコードのまま)。失敗するほど成功率を上げる「粘り」や、一定回数で抵抗して捕まらなくなる設定も入っています。 ●捕獲後の 3 つの結末 その場に障害物として残る/盤面から去る/**その場で寝返って味方として戦う**。寝返ったユニットは次の包囲にもそのまま加われます。 ●確定のタイミングを選べる 捕まえた瞬間に確定(撤退しても持ち帰れる)/敗北しなければ確定/勝利したときだけ確定。「撤退も戦術」にするか「勝ち切るまでの賭け」にするかは、ゲームデザインの判断として設定で選べます。 ●手加減 ダメージ計算の最後に 1 行挟むだけで、**捕まえたい相手だけ HP 1 で止まり**、それ以外の敵は普通に倒れます。 ●捕獲の手引き 狙い目と「どのマスへ動けば包囲が完成するか」を返します。プレイヤー向けのヒントにも、敵 AI やオート戦闘の思考にも同じものが使えます。 ●図鑑 何を・何回・いつ初めて捕まえたかを記録します。「初めて捕まえた!」の判定つきなので、NEW! 表示やコンプリート報酬に使えます。 ●戦闘途中のセーブ 状態は文字列 1 本。確定済みの捕獲は復元しても二重に渡らないので、ロードを繰り返して仲間を増やすことはできません。 ■ 導入は 3 ステップ 【1】ユニットと盤面をつなぐ public class MyUnit : MonoBehaviour, ICaptureUnit { public int TeamId => team; public Vector3Int Cell => cell; public int CurrentHp => hp; public CaptureProfile CaptureProfile => profile; // 敵のデータから参照。味方は null public void OnCaptured(CaptureFateInfo info) { /* 檻に入れる・消す・寝返らせる */ } // ほか ID・レベル・タグなど } 盤面は「そのマスに誰が居るか・盤内か・壁か・味方どうしか」の 4 つに答えるだけです。 【2】メニューで判定し、押されたら実行する var check = session.Evaluate(field, selected, enemy); if (check.ShouldShowCommand) ShowCaptureButton(check.CanAttempt, check.Rate.FinalPercent); var result = session.Attempt(field, selected, enemy); // 成功なら仲間に、失敗なら反撃の合図 【3】戦闘が終わったら確定させる session.EndBattle(BattleEndKind.Victory); // 撤退なら Retreat、敗北なら Defeat 確定した捕獲は受け取り口に届きます。記録の ID を自分のキャラクターデータへ引き当てて、仲間リストに加えてください。 ■ 今あるゲームに、そのまま入ります **盤面の形を知りません。** Tilemap でも自前の二次元配列でも、4 つの問いに答えられれば動きます。 **キャラクターの形を知りません。** インターフェースを 1 つ実装するだけで、既存のキャラクタークラスがそのまま捕獲の対象になります。書き換えたくない場合は薄いアダプタで十分です(サンプル同梱)。 **戦闘計算も UI も持ちません。** ダメージの式もボタンの見た目も成功演出もゲームの個性です。本アセットは判定結果と数字を返すところまでを担当し、描画例はデモに丸ごと入っています。乱数も差し替えられるので、既存の抽選の仕組みにも合わせられます。 ■ まず動かしてみてください(実演シーン同梱) シーンを開いて再生するだけで、**12 場面が字幕付きで自動再生**されます(操作不要・無限ループ、1 周およそ 2 分)。 四方包囲/成功率の内訳と判定/HP 段階の比較/捕まえられない相手の比較/包囲ルールの比較/壁と盤端/失敗と粘り/捕獲後の 3 つの結末/手加減/包囲の手引き/確定タイミングの表/図鑑——を順に見られます。 包囲の過不足はマスの上の緑と赤の枠、成功率は右側の内訳と判定ゲージ、結果は対象の上のスタンプで常に表示されるので、**どの瞬間を切り取っても何が起きているか分かります**。 デモには画像・音声・フォントを 1 つも含みません(図形はコード生成、文字は OS のフォント参照)。 ■ 収録内容 ・Runtime(本体)… 包囲の判定と手引き・成功率とその内訳・捕獲の可否判定・捕獲の進行管理(抽選/処遇/確定/保存)・手加減・図鑑と保存先 3 種 ・Samples … 既存プロジェクトへの組み込み例 6 本(ユニットのアダプタ/盤面のアダプタ/仲間への受け渡し/レベル差の独自補正/戦闘への組み込みの流れ ほか) ・Demo … 実演シーン一式(削除しても本体に影響しません) ・動作確認メニュー … 251 項目の自己診断をその場で実行できます ・README(日本語/英語) ・フルソース付属。改変して組み込めます ■ よくある質問 Q. 捕まえた敵は自動で仲間リストに入りますか? A. 「どの ID を・何レベルで」までを渡し、実際に加えるのは購入者のコードです(メソッド 1 つ)。キャラクターデータの形を問わないための設計です。 Q. 失敗したときの反撃のダメージは計算されますか? A. されません。「反撃すべき」という合図を返すので、既存の戦闘処理で反撃させてください。 Q. 包囲なしで、隣にいれば捕獲できる形にできますか? A. できます。包囲ルールを「指定数以上・1」にすれば、隣接するだけで捕獲できます。 Q. ヘックスマップでも使えますか? A. 行ずらし座標(奇数行が右にずれる配置)の六角マスに対応しています。他の座標系の場合は盤面側での変換が必要です。 Q. UI は付いていますか? A. 付いていません。判定結果・成功率の内訳・足りないマスを返すところまでです(デモに実装例が入っています)。 Q. オンライン対戦で使えますか? A. 通信機能は含まれません。乱数を差し替えられるので、サーバー側で抽選する構成に組み込むことはできます。 ■ ライセンス 購入者ご自身の商用・非商用プロジェクトでご利用いただけます。アセット単体での再配布・販売はご遠慮ください。




