NarraLeaf
プラグイン

プラグイン

インストール可能なプラグインで NarraLeaf Studio とそれが構築するゲームを拡張します

プラグインは manifest.json と 1 つまたは 2 つの事前バンドル済みエントリーファイルを持つフォルダです。Studio にエディターパネル、アクション、キーバインド、ブループリントノード、ウィジェット、言語パックを追加できるほか、構築するゲームの内部で実行されるゲーム側コードを同梱できます。

プラグインには 2 つのエントリーターゲットがあり、プラグインはそのどちらか、または両方を宣言します。

ターゲット実行環境API用途
studioエディター(ワークスペースウィンドウ)narraleaf-studio/pluginパネル、アクション、キーバインド、ブループリントノードのエディターメタデータ、ウィジェット、言語パック
runtimeゲーム(Dev Mode(開発モード)、Preview(プレビュー)、Production(本番環境))narraleaf-studio/runtimeブループリントノードの実行、ウィジェットのレンダリング、ゲーム側ロジック

ブループリントノードは、公開されたゲームで動作するために両方のターゲットを必要とします。studio エントリーがそのエディターメタデータを登録し、runtime エントリーがゲームがそれを実行するときに動くコードを登録します。定義は共有モジュールに 1 度だけ書き、各エントリーからそれぞれ登録します。詳しくはプラグインを作るを参照してください。

能力は宣言されるものであり、発見されるものではない

プラグインのゲーム側コードが、ノードやウィジェットの登録を超えて到達できるもの――ストレージ、ストーリー変数、セーブデータ、オーバーレイ、ネイティブの子プロセス――は、すべて contributes で宣言しなければなりません。Studio はこの宣言からインストール時の権限プロンプトを導出します。宣言されていない能力は、失敗する呼び出しになるのではなく、API オブジェクトそのものに存在しません。runtime エントリーを書く前に能力モデルを読んでください。これがほかのすべてを形づくる、たった一つの要点です。

API は型のみです

narraleaf-studio は型のみのパッケージです。narraleaf-studio/pluginnarraleaf-studio/runtime の宣言を提供しますが、実装は読み込み時に Studio 側から供給されます。開発依存として追加し、バンドラーで両方の指定子を external としてマークしてください(テンプレートがこれを代わりに行います)。

yarn add -D narraleaf-studio

プラグインはサンドボックス化されていません。インストールされたプラグインは Studio 自身と同じアクセス権で実行され、そのゲーム側コードはプレイヤーのマシン上で実行されます。信頼できるプラグインのみをインストールしてください。プラグインがデフォルトのサーフェスを超えて宣言する内容については、Studio がインストール時に権限プロンプトを表示します。

このページの目次