Palette picks a whole object on a click; mod documentation

This commit is contained in:
cthangover committed 2026-10-29 09:26:11 +01:00
1 parent c585960c61
commit bbdfe95de3
41 files changed
+1114 -179

No files matched your search

+57
View File
@@ -0,0 +1,57 @@
# 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/<id>.json` に保存されます。
- イベントは同じ MOD 内の、そのマップ自身のイベントファイル(`map_events/<マップ>/…`)へ書き込まれます。他のファイルや他の MOD がマップに加えたイベントは、破線の枠つきで薄く表示され、決して上書きされません。その id は使えません。
- ファイル一覧の隣の **+** で、選択中の MOD に新しいマップを作れます。保存すれば、ゲームはそれをすぐにシーンとして認識します。
- 書き込めるのは、フォルダーとしてインストールされた MOD だけです。
## うまくいかないとき
1. **プレイで「ゲームはシーンを知らない」と出る。** そのマップの MOD に `scenes/<id>.json` が必要です。
2. **イベントが選べない。** それは別のファイルか MOD のイベントです(破線の枠)。
3. **NPC が話さない。** イベントにシナリオがないか、起動がアクションキーになっていません。
4. **保存すると、触っていない行まで変わる。** エディターは独自の順序でファイルを書き、イベントの既定値も書き込むため、diff が編集より多くの変更を示すことがあります。