NarraLeaf

データ

リテラル、型変換、型判定、そしてグラフを組み立てるためのあらゆる文字列・配列・オブジェクト・JSON 操作

Data は、ブループリントが計算に使う値を保持するカテゴリです。定数が必要なとき、値が想定と違う型で届いたとき、あるいは文字列・配列・JSON ドキュメントを分解する必要があるときに使います。ここにあるノードのほとんどは実行ピンを持ちません——Data ノードは、その出力に配線された側から読み取られます。Memoだけが例外であり、それについてはこのページの末尾で説明します。

値の型

以下のピンには10種類のvalueTypeが現れます。

valueType内容生成元
stringテキスト。String、およびすべての文字列ノード。
integer整数。Integer、および各種の長さ・添字・件数。
float数値。FloatTo FloatParse Float
boolean真または偽。Boolean、およびすべての型判定と文字列判定。
json任意の JSON 値——object、array、string、number、boolean、nullのいずれか。JSONParse JSONGet JSON FieldMake Object
arrayJSON 配列。ただし独立した型として扱われます。Make Array、配列を返すArray …ノード群、Object KeysObject Values
any何であってもよい値。MemoGet Item Field、およびカードの選択に応じて形状が決まるプロパティ読み取り。
RGBAColor{ r, g, b, a }Color
Vector2D{ x, y }Vector2DMake Vector2DRect CenterGet Center
Rect{ x, y, width, height }RectMake RectGet BoundsGet Measured Rect

2つのデータピン間の接続は、型が完全に一致する場合、または次のいずれかが成り立つ場合に許可されます。

理由
integerfloatすべての整数は浮動小数点数です。
integerfloatstring入力を読み取る際に、数値はテキストへ変換されます。これは値を書き換える唯一の暗黙変換です——それ以外の許可された接続はすべて値をそのまま通します。
arrayjson配列は JSON 値そのものです。
Rectjson構造化された値についての規則ではなく、移行のために許されている経路です——下記参照。
any任意の型anyはどちらの方向にも一致します。
任意の型any

他のカテゴリの型も同じ形でのみ広がります——elementはどのelement:nl.…ピンにも接続でき、その逆方向にも接続できます。ImageAssetstringはどちらもImageAsset|null入力に届きます。

それ以外はすべて拒否されます。作者が動くはずだと思い込みがちな逆方向の接続も含めてです。

  • jsonarrayjsonRect どの拡張規則も一方向にしか成り立ちません。任意のオブジェクトが矩形であるとは限りません。
  • floatinteger To Integerを挟んでください。これはゼロ方向に切り捨てます。
  • stringintegerまたはfloat Parse IntParse FloatTo IntegerTo Floatのいずれかを挟んでください。
  • booleanstringjsonstring テキストへ暗黙変換されるのは数値だけです。To StringまたはStringify JSONを挟んでください。
  • stringintegerfloatbooleanjson json入力に暗黙に届く型はarrayRectだけです。To JSONを挟んでください。
  • RGBAColorjsonVector2Djson これらはそれぞれ独立した構造化型であり、JSON ドキュメントではありません。Break Vector2Dで分解するか、Make Objectでドキュメントを組み立ててください。

Rectjsonは、Rectが独立した型になる前に書かれたグラフのために存在します。Rectが型になるまでは、RectリテラルとGet Boundsはどちらもjsonを公開していました。そのため当時作成された矩形は今もGet JSON Fieldへ渡せて動作し続けます。Vector2Djsonピンであったことが一度もなく、狭いままです。

arrayjson入力に渡せるが、逆方向は決してできません。たまたま配列を保持しているjsonの値——Splitの結果、Parse JSONGet JSON Field——は、Array Lengthや List のSet Itemsのようなarray入力には接続できません。FlowFor Eachjsonを受け取るため、それを使った反復は引き続き機能します。Array …ノード群はそうはいきません。

