データ
リテラル、型変換、型判定、そしてグラフを組み立てるためのあらゆる文字列・配列・オブジェクト・JSON 操作
Data は、ブループリントが計算に使う値を保持するカテゴリです。定数が必要なとき、値が想定と違う型で届いたとき、あるいは文字列・配列・JSON ドキュメントを分解する必要があるときに使います。ここにあるノードのほとんどは実行ピンを持ちません——Data ノードは、その出力に配線された側から読み取られます。Memoだけが例外であり、それについてはこのページの末尾で説明します。
値の型
以下のピンには次の型が現れます。カード、型の選択、変数、メッセージにはインターフェース上の名前が表示されます。括弧内は型 ID で、ドキュメントのピン表、コマンドラインツール、プロジェクトのファイルではこちらで書かれます。
| 型 | 内容 | 生成元 |
|---|---|---|
文字列(string) | テキスト。 | String、およびすべての文字列ノード。 |
整数(integer) | 小数部のない数。 | Integer、および各種の長さ・添字・件数。 |
数値(float) | 小数を含みうる数。 | Float、To Float、Parse Float。 |
真偽値(boolean) | 真または偽。 | Boolean、およびすべての型判定と文字列判定。 |
JSON(json) | 任意の JSON 値——object、array、string、number、boolean、nullのいずれか。 | JSON、Parse JSON、Get JSON Field、Make Object。 |
リスト(array) | JSON 配列。ただし独立した型として扱われます。 | Make Array、配列を返すArray …ノード群、Object Values。 |
型のリスト(array<T>) | 要素がすべて型Tである配列。カードではその型のリストとして表示されます(Ending list(エンディングのリスト)、string list(文字列のリスト)など)。 | Get Endings、Get History、Split、Object Keys、Array Range。 |
構造体の名前(struct:<id>) | フィールドが宣言されたオブジェクト。エンディングやセーブの項目など。カードには構造体の名前が表示されます(Ending(エンディング)など)。構造体を参照してください。 | エンディングに対するArray First、List のItem Click、エンディングを反復するFor Each。 |
任意の値(any) | 何であってもよい値。 | Memo、およびカードで選んだものに応じて型が決まるピン(Get Field、Get Varなど)。選ぶ前はanyです。 |
色(RGBAColor) | { r, g, b, a }。 | Color。 |
2 次元ベクトル(Vector2D) | { x, y }。 | Vector2D、Make Vector2D、Rect Center、Get Center。 |
矩形(Rect) | { x, y, width, height }。 | Rect、Make Rect、Get Bounds、Get Measured Rect。 |
他のカテゴリのピンには次の型も現れます。
| 型 | 内容 | 参照 |
|---|---|---|
要素(element)、ボタンの要素(element:nl.button)など | インターフェース上の 1 つの要素。ウィジェットの種類が決まっている場合は「ウィジェット名の要素」と表示されます。 | Element |
画像(ImageAsset、ImageAsset|null) | 1 つの画像アセット。null 許容の形は空にもなります。 | Image |
タイマー(Timer) | Delayが返すトークン。 | Flow |
アニメーション(AnimationToken) | Animate Propertyが返すトークン。 | Displayable |
サウンド(SoundHandle) | Play Soundが再生しているクリップ。 | Sound |
レスポンス(ResponseBody) | Fetchが取得したレスポンス。 | Network |
セーブ枠(SaveSlot) | 1 つのセーブ。 | Game |
2つのデータピン間の接続は、型が完全に一致する場合、または次のいずれかが成り立つ場合に許可されます。
| 元 | 先 | 理由 |
|---|---|---|
integer | float | すべての整数は浮動小数点数です。 |
integer、float | string | 入力を読み取る際に、数値はテキストへ変換されます。これは値を書き換える唯一の暗黙変換です——それ以外の許可された接続はすべて値をそのまま通します。 |
array | json | 配列は JSON 値そのものです。 |
array<T> | array、json | 要素の型がわかっている配列も配列です。 |
array<T> | array<U> | TがUに接続できる場合。 |
struct:<id> | json | 構造体は JSON オブジェクトです。 |
struct:<id> | 別の構造体 | 両方のフィールドが同じ名前・同じ順序・同じ型の場合。 |
Rect | json | 構造化された値についての規則ではなく、移行のために許されている経路です——下記参照。 |
any | 任意の型 | anyはどちらの方向にも一致します。 |
| 任意の型 | any |
他のカテゴリの型も同じ形でのみ広がります——elementはどのelement:nl.…ピンにも接続でき、その逆方向にも接続できます。element系のピンはanyとはどちらの方向にも接続できません。ImageAssetとstringはどちらもImageAsset|null入力に届きます。
それ以外はすべて拒否されます。作者が動くはずだと思い込みがちな逆方向の接続も含めてです。
json→array、json→Rect。 どの拡張規則も一方向にしか成り立ちません。任意のオブジェクトが矩形であるとは限りません。json→ 構造体。 フィールドが宣言されていないオブジェクト(Parse JSONの結果など)はGet Fieldに接続できません。Get JSON Fieldで読み取ってください。float→integer。To Integerを挟んでください。これはゼロ方向に切り捨てます。string→integerまたはfloat。Parse Int、Parse Float、To Integer、To Floatのいずれかを挟んでください。boolean→string、json→string。 テキストへ暗黙変換されるのは数値だけです。To StringまたはStringify JSONを挟んでください。string、integer、float、boolean→json。json入力に暗黙に届く型はarrayとRectだけです。To JSONを挟んでください。RGBAColor→json、Vector2D→json。 これらはそれぞれ独立した構造化型であり、JSON ドキュメントではありません。Break Vector2Dで分解するか、Make Objectでドキュメントを組み立ててください。
Rect → jsonは、Rectが独立した型になる前に書かれたグラフのために存在します。Rectが型になるまでは、RectリテラルとGet Boundsはどちらもjsonを公開していました。そのため当時作成された矩形は今もGet JSON Fieldへ渡せて動作し続けます。Vector2Dはjsonピンであったことが一度もなく、狭いままです。
arrayはjson入力に渡せるが、逆方向は決してできません。たまたま配列を保持しているjsonの値(Parse JSON、Get JSON Field)は、Array Lengthや List のSet List Contentのようなarray入力には接続できません。FlowのFor Eachはjsonを受け取るため、それを使った反復は引き続き機能します。Array …ノード群はそうはいきません。
array<T>と構造体の型は、どのピンが接続できるか、カードに何が表示されるかを決めるもので、値そのものは変えません。ゲームの実行中、エンディングは同じオブジェクトのままです。以前のバージョンのグラフで成り立っていた接続は、引き続き成り立ちます。
規約
- このページのノードは、1つを除いてすべて純粋です。 接続できる実行ピンがないため、Data ノードは実行経路の上に置くことができません。その出力は、消費側が読み取るときに計算され、次の読み取りで再計算されます。
Memoは例外です——値をそのまま保持することは、純粋なノードにはできないことそのものであるため、これは実行ノードになっています。 - Blueprint Value グラフはこれらをすべて受け付けます。
Memoも含まれます。 - インプレースでの変更は存在しません。 書き込みを行うノードは、出力ピンに新しい値を返し、入力にはまったく手を加えません。
- カード上のリテラルが存在するのは
string、integer、float、booleanのピンだけです。jsonまたはarrayの入力にはカード上のエディタが存在しません——JSONリテラル、またはMake Object/Make Arrayノードを渡してください。 - 未配線の入力はエラーではありません。 そのピンのカード上のリテラルを読み取り、リテラルがなければ何も読み取りません。そして各ノードはそれを正規化します——欠けた配列は空として、欠けた文字列は
""として、欠けた数値は0として読み取られます。 - 純粋なノードの連鎖は、最大32段まで解決されます。 それを超えると、読み取りは何も返さず、静かに終わります。
- 一部のノードは同じ種類のノードとしてまとめられます。 パレットを一覧するとき、次の組はそれぞれ 1 行で表示されます:リテラルの
StringからRectまで(Literal(リテラル))、変換のTo StringからTo JSONまで(Convert Type(型を変換))、型判定のIs StringからIs Nullまで(Check Type(型を調べる))、Trim、Trim Start、Trim End(Trim Whitespace(空白を取り除く))、To Upper Case、To Lower Case、Capitalize(Change Case(大文字・小文字を変える))、Replace、Replace All(Replace Text(文字列を置換))、Pad Start、Pad End(Pad Text(文字で埋める))。検索すると各ノードが自分の名前で表示されます。配置したカードは、タイトルの横の ▾ で同じ種類の別のノードに切り替えられます。同じ種類のノードを参照してください。
Array Push、Set JSON Field、Remove JSON Field、そしてこのページの他のすべての書き込みノードは、新しい値を返し、入力にはまったく手を加えません。Get Var → Array Pushと配線しただけでは何も変わりません——結果をSet Varへ配線し直す必要があります。Variablesを参照してください。
リテラル
リテラルは1つの出力ピンと1つのカード上のフィールドを持ちます。その型は選んだノードによって固定され、それによってグラフの残りの部分が型チェックできるようになります。
String
blueprint.data.stringLiteral · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | string |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | テキスト。 |
Integer
blueprint.data.integerLiteral · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | integer |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | 数値。読み取り時に整数へ切り捨てられます。 |
Float
blueprint.data.floatLiteral · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | float |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | 数値。有限でない値は0として読み取られます。 |
Boolean
blueprint.data.booleanLiteral · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | boolean |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | True / False のドロップダウン。 |
Null
blueprint.data.nullLiteral · Pure
カード上のフィールドを持たない唯一のリテラルです——nullについて設定できることは何もありません。その出力の型はjsonであるため、あらゆるjsonまたはanyの入力に届きます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | json | 常にnull。 |
JSON
blueprint.data.jsonLiteral · Pure
カードにはルートの型と概要が表示されます。編集を開始すると、オブジェクトには名前付きフィールド、配列には順序付きの項目を持つツリー形式のフォームが開きます。新規ノードは空のオブジェクトから始まります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | json |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | ドキュメント。ツリーとして編集します。書き込まれる内容はすべて JSON セーフです。 |
Color
blueprint.data.colorLiteral · Pure
カラーピッカーで編集し、8桁の RGBA 16進数として表示されます。出力は常に正規化された{ r, g, b, a }のレコードです——r、g、bはバイト値、aは0から1。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | RGBAColor |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | カラーピッカー。 |
Vector2D
blueprint.data.vector2dLiteral · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | Vector2D |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | 固定されたx / yの数値スキーマ。余分なフィールドは拒否され、欠けているフィールドや数値でないフィールドは0として読み取られます。 |
Rect
blueprint.data.rectLiteral · Pure
ColorやVector2Dと同様に、Rectもそれ自身の型です。それらと異なり、Rectはjsonにも広がるため、あらゆるjson入力に接続できます——理由については値の型の注記を参照してください。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | Rect |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | 固定されたx / y / width / heightの数値スキーマ。Vector2Dと同じ方法で検証されます。 |
Number
blueprint.data.numberLiteral · Pure
旧式の数値定数であり、新しいグラフに追加できないようパレットから非表示になっています。旧いグラフの解決を保つために登録だけは残されています。新規にはFloatを使ってください。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | float |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | 数値。 |
Literal
blueprint.data.literal · Pure
旧式の型なし定数であり、これもパレットから非表示になっています。そのany型の出力はあらゆるものと型チェックを通ってしまいます——それこそが、型付きのリテラル群がこれを置き換えた理由です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | out · data | any |
カード上のフィールド
| フィールド | 内容 |
|---|---|
value | 型のない値。 |
変換
これらは、接続ルールがあなたを導く先のノード群です。どれも失敗しません——読み取れない入力は、エラーではなくその型のゼロ値を生成します。
To String
blueprint.string.toString · Pure
nullと未配線の入力はどちらも""として読み取られます。オブジェクトや配列は JSON テキストにシリアライズされます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | string |
To Integer
blueprint.data.toInteger · Pure
ゼロ方向に切り捨てます——-2.7は-3ではなく-2になります。trueは1、falseは0として読み取られ、数値の文字列は受け付けられます。それ以外はすべて0になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | integer |
To Float
blueprint.data.toFloat · Pure
To Integerと同じ受け付け方ですが、切り捨ては行いません。有限の数値でない値は0になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | float |
To Boolean
blueprint.data.toBoolean · Pure
文字列はトリムして小文字化したうえで照合されます——""、"false"、"0"、"no"は偽、"true"、"1"、"yes"は真であり、それ以外の空でない文字列はすべて真になります。0と有限でない数値は偽になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
To JSON
blueprint.data.toJson · Pure
文字列は JSON としてパースされ、パースできなければ元の文字列のまま保たれます——そのためこのノードがテキストを壊すことはありません。それ以外の値は JSON セーフな形にされます——有限でない数値や循環参照はnullに、関数やシンボルはそのテキスト形式になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | json |
Parse Int
blueprint.data.parseInt · Pure
10進数として扱われ、先頭の数値部分が採用されます——"12px"は12になります。数字がまったくない場合は0になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | integer |
Parse Float
blueprint.data.parseFloat · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | float |
Parse JSON
blueprint.data.parseJson · Pure
厳密です——パースできないテキストと空文字列は、どちらもnullになります。元のテキストを残したいときは代わりにTo JSONを使ってください。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | json |
Stringify JSON
blueprint.data.stringifyJson · Pure
未配線の入力はテキスト"null"になります。シリアライズできない値は""になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | json | |
result | out · data | string |
型判定
それぞれがanyを受け取り、実際に届いた値についての問いに答えます——これが、jsonやanyのピンが本当は何を運んでいるかを知る方法です。
Is String
blueprint.data.isString · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Is Number
blueprint.data.isNumber · Pure
有限の数値だけが対象です——NaNと無限大は偽であり、数値の文字列も偽になります。これは型について尋ねるものであり、パース可能かどうかについてではありません。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Is Boolean
blueprint.data.isBoolean · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Is Array
blueprint.data.isArray · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Is Object
blueprint.data.isObject · Pure
配列ではない、nullでないオブジェクトに対して真になります。配列に答えるのはこれではなくIs Arrayです。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Is Null
blueprint.data.isNull · Pure
nullに対して真になり、また何にも解決されなかった入力に対しても真になります——未配線のピンはここでは null として読み取られます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Not Null
blueprint.data.notNull · Pure
Is Nullの否定であり、これによってNotをぶら下げる必要がなくなります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
Is Empty Value
blueprint.data.isEmptyValue · Pure
null、""、空の配列、空のオブジェクトに対して真になります。0とfalseは空ではなく値であり、どちらも偽になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | any | |
result | out · data | boolean |
文字列
ここでのすべてのvalue入力はカード上のリテラルを受け付けるため、一度きりの文字列のために専用のリテラルノードを用意する必要はありません。添字は0始まりであり、範囲外の添字は拒否されるのではなくクランプされます。
Concat
blueprint.string.concat · Pure
その入力を、ピンの順に、間に何も挟まずに連結します。カードには入力追加コントロールがあり、aとbを超えてさらにstring入力を追加できます。以下のシグネチャは、最初から存在する2つだけを示しています。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
a | in · data | string | カード上のリテラルを受け付けます。 |
b | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Format
blueprint.string.format · Pure
テンプレート内の{name}を、valuesの対応するフィールドで置き換えます。valuesが配列の場合は{0}、{1}……で置き換えます。一致しないプレースホルダーは空になり、valuesがオブジェクトでも配列でもない場合はすべてのプレースホルダーが空になります。
Format はパレットにある唯一の整形ノードで、Blueprint Value と関数でも使えます。プレイヤーの言語のテンプレートを使うには、Translation Key Text を template に配線します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
template | in · data | string | カード上のリテラルを受け付けます。 |
values | in · data | json | JSONリテラル、Make Object、または {0}、{1}……用のMake Arrayを配線してください。 |
result | out · data | string |
Length
blueprint.string.length · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
length | out · data | integer |
Is Empty
blueprint.string.isEmpty · Pure
長さがゼロであることです。空白だけの文字列は空ではありません——それはIs Blankが扱います。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Is Blank
blueprint.string.isBlank · Pure
空である、または空白しか含みません。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Trim
blueprint.string.trim · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Trim Start
blueprint.string.trimStart · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Trim End
blueprint.string.trimEnd · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
To Upper Case
blueprint.string.toUpperCase · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
To Lower Case
blueprint.string.toLowerCase · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Capitalize
blueprint.string.capitalize · Pure
先頭の文字だけを大文字にし、それ以外はそのまま残します——タイトルケースではありません。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Equals
blueprint.string.equals · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
a | in · data | string | カード上のリテラルを受け付けます。 |
b | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Equals Ignore Case
blueprint.string.equalsIgnoreCase · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
a | in · data | string | カード上のリテラルを受け付けます。 |
b | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Contains
blueprint.string.contains · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Starts With
blueprint.string.startsWith · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Ends With
blueprint.string.endsWith · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Index Of
blueprint.string.indexOf · Pure
startから前方へ検索し、一致がない場合は-1を返します。startは文字列の範囲内にクランプされるため、範囲外の値は失敗するのではなく先頭または末尾から検索されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
start | in · data | integer | カード上のリテラルを受け付けます。既定値は0。 |
index | out · data | integer |
Last Index Of
blueprint.string.lastIndexOf · Pure
末尾から後方へ検索します。startピンは存在しません——それがIndex Ofとの唯一の非対称点です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
index | out · data | integer |
Count
blueprint.string.count · Pure
重ならない出現回数を数えます。空のsearchは、文字列の長さではなく0になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
count | out · data | integer |
Char At
blueprint.string.charAt · Pure
文字列の範囲外の添字は、エラーではなく""になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
index | in · data | integer | カード上のリテラルを受け付けます。 |
char | out · data | string |
Substring
blueprint.string.substring · Pure
2番目のピンは終了位置ではなく長さです。どちらも文字列の範囲内にクランプされ、未配線のlengthはstart以降のすべてを取ります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
start | in · data | integer | カード上のリテラルを受け付けます。 |
length | in · data | integer | カード上のリテラルを受け付けます。 |
result | out · data | string |
Insert
blueprint.string.insert · Pure
indexは文字列の範囲内にクランプされ、読み取れない添字は末尾に追加されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
index | in · data | integer | カード上のリテラルを受け付けます。 |
insert | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Replace
blueprint.string.replace · Pure
最初の出現だけを置き換えます。空のsearchは、あらゆる位置に挿入するのではなく、値をそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
replacement | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Replace All
blueprint.string.replaceAll · Pure
すべての出現を置き換えます。searchはパターンではなく単なるテキストです——空のsearchは、この場合も値をそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
search | in · data | string | カード上のリテラルを受け付けます。 |
replacement | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Repeat
blueprint.string.repeat · Pure
countは0–10000にクランプされるため、暴走した数値が無制限な文字列を作ることはありません。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
count | in · data | integer | カード上のリテラルを受け付けます。 |
result | out · data | string |
Pad Start
blueprint.string.padStart · Pure
lengthは追加する文字数ではなく、目標となる合計の長さです。すでに十分な長さの文字列は変更されずに返ります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
length | in · data | integer | カード上のリテラルを受け付けます。 |
pad | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Pad End
blueprint.string.padEnd · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
length | in · data | integer | カード上のリテラルを受け付けます。 |
pad | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Split
blueprint.string.split · Pure
結果は文字列の配列です。Array …ノード群にも、Join、For Each、その他のjson入力にも接続できます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
separator | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | array<string> |
Join
blueprint.string.join · Pure
arrayを受け取るArray Joinとは異なり、これはjsonを受け取ります。valuesが配列でない場合は""になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
values | in · data | json | |
separator | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Matches Regex
blueprint.string.matchesRegex · Pure
patternは、区切り記号もフラグも付かない正規表現のソースそのものです。コンパイルできないパターンは、例外を投げるのではなくfalseになります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
pattern | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Extract Regex
blueprint.string.extractRegex · Pure
パターンにキャプチャグループがある場合はその最初のものを、なければマッチ全体を返します。マッチしない場合、またはコンパイルできないパターンの場合は""になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
pattern | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Normalize Line Breaks
blueprint.string.normalizeLineBreaks · Pure
\r\nおよび単独の\rを\nに書き換えます。これにより、どのプラットフォームから貼り付けたテキストでも、比較や分割が一貫して行えます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
配列
これらはすべて、array入力を配列として読み取り、配列でない場合は空の配列に置き換えます。そのため何も例外を投げません。書き込みを行うものはすべて、resultに新しい配列を返します。
要素の型がわかっている場合(Get Endingsが返すエンディングなど)、配列を返すノードは同じ型を返し、Array Get、Array First、Array Last、Array Find By Keyはその型の要素を1つ返します。エンディングにArray Filter By Keyを使うとエンディングが、Array Firstを使うとエンディングが1つ得られます。Array Concatはaの型になります。
Array Length
blueprint.collection.arrayLength · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
length | out · data | integer |
Array Get
blueprint.collection.arrayGet · Pure
負の添字、または末尾を超える添字はnullになります。出力の型がjsonなのは、配列の要素が任意の JSON 値になりうるためです。要素の型がわかっている場合は、その型になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
index | in · data | integer | カード上のリテラルを受け付けます。 |
item | out · data | json |
Array Set
blueprint.collection.arraySet · Pure
indexの位置に書き込み、新しい配列を返します。負の添字、または10000を超える添字は、入力をそのまま返します。末尾を超える添字は配列を拡張し、飛ばされたスロットは空のままになります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
index | in · data | integer | カード上のリテラルを受け付けます。 |
item | in · data | any | |
result | out · data | array |
Array Push
blueprint.collection.arrayPush · Pure
末尾に追加します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
item | in · data | any | |
result | out · data | array |
Array Insert
blueprint.collection.arrayInsert · Pure
indexは0から配列の長さまでにクランプされるため、範囲外の添字は失敗するのではなく末尾に追加されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
index | in · data | integer | カード上のリテラルを受け付けます。 |
item | in · data | any | |
result | out · data | array |
Array Remove
blueprint.collection.arrayRemove · Pure
itemと等しい最初の要素を削除します。比較はEqualと同じ方法で行われ、同じフィールドを持つ2つのオブジェクトは、たとえ別のオブジェクトであっても一致します。一致しない場合は入力をそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
item | in · data | any | |
result | out · data | array |
Array Remove At
blueprint.collection.arrayRemoveAt · Pure
1つの要素を削除し、空いた隙間を詰めます。範囲外の添字は入力をそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
index | in · data | integer | カード上のリテラルを受け付けます。 |
result | out · data | array |
Array Contains
blueprint.collection.arrayContains · Pure
itemと等しい要素があるとき true。比較はEqualと同じ方法で行われ、Array Removeと同じ規則です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
item | in · data | any | |
result | out · data | boolean |
Array Slice
blueprint.collection.arraySlice · Pure
endは含まれません。両方の境界は配列の範囲内にクランプされ、未配線のendは末尾まで実行されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
start | in · data | integer | カード上のリテラルを受け付けます。 |
end | in · data | integer | カード上のリテラルを受け付けます。 |
result | out · data | array |
Array Join
blueprint.collection.arrayJoin · Pure
各要素をテキストに変換し——オブジェクトと配列は JSON になります——それらを連結します。文字列のJoinがjsonを受け取るのに対し、こちらはarrayを受け取ります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
separator | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | string |
Array First
blueprint.collection.arrayFirst · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
item | out · data | json | 空の配列の場合はnull。 |
Array Last
blueprint.collection.arrayLast · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
item | out · data | json | 空の配列の場合はnull。 |
Array Is Empty
blueprint.collection.arrayIsEmpty · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
result | out · data | boolean |
Array Index Of
blueprint.collection.arrayIndexOf · Pure
itemと等しい最初の要素の位置。Array Containsと同じ方法で値により比較します。一致しない場合は-1。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
item | in · data | any | |
index | out · data | integer |
Array Concat
blueprint.collection.arrayConcat · Pure
aに続けてbを並べた、新しい配列。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
a | in · data | array | |
b | in · data | array | |
result | out · data | array |
Array Reverse
blueprint.collection.arrayReverse · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
result | out · data | array |
Array Unique
blueprint.collection.arrayUnique · Pure
後から出てくる重複を捨て、それぞれ最初のものだけを残します。要素はEqualと同じ方法で比較されるため、同じフィールドを持つ2つのオブジェクトは1つとして扱われます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
result | out · data | array |
Array Range
blueprint.collection.arrayRange · Pure
startから始まり、それぞれstepずつ進むcount個の数値。ページが何かをN個描画する必要があり、その数値自体がコンテンツになる場合に使う配列です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
start | in · data | integer | カード上のリテラルを受け付けます。既定値は0。 |
count | in · data | integer | カード上のリテラルを受け付けます。0–10000にクランプされます。 |
step | in · data | integer | カード上のリテラルを受け付けます。既定値は1であり、stepが0の場合は1として読み取られます——そうしないと、範囲の形をしたstartのcount個のコピーになってしまうためです。 |
result | out · data | array<integer> |
Array Find By Key
blueprint.collection.arrayFind · Pure
keyフィールドがvalueと等しい最初の要素と、その位置。比較はEqualと同じ方法で行われます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
key | in · data | string | フィールド名。カード上のリテラルを受け付けます。要素の型がわかっている場合は、要素のフィールドを選ぶドロップダウンになります。 |
value | in · data | any | keyが指すフィールドの型になり、そのフィールドが文字列・数値・真偽値ならカード上のリテラルを受け付けます。 |
item | out · data | json | 一致しない場合はnull。配列の要素の型がわかっている場合は、その型の要素です。 |
index | out · data | integer | 一致しない場合は-1。 |
Array Filter By Key
blueprint.collection.arrayFilter · Pure
keyフィールドがvalueと等しいすべての要素を、元の順序のまま返します。比較はEqualと同じ方法で行われます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
key | in · data | string | カード上のリテラルを受け付けます。要素の型がわかっている場合は、要素のフィールドを選ぶドロップダウンになります。 |
value | in · data | any | keyが指すフィールドの型になり、そのフィールドが文字列・数値・真偽値ならカード上のリテラルを受け付けます。 |
result | out · data | array | arrayと同じ型です。 |
Array Sort By Key
blueprint.collection.arraySort · Pure
レコードをそのフィールドの1つによって並べ替えます。この key ベースの3つのノードは、比較関数ではなくフィールド名を受け取ります——比較関数は関数値であり、レコードをそのフィールドの1つで並べ替えることこそが、実際にリストが必要としているものだからです。
数値は数値として比較され、真偽値はfalseがtrueより前になり、それ以外はすべてテキストとして、ランタイムが文字列を照合する方法で順序付けられます。フィールドが欠けている、nullである、または""である要素は、どちらの方向でも末尾に並びます。同順位は届いた順序を保ちます。空のkeyは配列をそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
array | in · data | array | |
key | in · data | string | カード上のリテラルを受け付けます。要素の型がわかっている場合は、要素のフィールドを選ぶドロップダウンになります。 |
descending | in · data | boolean | カード上のリテラルを受け付けます。 |
result | out · data | array | arrayと同じ型です。 |
JSON Array Length
blueprint.data.jsonArrayLength · Pure
Array Lengthの旧名であり、パレットからは非表示で、既存のグラフの解決を保つために残されています。配列でない値は0になります。新しいグラフではArray Lengthを使ってください。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | array | |
length | out · data | integer |
構造体
構造体は、フィールドが宣言されたオブジェクトです。エンディング、履歴の項目、セーブの項目、ギャラリーの項目、List の行がこれにあたります。構造体を運ぶピンには、カード上に構造体の名前(Ending(エンディング)など)が表示され、構造体の配列を運ぶピンには Ending list(エンディングのリスト)と表示されます。Get Field(フィールドを取得)は、ドロップダウンで選んだフィールドを1つ読み取ります。
| 構造体 | フィールド | 返すノード |
|---|---|---|
| Ending(エンディング) | endingId、name、sceneId、sceneName、isReached | Get Endings |
| History entry(履歴の項目) | id、type、text、character、avatar、voice、voiceId、selected、isPending | Get History、Get Future History |
| Save entry(セーブの項目) | id、slot、timestamp、createdAt、preview、line、speaker、metadata | List Auto Saves |
| Notification(通知) | id、message | Get Notifications |
| Language(言語) | code、displayName、isSource | Get Available Languages |
| Voice language(ボイスの言語) | code、displayName | Get Available Voice Languages |
| Choice(選択肢) | text、index、disabled、voiceId | ゲーム UI の選択肢リストの行 |
| NVL line(NVL の行) | index、nametag、isActive | ゲーム UI の NVL リストの行 |
| Confirm button(確認ボタン) | id、text、index、disabled | Show Confirmがページを開くときに渡すボタン |
各フィールドの意味は、その構造体を返すノードの説明にあります。プラグインは自分のノードが返す構造体を宣言できます。Gallery プラグインの Gallery entry(ギャラリーの項目)がその例です。マニフェストを参照してください。List の行は Edit content(内容を編集)で設定した構造体を持ちます。上の表の構造体か、その List のために書いたフィールドです。リストを参照してください。
- 型は接続をたどって伝わります。 配列ノードは要素の型を引き継ぎます。配列を参照してください。Flow の
For Eachは、反復する配列の要素を1つ返します。List ノードと項目のイベントヘッドは、その List の構造体の行を受け渡しします。Listを参照してください。 - フィールドの型がピンの型になります。 文字列のフィールドは
string、数値はfloat、真偽値はboolean、画像はImageAsset|null、色はRGBAColor、JSON はjsonです。 - 構造体からワイヤーを引き出す。 構造体を運ぶピンからワイヤーを引き出してキャンバスの空いた場所で離すと、ノード追加メニューが Fields(フィールド)のグループで開き、各フィールドを読み取る項目が並びます(Get isReached(isReached を取得)など)。構造体の配列を運ぶピンからは、各フィールドで絞り込み・並べ替え・検索する項目が並びます(Filter by isReached(isReached で絞り込み)など)。どの項目も、フィールドを選んだ状態のノードを追加し、そのピンに接続します。真偽値のフィールドで絞り込み・検索する場合、比較する値は True(真)になります。
- 構造体にないフィールドは報告されます。
Get Fieldが構造体にないフィールドを指定している場合や、Array Filter By Key、Array Sort By Key、Array Find By Keyのkeyが要素のフィールドでない場合、キャンバスに警告が表示され、プロジェクトチェックが Field not in shape(存在しないフィールド、blueprint/field-missing)を報告します。このようなノードは何も読み取れません。Get Fieldは空の値になり、絞り込みは要素を1つも残さず、並べ替えは順序を変えません。List のフィールドを削除したあとや、キーを手で入力したときに起きます。構造体がわかっているノードだけが検査されます。
Get Field
blueprint.list.getItemField · Pure
構造体のフィールドを1つ読み取ります。構造体を Object(オブジェクト)に接続し、Field(フィールド)でフィールドを選びます。出力はそのフィールドの型になるため、エンディングのisReachedはそのままBranchに接続できます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
object | in · data | struct:* | 任意の構造体。Struct(構造体)と表示されます。List の行の中では接続しなくてもかまいません。 |
value | out · data | any | 選んだフィールドの型になります。値にそのフィールドがない場合はnullです。 |
カード上のフィールド
| フィールド | 内容 |
|---|---|
Field | 読み取るフィールド。Object に接続した構造体のフィールドから選びます。構造体にもうないフィールドは Missing field “…”(フィールド「…」が見つからない)として一覧に残ります。 |
- 最初に接続した構造体が保持されます。 以降、Object はその構造体だけを受け付けます。接続を外しても同じです。別の構造体を読み取るには、
Get Fieldをもう1つ追加してください。 - List の行の中では、Object を接続しなくてもかまいません。 このとき、ノードは描画中の行を読み取り、カードには Object · Current row(オブジェクト · 現在の行)と表示されます。行を読み取れる場所は List にあるとおりです。List の項目テンプレート内のエレメントのブループリント、List 自身の項目のイベントヘッド、コンポーネントの定義です。
- それ以外の場所で接続しない場合、何も読み取りません。 カードは Object が未接続であると報告します。構造体を保持したまま接続を外した
Get Fieldも何も読み取らず、代わりに現在の行を読むこともありません。 - フィールドが宣言されていないオブジェクトは接続できません。
Get JSON Fieldで読み取ってください。
このノードは以前 Get Item Field(項目の値を取得)という名前で、List の行だけを読み取っていました。型 id は変わっていないため、既存のグラフはこのノードをそのまま保持し、行の中で接続されていないノードは以前どおり現在の行を読み取ります。
ジオメトリ
Vector2DとRectは JSON ドキュメントではなく構造化された型であるため、Get JSON Fieldではなく専用のノードで組み立てたり分解したりします。すべての入力は、数値でない値を0として読み取ります。
Make Vector2D
blueprint.data.makeVector2d · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
x | in · data | float | カード上のリテラルを受け付けます。 |
y | in · data | float | カード上のリテラルを受け付けます。 |
value | out · data | Vector2D |
Vector2Dリテラルとは異なり、両方の成分を配線できます——これは、点を計算で求めるときにMove Mouse Toが必要とするものです。
Break Vector2D
blueprint.data.breakVector2d · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | Vector2D | |
x | out · data | float | |
y | out · data | float |
Make Rect
blueprint.data.makeRect · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
x | in · data | float | カード上のリテラルを受け付けます。 |
y | in · data | float | カード上のリテラルを受け付けます。 |
width | in · data | float | カード上のリテラルを受け付けます。 |
height | in · data | float | カード上のリテラルを受け付けます。 |
value | out · data | Rect |
負のwidthやheightは、そのまま保持されるのではなく正規化されます——原点が移動し、大きさは正の値になります。そのため、得られる矩形は実際に描いたとおりのものになります。
Break Rect
blueprint.data.breakRect · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | Rect | |
x | out · data | float | |
y | out · data | float | |
width | out · data | float | |
height | out · data | float |
Rect Center
blueprint.data.rectCenter · Pure
矩形の4辺から等距離にある点。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | Rect | |
center | out · data | Vector2D |
オブジェクト
Object Keys と Object Values はオブジェクトの最上位を読み取り、Object Merge は 2 つのオブジェクトを結合します。フィールドの書き込みや削除には、下の JSON の節にある Set JSON Field または Remove JSON Field を使います。これらはパスを受け取ります。オブジェクトでない入力は{}として読み取られます。
Object Keys
blueprint.collection.objectKeys · Pure
挿入順のフィールド名。配列やその他のオブジェクトでない値は、空の配列になります。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
object | in · data | json | |
result | out · data | array<string> |
Object Values
blueprint.collection.objectValues · Pure
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
object | in · data | json | |
result | out · data | array |
Object Set Field
blueprint.collection.objectSetField · Pure
Set JSON Fieldに取って代わられています。こちらはパスを受け取るため、入れ子のフィールドにも届きます。パレットからは非表示ですが、このノードを持つグラフでは引き続き実行されます。fieldは単なる名前であり、その中のドットはパスの区切りではなく名前の一部として扱われます。空の名前はコピーをそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
object | in · data | json | |
field | in · data | string | カード上のリテラルを受け付けます。 |
value | in · data | any | |
result | out · data | json |
Object Remove Field
blueprint.collection.objectRemoveField · Pure
Remove JSON Fieldに取って代わられています。パレットからは非表示ですが、このノードを持つグラフでは引き続き実行されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
object | in · data | json | |
field | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | json |
Object Merge
blueprint.collection.objectMerge · Pure
浅いマージであり、衝突した場合はbが優先されます。ネストしたオブジェクトはマージされず、置き換えられます。Merge JSON Objectは、別の型 id を持つ同一の操作です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
a | in · data | json | |
b | in · data | json | |
result | out · data | json |
JSON
パスを扱うノードは、ドット記法でドキュメントを指し示します——user.profile.nameのように、また配列の添字には数値のセグメントを使います——items.0のように。キーの中のリテラルなドットは\.としてエスケープします。空のパスはドキュメント全体を意味するため、パスを指定しないSet JSON Fieldはそれをまるごと置き換えます。
Get JSON Field
blueprint.data.jsonGet · Pure
存在しないパスはnullになるため、存在しないフィールドとnullを保持するフィールドは同じように読み取られます。その違いが重要な場合はHas JSON Fieldを使ってください。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
json | in · data | json | |
path | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | json |
Has JSON Field
blueprint.data.jsonHas · Pure
真偽値ではなく存在の有無を見ます——値がnullであるフィールドも、存在はしています。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
json | in · data | json | |
path | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | boolean |
Set JSON Field
blueprint.data.jsonSet · Pure
入力をコピーし、そのコピーへ書き込みます。パスの途中で欠けているコンテナは作成されます——次のセグメントが数値であれば配列、そうでなければオブジェクトになります。そのため、空のドキュメントへstats.hpを書き込むと{ "stats": { "hp": … } }が生成されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
json | in · data | json | |
path | in · data | string | カード上のリテラルを受け付けます。 |
value | in · data | any | JSON セーフな形で保存されます。 |
result | out · data | json |
Remove JSON Field
blueprint.data.jsonRemove · Pure
オブジェクトのフィールドを削除するか、配列の項目を取り除いて後続の要素を詰めます。存在しないパスは、コピーをそのまま返します。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
json | in · data | json | |
path | in · data | string | カード上のリテラルを受け付けます。 |
result | out · data | json |
Make Object
blueprint.data.jsonMakeObject · Pure
動的なピンの組からオブジェクトを組み立てるため、下のシグネチャは出力のみを示します。カード上の各フィールドは、Name入力(string、カード上のリテラルを受け付ける)とValue入力(any)を1組追加します。新規ノードは1組から始まります。名前は実行時に読み取られるため、配線されたNameはキーを計算で求められます。名前が空である、または前に出てきた名前と重複するフィールドはスキップされます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
result | out · data | json |
Make Array
blueprint.data.jsonMakeArray · Pure
動的なItem入力をピンの順に並べて配列を組み立てるため、下のシグネチャは出力のみを示します。新規ノードはどのピンも持たない状態から始まります——カード上で追加してください。これがarray型を生成するノードであり、組み立てた配列をArray Lengthや List のSet List Contentへ渡す方法です。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
result | out · data | array |
Merge JSON Object
blueprint.data.jsonMergeObject · Pure
bが優先される浅いマージであり、Object Mergeと同一です。オブジェクトでない入力は{}として扱われます。Object Mergeに取って代わられています。パレットからは非表示ですが、このノードを持つグラフでは引き続き実行されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
a | in · data | json | |
b | in · data | json | |
result | out · data | json |
Clone JSON
blueprint.data.jsonClone · Pure
深く、JSON セーフなコピー。書き込み系のノードはすでに入力をコピーしているため、これが必要になるのは、同じドキュメントを、互いの変更を見てはならない2つの分岐へ渡そうとするときだけです。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
value | in · data | json | |
result | out · data | json |
値を保持する
Memo
blueprint.data.memo
実行がそこを通過するときに一度だけ入力を読み取り、次に実行がそこを通過するまで、その値を出力に保持し続けます。最初に通過するまでは、出力はnullとして読み取られます。この値はブループリントの変数と同じ store に保持されます:Initの中で保持した値は後のMouse Clickでも読み取れ、そのオーナーインスタンスが振り出しに戻るときに一緒に振り出しに戻ります。
この出力は複数の消費先に供給できます。計算されたデータ出力が供給できる消費先は1つだけで、そこから2本目のエッジを接続すると1本目と置き換わります。その理由は2つあります:純粋なノードは読み取るたびに再評価されるため、同じRandom Floatを2回読み取ると2つの数値が得られてしまいます。そして実行ノードの出力は、それを生成したパルスに属します。Memo にはただ1つの書き手——自分自身——しかいないため、どの読み取りも、その書き込みが残した値を返し、複数へ分岐させても誰も驚きません。このページのリテラル、Elementのバインディング、Fnのパラメータピンも、読み取るたびに同じ値を返すため、同じように複数へ分岐できます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
value | in · data | any | 実行が通過する際に一度だけ読み取られます。 |
next | out · exec | — | |
result | out · data | any | カード上では Value と表示されます。 |
意図的に latent ではなく同期的です——待つべきものが何もなく、latent なノードはインラインのストーリー値の中では使えないためです。