NarraLeaf

変数

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

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

規約

  • Get VarSet Var は、選択した変数から value ピンの型を投影します。 ピン自体は any と宣言されていますが、カード上では Variable で選んだものの型を取り、エディターはピンのラベル、接続のプレビュー、検証にこの投影された型を使用します。
  • 後から型を変更しても、接続されたエッジは保持されます。 Var の Data type を変更し、既存のエッジがもう合わなくなっても、そのエッジはそのまま残ります。検証は接続を静かに削除するのではなく、型の不一致として報告します。どのエッジを繋ぎ直すかは作者が決めます。
  • 純粋かどうかが、ノードがどこで提供されるかを決めます。 VarGet Var は pure であり、function グラフで使用できる唯一の Variables ノードです。残りは eventmacro グラフ用の exec ノードで、Persistent のペアはさらにその上で latent であるため、Blueprint Value からも除外されます。
  • Blueprint Value は宣言できません。 widgetValue の宿主には Var ノードが一切ありません。それでも Get VarSet Var を通じて、自分がアクセスできる変数を読み書きできます。
  • Scene と Saved のノードは Story Action ブループリントに属し、実行中のストーリーが存在しない場所ではどこでも実行時に失敗します。

Var

blueprint.local.declareVar · Pure

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

カード上のフィールド

フィールド内容
name変数の名前で、各 Variable ドロップダウンに表示されるものと同じです。
valueTypeデータ型です。StringIntegerFloatBooleanJSONArrayTimerAnimationToken、または Any のいずれかです。
defaultValue初期値です。ストアにディープコピーされるため、実行時に変数を変更しても、作者が設定した既定値が書き換わることはありません。

Any を選ぶと、Default は無効化された null に固定されます。Any の変数は常に 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ステップであり、valuenext の後になって初めて意味を持ちます。

ピン方向備考
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 変数を読み取ります。

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

カード上のフィールド

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

Set Saved Var

blueprint.saved.set

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

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

カード上のフィールド

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

このページの目次