規約

  • このページのノードは、1つを除いてすべて純粋です。 接続できる実行ピンがないため、Data ノードは実行経路の上に置くことができません。その出力は、消費側が読み取るときに計算され、次の読み取りで再計算されます。Memoは例外です——値をそのまま保持することは、純粋なノードにはできないことそのものであるため、これは実行ノードになっています。
  • 3種類のグラフすべてがこれらを受け付けます——eventfunctionmacro——そして Blueprint Value グラフも同様です。ここでもMemoは例外であり、eventmacroでのみ利用できます。
  • インプレースでの変更は存在しません。 書き込みを行うノードは、出力ピンに新しい値を返し、入力にはまったく手を加えません。
  • カード上のリテラルが存在するのはstringintegerfloatbooleanのピンだけです。 jsonまたはarrayの入力にはカード上のエディタが存在しません——JSONリテラル、またはMake Object / Make Arrayノードを渡してください。
  • 未配線の入力はエラーではありません。 そのピンのカード上のリテラルを読み取り、リテラルがなければ何も読み取りません。そして各ノードはそれを正規化します——欠けた配列は空として、欠けた文字列は""として、欠けた数値は0として読み取られます。
  • 純粋なノードの連鎖は、最大32段まで解決されます。 それを超えると、読み取りは何も返さず、静かに終わります。

Array PushSet JSON FieldObject Set Field、そしてこのページの他のすべての書き込みノードは、新しい値を返し、入力にはまったく手を加えません。Get Var → Array Pushと配線しただけでは何も変わりません——結果をSet Varへ配線し直す必要があります。Variablesを参照してください。

リテラル

リテラルは1つの出力ピンと1つのカード上のフィールドを持ちます。その型は選んだノードによって固定され、それによってグラフの残りの部分が型チェックできるようになります。

String

blueprint.data.stringLiteral · Pure

ピン方向備考
valueout · datastring

カード上のフィールド

フィールド内容
valueテキスト。

Integer

blueprint.data.integerLiteral · Pure

ピン方向備考
valueout · datainteger

カード上のフィールド

フィールド内容
value数値。読み取り時に整数へ切り捨てられます。

Float

blueprint.data.floatLiteral · Pure

ピン方向備考
valueout · datafloat

カード上のフィールド

フィールド内容
value数値。有限でない値は0として読み取られます。

Boolean

blueprint.data.booleanLiteral · Pure

ピン方向備考
valueout · databoolean

カード上のフィールド

フィールド内容
valueTrue / False のドロップダウン。

Null

blueprint.data.nullLiteral · Pure

カード上のフィールドを持たない唯一のリテラルです——nullについて設定できることは何もありません。その出力の型はjsonであるため、あらゆるjsonまたはanyの入力に届きます。

ピン方向備考
valueout · datajson常にnull

JSON

blueprint.data.jsonLiteral · Pure

カードにはルートの型と概要が表示されます。編集を開始すると、オブジェクトには名前付きフィールド、配列には順序付きの項目を持つツリー形式のフォームが開きます。新規ノードは空のオブジェクトから始まります。

ピン方向備考
valueout · datajson

カード上のフィールド

フィールド内容
valueドキュメント。ツリーとして編集します。書き込まれる内容はすべて JSON セーフです。

Color

blueprint.data.colorLiteral · Pure

カラーピッカーで編集し、8桁の RGBA 16進数として表示されます。出力は常に正規化された{ r, g, b, a }のレコードです——rgbはバイト値、a0から1

ピン方向備考
valueout · dataRGBAColor

カード上のフィールド

フィールド内容
valueカラーピッカー。

Vector2D

blueprint.data.vector2dLiteral · Pure

ピン方向備考
valueout · dataVector2D

カード上のフィールド

フィールド内容
value固定されたx / yの数値スキーマ。余分なフィールドは拒否され、欠けているフィールドや数値でないフィールドは0として読み取られます。

Rect

blueprint.data.rectLiteral · Pure

ColorVector2Dと同様に、Rectもそれ自身の型です。それらと異なり、Rectjsonにも広がるため、あらゆるjson入力に接続できます——理由については値の型の注記を参照してください。

ピン方向備考
valueout · dataRect

カード上のフィールド

フィールド内容
value固定されたx / y / width / heightの数値スキーマ。Vector2Dと同じ方法で検証されます。

Number

blueprint.data.numberLiteral · Pure

