コンテンツにスキップ

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 の文字列です。文字列以外の値は空として扱います。
  • 上にない項目は無視します。
  • // コメントと末尾のカンマを許可します。
  • 項目に誤りがあると、プラグインマネージャーに「エラー (ファイル)」と理由が表示されます。
ルール正しい誤り
小文字で始まるroad_toolsRoadTools · 1road · _road
小文字・数字・_ のみroad_tools2road-tools · road tools
. で区切りを入れられるmyteam.road_toolsmyteam..road · road.
  • 同じ id が 2 つある場合は、先に見つかったフォルダーのものだけを使います (プラグインフォルダーの順 → フォルダー名の順)。残りは「エラー (ファイル)」になります。
  • エディター内では、このプラグインが登録したメニュー・モード・パネルの id の前に ext.<id>. が付きます。
  • 設定ファイル名 (plugin_settings\<id>.json) とショートカットの保存にも id を使います。後で id を変更すると、保存済みの設定は引き継がれません。
書き方意味使う場面
"^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 バージョンが含まれない場合は「バージョン不一致」になり、読み込まれません。エディターは動作を続けます。
使う機能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": "도로팀",
}