plugin.json
plugin.json はプラグインフォルダーの直下に置く記述ファイルです。エディターはこのファイルを使ってプラグインを見つけ、検査し、読み込みます。このファイルがないフォルダーはプラグインとして扱いません。
%APPDATA%\NPEditor\plugins\└─ road_tools\ ├─ plugin.json ├─ RoadTools.dll └─ RoadTools.pdb (任意)| 項目 | 必須 | 形式 | 説明 |
|---|---|---|---|
id | はい | 文字列 | プラグイン id です。下の「id のルール」に従います。フォルダー名と異なっていてもかまいません。 |
name | いいえ | 文字列 | プラグインマネージャーに表示される名前です。空の場合は id を使います。 |
version | はい | 文字列 | 自分のプラグインのバージョンです。x.y.z 形式です。後ろに -タグ や +タグ を付けられます (例 1.2.0-beta.1)。 |
sdk | はい | 文字列 | 必要な SDK バージョンの範囲です。下の「sdk 範囲」に従います。 |
dll | はい | 文字列 | 読み込む dll のパスです。plugin.json からの相対パスです。サブフォルダーは使えますが、.. と絶対パスは使えません。.dll で終わる必要があります。 |
entry | いいえ | 文字列 | エントリークラスの完全名 (名前空間.クラス) です。空の場合は、dll 内で INpEditorPlugin を実装した最初のクラス (完全名順) を使います。 |
description | いいえ | 文字列 | プラグインマネージャーの説明行とツールチップに表示されます。 |
author | いいえ | 文字列 | 作成者です。 |
- すべての項目は JSON の文字列です。文字列以外の値は空として扱います。
- 上にない項目は無視します。
//コメントと末尾のカンマを許可します。- 項目に誤りがあると、プラグインマネージャーに「エラー (ファイル)」と理由が表示されます。
id のルール
Section titled “id のルール”| ルール | 正しい | 誤り |
|---|---|---|
| 小文字で始まる | road_tools | RoadTools · 1road · _road |
小文字・数字・_ のみ | road_tools2 | road-tools · road tools |
. で区切りを入れられる | myteam.road_tools | myteam..road · road. |
- 同じ
idが 2 つある場合は、先に見つかったフォルダーのものだけを使います (プラグインフォルダーの順 → フォルダー名の順)。残りは「エラー (ファイル)」になります。 - エディター内では、このプラグインが登録したメニュー・モード・パネルの id の前に
ext.<id>.が付きます。 - 設定ファイル名 (
plugin_settings\<id>.json) とショートカットの保存にもidを使います。後でidを変更すると、保存済みの設定は引き継がれません。
sdk 範囲
Section titled “sdk 範囲”| 書き方 | 意味 | 使う場面 |
|---|---|---|
"^1.2" | 1.2.0 以上 2.0.0 未満 | 推奨。 使う機能の最小バージョンを書きます。 |
"1.2" | "^1.2" と同じ | |
"~1.2" | 1.2.0 以上 1.3.0 未満 | 1.2.x でのみ動かす必要があるとき |
">=1.0" | 1.0.0 以上 (上限なし) | 推奨しません。次の major でも読み込まれます。 |
">1.0" | 1.0.0 より大きい | |
"<1.5" | 1.5.0 未満 | 他の条件と組み合わせて使います。 |
"<=1.4" | 1.4.0 以下 | |
">=1.0 <1.5" | 1.0.0 以上 1.5.0 未満 | 空白で条件をつなげて書きます。 |
"=1.3.0" | 1.3.0 のみ | テスト用 |
- バージョンは 1〜3 区切りで書きます。
1は1.0.0、1.2は1.2.0です。 - バージョンの後ろの
-タグは比較から除外します。 - 範囲にエディターの SDK バージョンが含まれない場合は「バージョン不一致」になり、読み込まれません。エディターは動作を続けます。
どのバージョンを書くか
Section titled “どのバージョンを書くか”| 使う機能 | sdk |
|---|---|
メニュー・クイック追加・コマンド・インポート/エクスポート・パネル・モード・アクタータイプ・セルガード・対称・WorldChanged ・ Committed | ^1.0 |
上記 + ショートカット・Settings ・ Draw | ^1.1 |
上記 + AddSceneEvent | ^1.2 |
上記 + Scene ・ View ・項目の種類 ActorList | ^1.3 |
バージョンごとの内容は SDK 変更履歴 にあります。
同じ major の中では、SDK はメンバーを追加するだけで名前を変更しません。そのため
^1.0のプラグインは SDK 1.3 のエディターでも動作します。
最も短いファイルです。
{ "id": "my_first_plugin", "version": "0.1.0", "sdk": "^1.0", "dll": "MyFirstPlugin.dll"}すべての項目を使ったファイルです。
{ // マネージャーウィンドウに表示される名前 "id": "myteam.road_tools", "name": "도로 도구", "version": "1.2.0", "sdk": "^1.1", "dll": "bin/RoadTools.dll", "entry": "RoadTools.Plugin", "description": "선택 영역에 도로 깔기 · 가로등 · 단축키 Ctrl+Alt+R", "author": "도로팀",}