NarraLeaf

変数

変数を宣言し、読み取り、書き込み、そして Persistent とストーリーのストアにアクセスするノードです

グラフが変数に触れる方法は、これらのノードを経由することだけです。どのスコープが存在するか、それぞれがどれくらい生きるか、何がセーブを生き延びるかは Variables のページで扱っており、このページはシグネチャを説明します。

規約

  • Get Var と Set Var は、選択した変数から value ピンの型を投影します。 ピン自体は any と宣言されていますが、カード上では Variable で選んだものの型を取り、エディターはピンのラベル、接続のプレビュー、検証にこの投影された型を使用します。
  • Persistent と Saved のペアも、変数の宣言から value ピンの型を投影します。 Number(数値)の変数のピンは float になり、+ などの数値入力に接続できます。
  • 後から型を変更しても、接続されたエッジは保持されます。 Var の Data type を変更し、既存のエッジがもう合わなくなっても、そのエッジはそのまま残ります。検証は接続を静かに削除するのではなく、型の不一致として報告します。どのエッジを繋ぎ直すかは作者が決めます。
  • Persistent のペアは latent です。 Get Persistent と Set Persistent は読み書きが終わるまでグラフを一時停止させるため、Blueprint Value、インラインのストーリー値、分岐条件では提供されません。
  • Blueprint Value は宣言できません。 widgetValue の宿主には Var ノードが一切ありません。それでも Get Var と Set Var を通じて、自分がアクセスできる変数を読み書きできます。
  • Scene のノードは Story Action ブループリントに属します。 Get Scene Var と Set Scene Var は他のどこにも提供されません。Saved のペアはすべてのブループリントに提供されます。Story Action ブループリントでは実行中のストーリーに、それ以外では実行中のゲームにアクセスします。Blueprint Value では Get Saved Var を使え、Set Saved Var は使えません。表示する値は変数が書き込まれるたびに更新されます。

Var

blueprint.local.declareVar · Pure

宣言であり、フローの1ステップではありません——また、このページで唯一ピンを持たないノードです。キャンバスのどこに置いても構いません。実行時は実行が始まる前にブループリント内のすべての Var を収集し、各 Variable ドロップダウンが示すのはこれらの宣言です。

カード上のフィールド

フィールド内容
name変数の名前で、各 Variable ドロップダウンに表示されるものと同じです。
valueTypeデータ型です。文字列(string)、整数(integer)、数値(float)、真偽値(boolean)、JSON(json)、リスト(array)、タイマー(Timer)、アニメーション(AnimationToken)、または任意の値(any)のいずれかです。
defaultValue初期値です。ストアにディープコピーされるため、実行時に変数を変更しても、作者が設定した既定値が書き換わることはありません。

任意の値(any)を選ぶと、Default は無効化された null に固定されます。任意の値の変数は常に null から始まります——妥当な既定値の元になる型が存在しないためです。何かに読み取られる前に、Set Var で値を与えてください。

Get Var

blueprint.local.get · Pure

現在のブループリントがアクセスできる変数を読み取ります。pure であるため exec ピンを一切持ちません。チェーン上の1ステップではなく、何かに読み取られたときに解決される値です。

ピン方向型備考
valueout · dataany選択した変数の型に投影されます。

カード上のフィールド

フィールド内容
variableId読み取る変数です。ドロップダウンにはこのブループリントがアクセスできるすべてが列挙され、同名の項目にはスコープのヒントが付きます。

Set Var

blueprint.local.set

現在のブループリントがアクセスできる変数に書き込み、その後 next を通じて処理を継続します。

ピン方向型備考
inin · exec—
nextout · exec—
valuein · dataany選択した変数の型に投影されます。

カード上のフィールド

フィールド内容
variableId書き込む変数です。

Get Persistent

blueprint.persistent.get · Latent

ホストが管理するストレージから、プロジェクトレベルの Persistent 変数を読み取ります。このストレージは非同期であるため latent であり、同じ理由から pure な読み取りではなく exec ノードになっています——チェーン上に位置し、読み取りが完了すると結果を value に発行します。まだその変数に何も保存されていない場合、得られるのは空の値ではなく作者が設定した既定値です。

ピン方向型備考
inin · exec—
nextout · exec—
valueout · dataany保存されている値、またはその変数の既定値です。選択した変数の型に投影されます。

カード上のフィールド

フィールド内容
persistentVariableId読み取る Persistent 変数です。

Set Persistent

blueprint.persistent.set · Latent

ホストが管理するストレージを通じて Persistent 変数を書き込み、その後 next を通じて処理を継続します。書き込みは完了を待つため、next に到達した時点で値は確定しています。

ピン方向型備考
inin · exec—
nextout · exec—
valuein · dataany保存する値です。選択した変数の型に投影されます。

カード上のフィールド

フィールド内容
persistentVariableId書き込む Persistent 変数です。

Get Scene Var

blueprint.scene.get

実行中のストーリーのシーン単位のローカルストアから、Scene 変数を読み取ります。exec ピンがある点に注意してください。Get Var と異なり、ストーリー変数の読み取りはチェーン上の1ステップであり、value は next の後になって初めて意味を持ちます。

ピン方向型備考
inin · exec—
nextout · exec—
valueout · dataanyその変数の現在の値です。

カード上のフィールド

フィールド内容
sceneVariableId読み取る Scene 変数です。

Set Scene Var

blueprint.scene.set

Scene 変数に書き込み、その後 next を通じて処理を継続します。

ピン方向型備考
inin · exec—
nextout · exec—
valuein · dataany書き込む値です。

カード上のフィールド

フィールド内容
sceneVariableId書き込む Scene 変数です。

Get Saved Var

blueprint.saved.get

実行中のゲームのセーブストア(セーブファイルが持ち出す方のストア)から、Saved 変数を読み取ります。画面はゲームが始まる前、たとえばタイトル画面でも読み取れます。そのとき value はその変数の宣言済みのデフォルト値で、found は false です。

Blueprint Value の中では、変数が書き込まれるたびにウィジェットが新しい値を表示します。書き込みがストーリーの行、画面のブループリント、セーブの読み込みのどれによるものでも同じです。

ピン方向型備考
inin · exec—
nextout · exec—
valueout · dataanyその変数の現在の値です。found が false のときは宣言済みのデフォルト値です。変数の宣言の型に投影されます。
foundout · databoolean実行中のゲームがその変数を持っていないとき false です。Story Action ブループリントでは常に true です。

カード上のフィールド

フィールド内容
savedVariableId読み取る Saved 変数です。

Set Saved Var

blueprint.saved.set

Saved 変数に書き込み、その後 next を通じて処理を継続します。

Story Action ブループリントの外では実行中のゲームに書き込み、ゲームが実行されていないとき、変数が宣言されていないとき、または値をセーブに保存できないときに失敗します。書き込んだ値は次のセーブに含まれます。ストーリーの undo はこの書き込みを取り消さず、すでに画面に表示されているストーリーの内容もこれによって変わることはありません。

ピン方向型備考
inin · exec—
nextout · exec—
valuein · dataany書き込む値です。変数の宣言の型に投影されます。

カード上のフィールド

フィールド内容
savedVariableId書き込む Saved 変数です。

このページの目次