# RPG Map Editor — タイルマップを描き、イベントを置く RPG マップエディターは、実行中のゲームの上で RPG エンジンのタイルマップを編集します。3 つのタイルレイヤー、壁と通路、プレイヤーの開始地点、ランダムバトル、そしてイベント——キャラクター、看板、ドア、拾えるアイテム。保存するとマップはすぐにゲームへ反映され、**プレイ**で実際に歩き回れます。 ツールボックス(ツールバーのハンマー)から **RPG マップエディター** として開きます。対象は、プレイヤーが今いるマップです。 ## 編集と、その結果のゲーム内での様子 RPG Plus の長老の家、編集前: ![ゲーム内の長老の家: 木造の部屋で、奥に長老、右に宝箱。](assets/house-before.jpg) エディターでは、**Appearance**(外観)タブで商人のキャラチップを選び、**Place NPC**(NPC を配置)を押して、空いたマスをクリックします。新しいイベントは **イベント** レイヤーで選択され、プロパティが右に表示されます。 ![rpg_demo_game / rpg_elder_house.json を開いた RPG マップエディター: 外観リストで merchant · village/merchant を選択、マップ上の長老と新しい商人はイベントとして枠囲みになり、他のファイルのイベントには破線の枠。右側にはマップのプロパティ(タイルセット village、12 × 10、開始地点 6, 8・向きは上)と新しいイベント npc_village_merchant(9, 3 にあり、キャラチップ village/merchant、向きは下、起動はアクションキー E/F)。ステータス行は「merchant」を NPC として配置したと表示しています。](assets/editor-npc.jpg) **保存**(Ctrl+S)のあと、商人が家に立っています: ![ゲーム内の同じ部屋。今は奥の壁の右側に商人がいる。](assets/house-after.jpg) 彼の会話と振る舞いはイベントのプロパティで設定します。シナリオ、条件、起動方法です。 ## レイヤーとツール - **背景**、**メイン**、**前景** — タイルレイヤーです。背景とメインは solid なタイルで通行を妨げられます。前景はキャラクターの上に描かれ、決して妨げません。 - **衝突** — タイルの上に塗ります。*壁*(常に通れない)、*通路*(常に通れる)、*自動*(タイルに従う)。 - **イベント** — クリックで選択・ドラッグ、空いたマスのダブルクリックで追加、Del で削除。 - **鉛筆**、**消しゴム**、**塗りつぶし**。右クリックで消し、Alt+クリックでタイルを拾い、1–5 キーでレイヤー、B/E/G でブラシを切り替えます。 - **元に戻す**/**やり直す**(Ctrl+Z / Ctrl+Y)、グリッド、ズーム(Ctrl+ホイール)。 ![長老の家の衝突レイヤー: 壁が「壁」として赤く塗られ、床は開いている。](assets/collision.jpg) 左のタブは **タイル**(マップのタイルセットのパレット。家や木のようなオブジェクト全体を一度に置けます)、**キャラクター**(戦闘ステータスを持つキャラクター。敵として配置)、**アイテム**(個数つきの拾えるアイテムとして配置)、そして **Appearance**(読み込まれた MOD の全スプライト。NPC として配置)です。 右の列にはマップのプロパティが並びます。名前のキー、タイルセット、サイズ、拡大率、固定の環境光と雰囲気、開始地点と向き、そしてランダムバトル(約 N 歩ごと、敵グループは `slime; wolf,slime` のように書きます)。 ## トップダウンとアイソメトリック エディターはゲームと同じようにマップを描きます。ツールバーのビュー切り替えはプレビューだけを変え、マップのデータは変わりません。アイソメトリックプレビューの家: ![エディターのアイソメトリックプレビューに映る長老の家: 同じ部屋がアイソメトリックで描かれ、左にタイルセットのパレット。](assets/editor-isometric.jpg) ゲーム本体のビューはコレクション設定 `tile.renderer`(`topdown` か `isometric`)で決まります。`--editor-renderer=isometric` を付けると、エディターが最初からアイソメトリックプレビューで開きます。 ## どのファイルが書かれるか - マップ本体は、そのマップの `maps/.json` に保存されます。 - イベントは同じ MOD 内の、そのマップ自身のイベントファイル(`map_events/<マップ>/…`)へ書き込まれます。他のファイルや他の MOD がマップに加えたイベントは、破線の枠つきで薄く表示され、決して上書きされません。その id は使えません。 - ファイル一覧の隣の **+** で、選択中の MOD に新しいマップを作れます。保存すれば、ゲームはそれをすぐにシーンとして認識します。 - 書き込めるのは、フォルダーとしてインストールされた MOD だけです。 ## うまくいかないとき 1. **プレイで「ゲームはシーンを知らない」と出る。** そのマップの MOD に `scenes/.json` が必要です。 2. **イベントが選べない。** それは別のファイルか MOD のイベントです(破線の枠)。 3. **NPC が話さない。** イベントにシナリオがないか、起動がアクションキーになっていません。 4. **保存すると、触っていない行まで変わる。** エディターは独自の順序でファイルを書き、イベントの既定値も書き込むため、diff が編集より多くの変更を示すことがあります。