NarraLeaf
ブループリント

ブループリント

ビジュアルプログラミング層——ブループリントとは何か、どこに宿るか、そして何を許されているか

ブループリントとは、ノードをエッジでつないだビジュアルプログラムであり、ゲームランタイムによって実行されます。プロジェクトはコードを書かずにブループリントで振る舞いを得ます——画面を開くボタン、セーブ一覧を表示するメニュー、続きがあるかどうかを知っているタイトル画面など。

スロットを埋める方法はブループリントだけではありません。スロットが持つのはレイヤーの並びで、そのうちの1枚をスクリプト——プロジェクトが所有し、Studio の外で編集する TypeScript のファイル——にできます。レイヤーはすべて動くので、同じスロットでスクリプトとグラフが隣り合います。ファイルの置き場所とスクリプトへの入り口はスクリプトにあります。

エディタで開いたグローバルブループリント。2つのノードがエッジで結ばれ、そのグラフのレイヤーと変数がそばに並んでいる

ノードを1つも置く前に、すべてのブループリントは3つの問いに答えます——誰がそれを所有するか、どんな種類のグラフか、そしてそれによってパレットがどのノードを提供するか。

オーナー

オーナーは、ブループリントがどこに宿るかを決めます。ブループリントの寿命と、それが何に到達できるかを決めるのもオーナーです。

オーナー所属先存続期間
globalMainプロジェクトアプリケーション
surfaceMain1つの Surfaceその Surface のインスタンス
widgetMain1つのウィジェットインスタンスそのウィジェットインスタンス
widgetValue1つのウィジェットの1つのプロパティそれを所有するバインディング
componentWidgetMain再利用可能なコンポーネントウィジェットコンポーネントの各インスタンス
sharedAsset共有ブループリントアセットそれをインポートするもの
storyActionactionvaluecondition いずれかのモードの1つのストーリーブループリントそれを呼び出す行

widgetMain ブループリントは、Element 入力を取らない Self ノードを通じて自分自身のウィジェットに作用します。別のウィジェットに作用させるには、Element 参照を Element ノードに接続します。この区別はノードカタログ全体を貫いており、パレットについて最初に理解すべきことです。

グラフの種類

すべてのグラフはグラフの種類を宣言します。この種類はラベルではなく、ルールの集合です。

種類副作用のあるノードエントリーノードウィジェット UI からバインド可能か
eventイベントヘッド(InitOn Click など)。必須ではないはい
function不可Function Entry。必須いいえ
macro不要いいえ

latent(グラフの実行を一時停止させるもの)ノード——Delay や一度のセーブ書き込みなど——は function グラフには置けません。function は呼び出し元に同期的に値を返すため、保留中の結果を渡す先がありません。

Blueprint Value

Blueprint Value とは、1つのプロパティにバインドされた widgetValue ブループリントのことで、プロパティは直接記述する代わりに計算によって得られます。現在対応しているのは nl.textprops.textnl.buttonprops.labelnl.frameprops.paramsnl.sliderprops.value です。

そのパレットは意図的に狭く絞られています——イベントヘッド、latent でないフロー、純粋な Data と Math、ローカル変数へのアクセス、Element リテラル、そして純粋な読み取りだけです。書き換えも、ナビゲーションも、持続変数も、latent ノードもありません。世界を変えられる値プロバイダーは、世界が変わった瞬間に自分自身へ再入してしまうからです。

エディタのキャンバスはレイアウトツールです。値バインディングをプレビューできる程度にはブループリントを解決しますが、ゲームは実行しません——実行中のプレイスルーを必要とするノードには、そこで対話する相手がありません。ブループリントの挙動は Dev Mode で確認してください。

次へ

組み込みノードの代わりに自作のノードを配布するには、プラグイン API の blueprintNodes を参照してください。

このページの目次