変数
変数を宣言し、読み取り、書き込み、そして Persistent とストーリーのストアにアクセスするノードです
グラフが変数に触れる方法は、これらのノードを経由することだけです。どのスコープが存在するか、それぞれがどれくらい生きるか、何がセーブを生き延びるかは Variables のページで扱っており、このページはシグネチャを説明します。
規約
Get VarとSet Varは、選択した変数からvalueピンの型を投影します。 ピン自体はanyと宣言されていますが、カード上ではVariableで選んだものの型を取り、エディターはピンのラベル、接続のプレビュー、検証にこの投影された型を使用します。- 後から型を変更しても、接続されたエッジは保持されます。
Varの Data type を変更し、既存のエッジがもう合わなくなっても、そのエッジはそのまま残ります。検証は接続を静かに削除するのではなく、型の不一致として報告します。どのエッジを繋ぎ直すかは作者が決めます。 - 純粋かどうかが、ノードがどこで提供されるかを決めます。
VarとGet Varは pure であり、functionグラフで使用できる唯一の Variables ノードです。残りはeventとmacroグラフ用の exec ノードで、Persistent のペアはさらにその上で latent であるため、Blueprint Value からも除外されます。 - Blueprint Value は宣言できません。
widgetValueの宿主にはVarノードが一切ありません。それでもGet VarとSet Varを通じて、自分がアクセスできる変数を読み書きできます。 - Scene と Saved のノードは Story Action ブループリントに属し、実行中のストーリーが存在しない場所ではどこでも実行時に失敗します。
Var
blueprint.local.declareVar · Pure
宣言であり、フローの1ステップではありません——また、このページで唯一ピンを持たないノードです。キャンバスのどこに置いても構いません。実行時は実行が始まる前にブループリント内のすべての Var を収集し、各 Variable ドロップダウンが示すのはこれらの宣言です。
カード上のフィールド
| フィールド | 内容 |
|---|---|
name | 変数の名前で、各 Variable ドロップダウンに表示されるものと同じです。 |
valueType | データ型です。String、Integer、Float、Boolean、JSON、Array、Timer、AnimationToken、または Any のいずれかです。 |
defaultValue | 初期値です。ストアにディープコピーされるため、実行時に変数を変更しても、作者が設定した既定値が書き換わることはありません。 |
Any を選ぶと、Default は無効化された null に固定されます。Any の変数は常に null から始まります——妥当な既定値の元になる型が存在しないためです。何かに読み取られる前に、Set Var で値を与えてください。
Get Var
blueprint.local.get · Pure
現在のブループリントがアクセスできる変数を読み取ります。pure であるため exec ピンを一切持ちません。チェーン上の1ステップではなく、何かに読み取られたときに解決される値です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | any | 選択した変数の型に投影されます。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
variableId | 読み取る変数です。ドロップダウンにはこのブループリントがアクセスできるすべてが列挙され、同名の項目にはスコープのヒントが付きます。 |
Set Var
blueprint.local.set
現在のブループリントがアクセスできる変数に書き込み、その後 next を通じて処理を継続します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | in · data | any | 選択した変数の型に投影されます。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
variableId | 書き込む変数です。 |
Get Persistent
blueprint.persistent.get · Latent
ホストが管理するストレージから、プロジェクトレベルの Persistent 変数を読み取ります。このストレージは非同期であるため latent であり、同じ理由から pure な読み取りではなく exec ノードになっています——チェーン上に位置し、読み取りが完了すると結果を value に発行します。まだその変数に何も保存されていない場合、得られるのは空の値ではなく作者が設定した既定値です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | out · data | any | 保存されている値、またはその変数の既定値です。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
persistentVariableId | 読み取る Persistent 変数です。 |
Set Persistent
blueprint.persistent.set · Latent
ホストが管理するストレージを通じて Persistent 変数を書き込み、その後 next を通じて処理を継続します。書き込みは完了を待つため、next に到達した時点で値は確定しています。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | in · data | any | 保存する値です。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
persistentVariableId | 書き込む Persistent 変数です。 |
Get Scene Var
blueprint.scene.get
実行中のストーリーのシーン単位のローカルストアから、Scene 変数を読み取ります。exec ピンがある点に注意してください。Get Var と異なり、ストーリー変数の読み取りはチェーン上の1ステップであり、value は next の後になって初めて意味を持ちます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | out · data | any | その変数の現在の値です。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
sceneVariableId | 読み取る Scene 変数です。 |
Set Scene Var
blueprint.scene.set
Scene 変数に書き込み、その後 next を通じて処理を継続します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | in · data | any | 書き込む値です。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
sceneVariableId | 書き込む Scene 変数です。 |
Get Saved Var
blueprint.saved.get
実行中のストーリーのセーブストア——セーブファイルが持ち出す方のストア——から、Saved 変数を読み取ります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | out · data | any | その変数の現在の値です。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
savedVariableId | 読み取る Saved 変数です。 |
Set Saved Var
blueprint.saved.set
Saved 変数に書き込み、その後 next を通じて処理を継続します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
next | out · exec | — | |
value | in · data | any | 書き込む値です。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
savedVariableId | 書き込む Saved 変数です。 |