旧式の数値定数であり、新しいグラフに追加できないようパレットから非表示になっています。旧いグラフの解決を保つために登録だけは残されています。新規にはFloatを使ってください。

ピン方向備考
valueout · datafloat

カード上のフィールド

フィールド内容
value数値。

Literal

blueprint.data.literal · Pure

旧式の型なし定数であり、これもパレットから非表示になっています。そのany型の出力はあらゆるものと型チェックを通ってしまいます——それこそが、型付きのリテラル群がこれを置き換えた理由です。

ピン方向備考
valueout · dataany

カード上のフィールド

フィールド内容
value型のない値。

変換

これらは、接続ルールがあなたを導く先のノード群です。どれも失敗しません——読み取れない入力は、エラーではなくその型のゼロ値を生成します。

To String

blueprint.string.toString · Pure

nullと未配線の入力はどちらも""として読み取られます。オブジェクトや配列は JSON テキストにシリアライズされます。

ピン方向備考
valuein · dataany
resultout · datastring

To Integer

blueprint.data.toInteger · Pure

ゼロ方向に切り捨てます——-2.7-3ではなく-2になります。true1false0として読み取られ、数値の文字列は受け付けられます。それ以外はすべて0になります。

ピン方向備考
valuein · dataany
resultout · datainteger

To Float

blueprint.data.toFloat · Pure

To Integerと同じ受け付け方ですが、切り捨ては行いません。有限の数値でない値は0になります。

ピン方向備考
valuein · dataany
resultout · datafloat

To Boolean

blueprint.data.toBoolean · Pure

