ノード
組み込みノードカタログ。パレットの分類ごとに1ページ、各ノードのシグネチャを収録
組み込みカタログには、28 の分類にまたがる 655 個のノードがあります。分類とは、パレット内でナビゲートするためのグループ分けのことで、これらのページもエディターと同じ構成になっています。Studio の組み込みプラグインが追加するノードは、組み込みプラグインに別途まとめています。
ノードの読み方
各ノードは次のように記載されています。
Delay
blueprint.flow.delay· Latent
見出しの下の最初の行がそのノードの type id です——ドキュメントに保存される値であり、プラグインから登録する際に使う値でもあります。その後に、そのノードに当てはまるフラグが続きます。
| フラグ | 意味 |
|---|---|
Pure | 副作用がなく、exec ピンを持ちません。出力が読み取られたときに計算され、Blueprint Value の中で使える条件の一つです。 |
Latent | 解決するまでグラフを一時停止します。Blueprint Value(Call Fn を除く)、インラインのストーリー値、分岐条件では提供されません。 |
Settings → General → Developer options(設定 → 一般 → 開発者オプション)がオンのときは、パレットの各ノードの行の右側にも type id が表示されます。
Pure であること自体は、そのノードが Blueprint Value の中で使えることを意味しません。それは別の、より狭い規則です:ノードは pure であり、かつ latent でなく、かつ許可された分類(Data、List、Math、Time、Text、Slider、Displayable、Element、Game、Localization)のいずれかに属していなければなりません。これに加えて、少数の個別の例外(Init と On Flush のヘッド、Skip Delay を除く latent でない Flow、ローカル変数へのアクセス、Memo、Call Fn、コメント、Return Value、Get Saved Var、および 5 つの Page の読み取り:Get Page Props、Get Page Param、3 つの Is Surface …)があります。widgetMain にスコープされた Self ノードは、フラグに関係なく除外されます。Blueprint Value の中からウィジェットに到達するには、Element リテラルと Element カテゴリーの読み取りノードを使います。
続いて、ピン表が示されます。
| ピン | 方向 | 型 | 備考 |
|---|---|---|---|
in | in · exec | — | |
duration | in · data | float | 秒。カード上にリテラル値を入力できます。 |
completed | out · exec | — | 待機が終わると発火します。 |
token | out · data | Timer | Skip Delay に渡すと待機を途中で打ち切れます。 |
exec ピンは実行の流れを運び、data ピンは値を運びます。array<struct:nl.ending> のような型はエンディングの配列で、カードには Ending list(エンディングのリスト)と表示されます。構造体の一覧は構造体にあります。カード上にリテラル値を入力できます とは、接続を引く代わりにノードカード上に値を直接入力できるという意味です。ノードによっては動的ピンを持つものがあります。選択した変数、選んだ fn のシグネチャ、あるいは追加したケースから導出されるピンで、これらは決まった表を示せないため文章で説明されます。
利用可否
このカタログに載っているノードが、必ずしもパレットに表示されるとは限りません。次のフィルターが適用されます。
- Blueprint Value。 Blueprint Value では、上の規則が認めるノードだけが提供されます。
- インラインのストーリー値。 インラインのストーリー値と分岐条件は latent ノードを受け付けません。
- オーナーとウィジェットの能力。 Self ノードは、その能力を持つウィジェットのブループリントにのみ表示されます。たとえば
Set Slider Valueは、Text ウィジェットのブループリントには提供されません。 - 既存のバインディング。 Element ノードは、接続先となる互換性のある
Element、Element Flush、Element Clickのいずれかのノードがすでにグラフにある場合にのみ表示されます。 - 項目コンテキスト。
Get List Item Index、Get List Item Key、Get List Item Count、Get List Item Propsはエレメントがレンダリングしている項目を読み取るため、行がスコープに入りうる場所(List の項目テンプレート内にあるエレメントのブループリントなど)にのみ表示されます。Get Fieldはすべてのブループリントで表示され、そのような場所で Object を接続しない場合は現在の行を読み取ります。 - Story Action ブループリント。 ストーリー行から呼び出されるブループリントには、実行中のゲームやそのインターフェースを操作するノードは提供されません。App、Localization、Network、Sound、Voice のノードはなく、Game のノードもほぼすべて提供されません。
互換性のある接続元が複数存在する場合でも、パレットにはそのノードが1つだけ表示されます。追加すると、接続元が1つだけならそこへ自動的に接続されます。複数ある場合は、対象の入力を未接続のまま残し、選択できるようにします。
同じ種類のノード
6 つの比較ノードや 4 つのキー入力の Head のように、1 つの操作の別の形にあたるノードがあります。パレットは、このようなノードの組を同じ種類のノードとしてまとめて表示します。
- 一覧するとき。 Search nodes(ノードを検索)の欄が空のとき、同じ種類のノードは 1 行にまとまります。行には種類の名前と、その下に分類とノード数が表示されます(Math · 6 nodes(数学 · 6 個のノード)など)。行にポインターを合わせると、含まれるノードが表示されます。行を選ぶと、その種類の最初のノード(下の表で先頭にあるノード)が追加されます。Element ノードも同じようにまとめられ、紐づけられた要素ごとに 1 行になります。
- 検索するとき。 検索すると、同じ種類のノードもそれぞれ 1 行ずつ表示されます。
>またはより大きいと入力するとGreater Thanが見つかり、種類の名前(比較など)を入力すると、その種類のノードがすべて表示されます。 - 配置したノードを切り替えるとき。 同じ種類のノードにまとめられたノードのカードには、タイトルの横に ▾ ボタン Switch to another node of this kind(同じ種類の別のノードに切り替える)があります。押すと、その種類のうちこのブループリントに置けるノードが表示され、現在のノードにはチェックが付いています。別のノードを選ぶと、カードはその場でそのノードに変わります。
カードが同じ種類の別のノードに変わるときは、次のようになります。
- 新しいノードに対応するピンがあり、そのピンがエッジを受け付ける場合、エッジは接続されたまま残ります。
Set BGM VolumeのbgmVolumeへのエッジは、カードがSet SFX Volumeに変わるとsoundVolumeへのエッジになります。 - 新しいノードが受け付けないエッジは削除されます。
- 新しいノードに同じ設定がある場合、設定はそのまま残ります。
Integerリテラルの3は、カードがFloatに変わっても3のままです。それ以外の設定は削除され(On Key DownがAny Key Downに変わったときの、選んでいたキーなど)、新しいノードの設定は既定値から始まります。 - カード上に入力した値は、対応するピンが同じ型の値を受け付ける場合はそのピンに移り、そうでない場合は削除されます。
- Ctrl+Z(macOS では Cmd+Z)で、元のノードとそのエッジ、値が 1 ステップで元に戻ります。
まとめて表示されるのはパレットの中だけです。各ノードは自分の名前と type id をそのまま持ち、既存のグラフは変わりません。
| 種類 | ノード | 分類 |
|---|---|---|
| On Key(キー入力のとき) | On Key Down、On Key Up、Any Key Down、Any Key Up | Events |
| On Gamepad Button(ゲームパッドのボタン入力のとき) | On Gamepad Button Down、On Gamepad Button Up、Any Gamepad Button Down、Any Gamepad Button Up | Events |
| Literal(リテラル) | String、Integer、Float、Boolean、Color、Vector2D、Rect、JSON、Null | Data |
| Convert Type(型を変換) | To String、To Integer、To Float、To Boolean、To JSON | Data |
| Check Type(型を調べる) | Is String、Is Number、Is Boolean、Is Array、Is Object、Is Null | Data |
| Trim Whitespace(空白を取り除く) | Trim、Trim Start、Trim End | Data |
| Change Case(大文字・小文字を変える) | To Lower Case、To Upper Case、Capitalize | Data |
| Replace Text(文字列を置換) | Replace、Replace All | Data |
| Pad Text(文字で埋める) | Pad Start、Pad End | Data |
| Rounding(端数処理) | Round、Floor、Ceil | Math |
| Random Number(乱数) | Random Integer、Random Float | Math |
| Compare(比較) | Equal、Not Equal、Greater Than、Greater Than Or Equal、Less Than、Less Than Or Equal | Math |
| Get Preference(設定を取得) | 17 個:「設定」の節にある Get … ノードのうち Get Track Volume を除くすべて。先頭は Get Auto Forward | Game |
| Set Preference(設定を変更) | 17 個:「設定」の節にある Set … ノードのうち Set Track Volume を除くすべて。先頭は Set Auto Forward | Game |
| Get Save Info(セーブ情報を取得) | Get Save Time、Get Save Playtime、Get Save Line、Get Save Story、Get Save Preview、Get Save Metadata | Game |
| Get Text Style(文字のスタイルを取得) | Get Font、Get Font Size、Get Font Weight、Get Text Color、Get Line Height、Get Text Align、Get Text Vertical Align、Get Wrap Mode、Get Effects | Text、Element |
| Set Text Style(文字のスタイルを設定) | 同じ 9 つのプロパティの Set … ノード | Text、Element |
| Get Image Framing(画像の表示方法を取得) | Get Image Fit Mode、Get Image Flip X、Get Image Flip Y、Get Image Crop Rect | Image、Element |
| Set Image Framing(画像の表示方法を設定) | 同じ 4 つのプロパティの Set … ノード | Image、Element |
| Get Visible or Enabled(表示・有効状態を取得) | 1 種類のウィジェットの Get Visible と Get Enabled(Button、Container、Frame、Image、List、Slider、Switch、Text)。Element ノードでは Get Button Visible と Get Button Enabled、ほかのウィジェットも同様 | 各ウィジェットのページ、Element |
| Set Visible or Enabled(表示・有効状態を設定) | 1 種類のウィジェットの Set Visible と Set Enabled、および対応する Element ノード | 各ウィジェットのページ、Element |
Text Style、Image Framing、Visible or Enabled は、ウィジェット自身のノードと Element ノードとで別の種類になり、Visible or Enabled はさらにウィジェットの種類ごとに分かれます。カードの ▾ に表示されるのは、そのカードと同じ種類のノードだけです。
分類
ノード数は、パレットに表示されるノードの数です。同じ種類のノードは含まれるノードをすべて数えます。パレットの分類のチップに出る数は同じ種類のノードを 1 行として数えるため、これより小さくなることがあります。パレットから非表示になり、旧いグラフを動かすために残されているノードは、各分類のページに記載していますが、ノード数には含めていません。
| 分類 | ノード数 | 内容 |
|---|---|---|
| Events | 58 | エントリーポイント:ライフサイクル、入力、Surface の遷移、Broadcast。 |
| Flow | 12 | 分岐、ループ、順序制御、遅延。 |
| Functions | 3 | fn の宣言、呼び出し、リターン。 |
| Variables | 9 | ブループリント変数と永続変数の宣言と読み取り。 |
| Data | 96 | リテラル、変換、述語、JSON、文字列、配列、構造体のフィールド。 |
| Math | 25 | 算術、丸め、ブール論理、比較。 |
| Time | 15 | 時刻、カレンダー、テキストとしての日付。 |
| Game | 97 | ストーリー制御、ダイアログ、設定、セーブ、バックログ。 |
| App | 31 | Surface のナビゲーション、ウィンドウ、アプリケーションのライフタイム。 |
| Localization | 6 | ゲームのプレイヤー向けロケールと、プロジェクトの翻訳キー。 |
| Network | 3 | HTTP リクエストとレスポンスの読み取り。 |
| Displayable | 9 | ジオメトリ、外観バリアント、プロパティアニメーション。 |
| Element | 137 | 上記すべてを、自分自身ではなく接続された Element に対して行うもの。 |
| Image | 16 | 画像アセットとフィル。 |
| Text | 28 | テキストの内容とタイポグラフィ。 |
| Text Input | 3 | 編集可能なテキストフィールド。 |
| Button | 7 | ボタンのラベルとポインター。 |
| Container | 6 | コンテナのレイアウトと子要素。 |
| Frame | 8 | Frame が表示する Page と、その params。 |
| List | 32 | 実行時の項目、選択、スクロール、項目のコンテキスト。 |
| Slider | 9 | 値、範囲、スナップ。 |
| Debug | 2 | ロギングとグラフ内コメント。 |
| Input | 5 | プレイヤーがどのデバイスを使っているか、アクションが押され続けているかどうか、そしてゲームパッドのボタンとスティック。 |
| Sound | 9 | インターフェース用の音声クリップの再生、それに再びアクセスするためのハンドル、そしてページの音楽。 |
| Voice | 5 | 収録されたセリフの再生と、現在有効な吹き替え言語。 |
| Component | 1 | コンポーネントのある配置を別の配置と区別するパラメータ。 |
| Switch | 9 | Switch ウィジェットのチェック状態、および有効・表示フラグ。 |
| Video | 14 | 動画ウィジェットの再生、一時停止、停止、再生位置の移動、および音量・消音・ループ・速さ。 |