文字列はトリムして小文字化したうえで照合されます——"""false""0""no"は偽、"true""1""yes"は真であり、それ以外の空でない文字列はすべて真になります。0と有限でない数値は偽になります。

ピン方向備考
valuein · dataany
resultout · databoolean

To JSON

blueprint.data.toJson · Pure

文字列は JSON としてパースされ、パースできなければ元の文字列のまま保たれます——そのためこのノードがテキストを壊すことはありません。それ以外の値は JSON セーフな形にされます——有限でない数値や循環参照はnullに、関数やシンボルはそのテキスト形式になります。

ピン方向備考
valuein · dataany
resultout · datajson

Parse Int

blueprint.data.parseInt · Pure

10進数として扱われ、先頭の数値部分が採用されます——"12px"12になります。数字がまったくない場合は0になります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datainteger

Parse Float

blueprint.data.parseFloat · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datafloat

Parse JSON

blueprint.data.parseJson · Pure

厳密です——パースできないテキストと空文字列は、どちらもnullになります。元のテキストを残したいときは代わりにTo JSONを使ってください。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datajson

Stringify JSON

blueprint.data.stringifyJson · Pure

未配線の入力はテキスト"null"になります。シリアライズできない値は""になります。

ピン方向備考
valuein · datajson
resultout · datastring

型判定

それぞれがanyを受け取り、実際に届いた値についての問いに答えます——これが、jsonanyのピンが本当は何を運んでいるかを知る方法です。

Is String

blueprint.data.isString · Pure

ピン方向備考
valuein · dataany
resultout · databoolean

Is Number

blueprint.data.isNumber · Pure

有限の数値だけが対象です——NaNと無限大は偽であり、数値の文字列も偽になります。これは型について尋ねるものであり、パース可能かどうかについてではありません。

ピン方向備考
valuein · dataany
resultout · databoolean

Is Boolean

blueprint.data.isBoolean · Pure

ピン方向備考
valuein · dataany
resultout · databoolean

Is Array

blueprint.data.isArray · Pure

ピン方向備考
valuein · dataany
resultout · databoolean

Is Object

blueprint.data.isObject · Pure

配列ではない、nullでないオブジェクトに対して真になります。配列に答えるのはこれではなくIs Arrayです。

ピン方向備考
valuein · dataany
resultout · databoolean

Is Null

blueprint.data.isNull · Pure

nullに対して真になり、また何にも解決されなかった入力に対しても真になります——未配線のピンはここでは null として読み取られます。

ピン方向備考
valuein · dataany
resultout · databoolean

Not Null

blueprint.data.notNull · Pure

Is Nullの否定であり、これによってNotをぶら下げる必要がなくなります。

ピン方向備考
valuein · dataany
resultout · databoolean

Is Empty Value

blueprint.data.isEmptyValue · Pure

null""、空の配列、空のオブジェクトに対して真になります。0falseは空ではなく値であり、どちらも偽になります。

ピン方向備考
valuein · dataany
resultout · databoolean

文字列

ここでのすべてのvalue入力はカード上のリテラルを受け付けるため、一度きりの文字列のために専用のリテラルノードを用意する必要はありません。添字は0始まりであり、範囲外の添字は拒否されるのではなくクランプされます。

Concat

blueprint.string.concat · Pure

その入力を、ピンの順に、間に何も挟まずに連結します。カードには入力追加コントロールがあり、abを超えてさらにstring入力を追加できます。以下のシグネチャは、最初から存在する2つだけを示しています。

ピン方向備考
ain · datastringカード上のリテラルを受け付けます。
bin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Format

blueprint.string.format · Pure

テンプレート内の{name}を、valuesの対応するフィールドで置き換えます。valuesが配列の場合は{0}{1}……で置き換えます。一致しないプレースホルダーは空になり、valuesがオブジェクトでも配列でもない場合はすべてのプレースホルダーが空になります。

ピン方向備考
templatein · datastringカード上のリテラルを受け付けます。
valuesin · datajsonJSONリテラルまたはMake Objectを配線してください。
resultout · datastring

Length

blueprint.string.length · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
lengthout · datainteger

Is Empty

blueprint.string.isEmpty · Pure

長さがゼロであることです。空白だけの文字列は空ではありません——それはIs Blankが扱います。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Is Blank

blueprint.string.isBlank · Pure

空である、または空白しか含みません。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Trim

blueprint.string.trim · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

Trim Start

blueprint.string.trimStart · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

Trim End

blueprint.string.trimEnd · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

To Upper Case

blueprint.string.toUpperCase · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

To Lower Case

blueprint.string.toLowerCase · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

Capitalize

blueprint.string.capitalize · Pure

先頭の文字だけを大文字にし、それ以外はそのまま残します——タイトルケースではありません。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

Equals

blueprint.string.equals · Pure

ピン方向備考
ain · datastringカード上のリテラルを受け付けます。
bin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Equals Ignore Case

blueprint.string.equalsIgnoreCase · Pure

ピン方向備考
ain · datastringカード上のリテラルを受け付けます。
bin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Contains

blueprint.string.contains · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Starts With

blueprint.string.startsWith · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Ends With

blueprint.string.endsWith · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Index Of

blueprint.string.indexOf · Pure

startから前方へ検索し、一致がない場合は-1を返します。startは文字列の範囲内にクランプされるため、範囲外の値は失敗するのではなく先頭または末尾から検索されます。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
startin · dataintegerカード上のリテラルを受け付けます。既定値は0
indexout · datainteger

Last Index Of

blueprint.string.lastIndexOf · Pure

末尾から後方へ検索します。startピンは存在しません——それがIndex Ofとの唯一の非対称点です。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
indexout · datainteger

Count

blueprint.string.count · Pure

重ならない出現回数を数えます。空のsearchは、文字列の長さではなく0になります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
countout · datainteger

Char At

blueprint.string.charAt · Pure

文字列の範囲外の添字は、エラーではなく""になります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
indexin · dataintegerカード上のリテラルを受け付けます。
charout · datastring

Substring

blueprint.string.substring · Pure

2番目のピンは終了位置ではなく長さです。どちらも文字列の範囲内にクランプされ、未配線のlengthstart以降のすべてを取ります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
startin · dataintegerカード上のリテラルを受け付けます。
lengthin · dataintegerカード上のリテラルを受け付けます。
resultout · datastring

Insert

blueprint.string.insert · Pure

indexは文字列の範囲内にクランプされ、読み取れない添字は末尾に追加されます。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
indexin · dataintegerカード上のリテラルを受け付けます。
insertin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Replace

blueprint.string.replace · Pure

最初の出現だけを置き換えます。空のsearchは、あらゆる位置に挿入するのではなく、値をそのまま返します。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
replacementin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Replace All

blueprint.string.replaceAll · Pure

すべての出現を置き換えます。searchはパターンではなく単なるテキストです——空のsearchは、この場合も値をそのまま返します。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
searchin · datastringカード上のリテラルを受け付けます。
replacementin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Repeat

blueprint.string.repeat · Pure

count010000にクランプされるため、暴走した数値が無制限な文字列を作ることはありません。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
countin · dataintegerカード上のリテラルを受け付けます。
resultout · datastring

Pad Start

blueprint.string.padStart · Pure

lengthは追加する文字数ではなく、目標となる合計の長さです。すでに十分な長さの文字列は変更されずに返ります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
lengthin · dataintegerカード上のリテラルを受け付けます。
padin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Pad End

blueprint.string.padEnd · Pure

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
lengthin · dataintegerカード上のリテラルを受け付けます。
padin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Split

blueprint.string.split · Pure

結果の型はarrayではなくjsonであるため、JoinFor Each、その他のjson入力には届きますが、Array …ノード群には届きません。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
separatorin · datastringカード上のリテラルを受け付けます。
resultout · datajson

Join

blueprint.string.join · Pure

arrayを受け取るArray Joinとは異なり、これはjsonを受け取ります。valuesが配列でない場合は""になります。

ピン方向備考
valuesin · datajson
separatorin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Matches Regex

blueprint.string.matchesRegex · Pure

patternは、区切り記号もフラグも付かない正規表現のソースそのものです。コンパイルできないパターンは、例外を投げるのではなくfalseになります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
patternin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Extract Regex

blueprint.string.extractRegex · Pure

パターンにキャプチャグループがある場合はその最初のものを、なければマッチ全体を返します。マッチしない場合、またはコンパイルできないパターンの場合は""になります。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
patternin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Normalize Line Breaks

blueprint.string.normalizeLineBreaks · Pure

\r\nおよび単独の\r\nに書き換えます。これにより、どのプラットフォームから貼り付けたテキストでも、比較や分割が一貫して行えます。

ピン方向備考
valuein · datastringカード上のリテラルを受け付けます。
resultout · datastring

配列

これらはすべて、array入力を配列として読み取り、配列でない場合は空の配列に置き換えます。そのため何も例外を投げません。書き込みを行うものはすべて、resultに新しい配列を返します。

Array Length

blueprint.collection.arrayLength · Pure

ピン方向備考
arrayin · dataarray
lengthout · datainteger

Array Get

blueprint.collection.arrayGet · Pure

負の添字、または末尾を超える添字はnullになります。出力の型がjsonなのは、配列の要素が任意の JSON 値になりうるためです。

ピン方向備考
arrayin · dataarray
indexin · dataintegerカード上のリテラルを受け付けます。
itemout · datajson

Array Set

blueprint.collection.arraySet · Pure

indexの位置に書き込み、新しい配列を返します。負の添字、または10000を超える添字は、入力をそのまま返します。末尾を超える添字は配列を拡張し、飛ばされたスロットは空のままになります。

ピン方向備考
arrayin · dataarray
indexin · dataintegerカード上のリテラルを受け付けます。
itemin · dataany
resultout · dataarray

Array Push

blueprint.collection.arrayPush · Pure

末尾に追加します。

ピン方向備考
arrayin · dataarray
itemin · dataany
resultout · dataarray

Array Insert

blueprint.collection.arrayInsert · Pure

index0から配列の長さまでにクランプされるため、範囲外の添字は失敗するのではなく末尾に追加されます。

ピン方向備考
arrayin · dataarray
indexin · dataintegerカード上のリテラルを受け付けます。
itemin · dataany
resultout · dataarray

Array Remove

blueprint.collection.arrayRemove · Pure

itemと等しい最初の要素を削除します。比較は JSON の値で行われます——同じフィールドを持つ2つのオブジェクトは、たとえ別のオブジェクトであっても一致します。一致しない場合は入力をそのまま返します。

ピン方向備考
arrayin · dataarray
itemin · dataany
resultout · dataarray

Array Remove At

blueprint.collection.arrayRemoveAt · Pure

1つの要素を削除し、空いた隙間を詰めます。範囲外の添字は入力をそのまま返します。

ピン方向備考
arrayin · dataarray
indexin · dataintegerカード上のリテラルを受け付けます。
resultout · dataarray

Array Contains

blueprint.collection.arrayContains · Pure

Array Removeと同じ規則である JSON 値としての等価性で比較します。これは、同一性を比較するMathEqualより意図的に緩くなっています。

ピン方向備考
arrayin · dataarray
itemin · dataany
resultout · databoolean

Array Slice

blueprint.collection.arraySlice · Pure

endは含まれません。両方の境界は配列の範囲内にクランプされ、未配線のendは末尾まで実行されます。

ピン方向備考
arrayin · dataarray
startin · dataintegerカード上のリテラルを受け付けます。
endin · dataintegerカード上のリテラルを受け付けます。
resultout · dataarray

Array Join

blueprint.collection.arrayJoin · Pure

各要素をテキストに変換し——オブジェクトと配列は JSON になります——それらを連結します。文字列のJoinjsonを受け取るのに対し、こちらはarrayを受け取ります。

ピン方向備考
arrayin · dataarray
separatorin · datastringカード上のリテラルを受け付けます。
resultout · datastring

Array First

blueprint.collection.arrayFirst · Pure

ピン方向備考
arrayin · dataarray
itemout · datajson空の配列の場合はnull

Array Last

blueprint.collection.arrayLast · Pure

ピン方向備考
arrayin · dataarray
itemout · datajson空の配列の場合はnull

Array Is Empty

blueprint.collection.arrayIsEmpty · Pure

ピン方向備考
arrayin · dataarray
resultout · databoolean

Array Index Of

blueprint.collection.arrayIndexOf · Pure

itemと等しい最初の要素の位置。Array Containsと同じ方法で値により比較します。一致しない場合は-1

ピン方向備考
arrayin · dataarray
itemin · dataany
indexout · datainteger

Array Concat

blueprint.collection.arrayConcat · Pure

aに続けてbを並べた、新しい配列。

ピン方向備考
ain · dataarray
bin · dataarray
resultout · dataarray

Array Reverse

blueprint.collection.arrayReverse · Pure

ピン方向備考
arrayin · dataarray
resultout · dataarray

Array Unique

blueprint.collection.arrayUnique · Pure

後から出てくる重複を捨て、それぞれ最初のものだけを残します。要素は値によって比較されるため、同じフィールドを持つ2つのオブジェクトは1つとして扱われます。

ピン方向備考
arrayin · dataarray
resultout · dataarray

Array Range

blueprint.collection.arrayRange · Pure

startから始まり、それぞれstepずつ進むcount個の数値。ページが何かをN個描画する必要があり、その数値自体がコンテンツになる場合に使う配列です。

ピン方向備考
startin · dataintegerカード上のリテラルを受け付けます。既定値は0
countin · dataintegerカード上のリテラルを受け付けます。0以上にクランプされます。
stepin · dataintegerカード上のリテラルを受け付けます。既定値は1であり、step0の場合は1として読み取られます——そうしないと、範囲の形をしたstartcount個のコピーになってしまうためです。
resultout · dataarray

Array Find By Key

blueprint.collection.arrayFind · Pure

keyフィールドがvalueと等しい最初の要素と、その位置。

ピン方向備考
arrayin · dataarray
keyin · datastringフィールド名。カード上のリテラルを受け付けます。
valuein · dataany
itemout · datajson一致しない場合はnull
indexout · datainteger一致しない場合は-1

Array Filter By Key

blueprint.collection.arrayFilter · Pure

keyフィールドがvalueと等しいすべての要素を、元の順序のまま返します。

ピン方向備考
arrayin · dataarray
keyin · datastringカード上のリテラルを受け付けます。
valuein · dataany
resultout · dataarray

Array Sort By Key

blueprint.collection.arraySort · Pure

レコードをそのフィールドの1つによって並べ替えます。この key ベースの3つのノードは、比較関数ではなくフィールド名を受け取ります——比較関数は関数値であり、レコードをそのフィールドの1つで並べ替えることこそが、実際にリストが必要としているものだからです。

数値は数値として比較され、真偽値はfalsetrueより前になり、それ以外はすべてテキストとして、ランタイムが文字列を照合する方法で順序付けられます。フィールドが欠けている、nullである、または""である要素は、どちらの方向でも末尾に並びます。同順位は届いた順序を保ちます。空のkeyは配列をそのまま返します。

ピン方向備考
arrayin · dataarray
keyin · datastringカード上のリテラルを受け付けます。
descendingin · databooleanカード上のリテラルを受け付けます。
resultout · dataarray

JSON Array Length

blueprint.data.jsonArrayLength · Pure

Array Lengthの旧名であり、既存のグラフの解決を保つために残されています。配列でない値は0になります。新しいグラフではArray Lengthを使ってください。

ピン方向備考
valuein · dataarray
lengthout · datainteger

ジオメトリ

Vector2DRectは JSON ドキュメントではなく構造化された型であるため、Get JSON Fieldではなく専用のノードで組み立てたり分解したりします。すべての入力は、数値でない値を0として読み取ります。

Make Vector2D

blueprint.data.makeVector2d · Pure

ピン方向備考
xin · datafloatカード上のリテラルを受け付けます。
yin · datafloatカード上のリテラルを受け付けます。
valueout · dataVector2D

Vector2Dリテラルとは異なり、両方の成分を配線できます——これは、点を計算で求めるときにMove Mouse Toが必要とするものです。

Break Vector2D

blueprint.data.breakVector2d · Pure

ピン方向備考
valuein · dataVector2D
xout · datafloat
yout · datafloat

Make Rect

blueprint.data.makeRect · Pure

ピン方向備考
xin · datafloatカード上のリテラルを受け付けます。
yin · datafloatカード上のリテラルを受け付けます。
widthin · datafloatカード上のリテラルを受け付けます。
heightin · datafloatカード上のリテラルを受け付けます。
valueout · dataRect

負のwidthheightは、そのまま保持されるのではなく正規化されます——原点が移動し、大きさは正の値になります。そのため、得られる矩形は実際に描いたとおりのものになります。

Break Rect

blueprint.data.breakRect · Pure

ピン方向備考
valuein · dataRect
xout · datafloat
yout · datafloat
widthout · datafloat
heightout · datafloat

Rect Center

blueprint.data.rectCenter · Pure

矩形の4辺から等距離にある点。

ピン方向備考
valuein · dataRect
centerout · dataVector2D

オブジェクト

これらは、名前によって一度に1つのフィールドに作用します。パスは受け取りません——ネストした書き込みにはSet JSON Fieldを使ってください。オブジェクトでない入力は{}として読み取られます。

Object Keys

blueprint.collection.objectKeys · Pure

挿入順のフィールド名。配列やその他のオブジェクトでない値は、空の配列になります。

ピン方向備考
objectin · datajson
resultout · dataarray

Object Values

blueprint.collection.objectValues · Pure

ピン方向備考
objectin · datajson
resultout · dataarray

Object Set Field

blueprint.collection.objectSetField · Pure

fieldは単なる名前であり、その中のドットはパスの区切りではなく名前の一部として扱われます。空の名前はコピーをそのまま返します。

ピン方向備考
objectin · datajson
fieldin · datastringカード上のリテラルを受け付けます。
valuein · dataany
resultout · datajson

Object Remove Field

blueprint.collection.objectRemoveField · Pure

ピン方向備考
objectin · datajson
fieldin · datastringカード上のリテラルを受け付けます。
resultout · datajson

Object Merge

blueprint.collection.objectMerge · Pure

浅いマージであり、衝突した場合はbが優先されます。ネストしたオブジェクトはマージされず、置き換えられます。Merge JSON Objectは、別の型 id を持つ同一の操作です。

ピン方向備考
ain · datajson
bin · datajson
resultout · datajson

JSON

パスを扱うノードは、ドット記法でドキュメントを指し示します——user.profile.nameのように、また配列の添字には数値のセグメントを使います——items.0のように。キーの中のリテラルなドットは\.としてエスケープします。空のパスはドキュメント全体を意味するため、パスを指定しないSet JSON Fieldはそれをまるごと置き換えます。

Get JSON Field

blueprint.data.jsonGet · Pure

存在しないパスはnullになるため、存在しないフィールドとnullを保持するフィールドは同じように読み取られます。その違いが重要な場合はHas JSON Fieldを使ってください。

ピン方向備考
jsonin · datajson
pathin · datastringカード上のリテラルを受け付けます。
resultout · datajson

Has JSON Field

blueprint.data.jsonHas · Pure

真偽値ではなく存在の有無を見ます——値がnullであるフィールドも、存在はしています。

ピン方向備考
jsonin · datajson
pathin · datastringカード上のリテラルを受け付けます。
resultout · databoolean

Set JSON Field

blueprint.data.jsonSet · Pure

入力をコピーし、そのコピーへ書き込みます。パスの途中で欠けているコンテナは作成されます——次のセグメントが数値であれば配列、そうでなければオブジェクトになります。そのため、空のドキュメントへstats.hpを書き込むと{ "stats": { "hp": … } }が生成されます。

ピン方向備考
jsonin · datajson
pathin · datastringカード上のリテラルを受け付けます。
valuein · dataanyJSON セーフな形で保存されます。
resultout · datajson

Remove JSON Field

blueprint.data.jsonRemove · Pure

オブジェクトのフィールドを削除するか、配列の項目を取り除いて後続の要素を詰めます。存在しないパスは、コピーをそのまま返します。

ピン方向備考
jsonin · datajson
pathin · datastringカード上のリテラルを受け付けます。
resultout · datajson

Make Object

blueprint.data.jsonMakeObject · Pure

動的なピンの組からオブジェクトを組み立てるため、下のシグネチャは出力のみを示します。カード上の各フィールドは、Name入力(string、カード上のリテラルを受け付ける)とValue入力(any)を1組追加します。新規ノードは1組から始まります。名前は実行時に読み取られるため、配線されたNameはキーを計算で求められます。名前が空である、または前に出てきた名前と重複するフィールドはスキップされます。

ピン方向備考
resultout · datajson

Make Array

blueprint.data.jsonMakeArray · Pure

動的なItem入力をピンの順に並べて配列を組み立てるため、下のシグネチャは出力のみを示します。新規ノードはどのピンも持たない状態から始まります——カード上で追加してください。これがarray型を生成するノードであり、組み立てた配列をArray Lengthや List のSet Itemsへ渡す方法です。

ピン方向備考
resultout · dataarray

Merge JSON Object

blueprint.data.jsonMergeObject · Pure

bが優先される浅いマージであり、Object Mergeと同一です。オブジェクトでない入力は{}として扱われます。

ピン方向備考
ain · datajson
bin · datajson
resultout · datajson

Clone JSON

blueprint.data.jsonClone · Pure

深く、JSON セーフなコピー。書き込み系のノードはすでに入力をコピーしているため、これが必要になるのは、同じドキュメントを、互いの変更を見てはならない2つの分岐へ渡そうとするときだけです。

ピン方向備考
valuein · datajson
resultout · datajson

値を保持する

Memo

blueprint.data.memo

実行がそこを通過するときに一度だけ入力を読み取り、次に実行がそこを通過するまで、その値を出力に保持し続けます。

これは、このカタログの中で複数の消費先に供給してよい唯一のデータ出力です。それ以外はすべて単一消費であり、その理由は2つあります——純粋なノードは読み取るたびに再評価されるため、1つのRandom Floatを3つのピンに配線すると3つの数値が得られてしまいます。そして実行ノードの出力は、それを生成したパルスに属します。Memo にはただ1つの書き手——自分自身——しかいないため、どの読み取りも、その書き込みが残した値を返し、複数へ分岐させても誰も驚きません。

ピン方向備考
inin · exec
nextout · exec
valuein · dataany実行が通過する際に一度だけ読み取られます。
resultout · dataanyカード上では Value と表示されます。

意図的に latent ではなく同期的です——待つべきものが何もなく、latent なノードはインラインのストーリー値の中では使えないためです。functionグラフは純粋なままであるため、Memo をその中に置くことはできません。

このページの目次