今までありそうでなかったのが、このブループリントノードが示す色についての説明です。わかってしまうとなんでもないものなんですが、これが最初は結構苦戦するところなのかもしれません。
というわけで改めて、ブループリントノードの色についてを解説します。
ノードの分類
大きくノードをわけると以下の3つに分類されます。
- イベント系ノード
- 関数・マクロ系ノード
- 変数系ノード
基本的にそれぞれのノードの色は決まっているのですが、例外もありますので、注意してください。
わかりやすいところか紹介していきます。
イベント系ノード
一番わかりやすいのがこのイベント系ノードです。イベントノードはあらゆるノードのスタート地点となるノードで色も赤と固定されています。
最も目につく色でかつスタート地点となるノードなので、とても重要です。
とりあえず赤色のノードがあった場合はそこがスタート地点と思っていいでしょう。
関数・マクロ系ノード
次に重要なのが関数やマクロ系ノードです。
まず関数は通常の関数とPure関数の2種類が存在しています。通常の関数は主に青に設定されていて、Pure関数の場合は緑です。そもそも通常の関数はいいとして、Pure関数とはなんぞや?と思いますので、説明しておきます。
通常の関数は入力ピンと出力ピンがあり、ターゲットが持つ値を関数内部で変更することが許容されます。
逆にPure関数は入力ピンも出力ピンも存在せず、関数自体が必ず何かしらの値を返します。※厳密には返さないことも可能だが、それでは関数自体の存在価値がない。
そしてPure関数はターゲットが持つ値を変更したりすることができません。C++的に言えば、const関数と言えばわかりやすいかもしれません。もしくはGetterですね。
最後にマクロですが、これは用途としては関数と同じようなものですが、扱いは別物として扱われます。マクロ自体はグレーのノードとなります。関数やマクロの違いは以下の記事を参考にしてください。
変数系ノード
変数系ノードは一番色の数が多いです。なぜなら変数タイプにより色が違うからです。単純なところでは、Bool型だと赤茶、String型だと紫、Vector型だと黄色、みたいな具合です。
更に構造体ノードだと青、Objectノードだと水色、Classノードは紺といった具合です。
構造体自体は一般的な変数などを束ねることができるノードです。
ただし、構造体ノードはVector、Rotator、Transformなど一部例外で別の色を持っているものもありますので、注意してください。
Objectはアクターなどを作成すると定義されるノードです。アクターの実体を使用する場合はObjectノードを呼び出すことになります。
Classノードは実体を持たないObjectです。レベル上に存在しない場合でも使用可能ですが、当然実体が存在しないので、直接何かを動かしたりすることはできません。
例外系ノード
実はこの他にも色々と例外がありますので紹介しておきます。
まず、Objectをキャストし、別のObjectへと変換するキャストノード。色は青緑。実際には関数のように動作するので、あまり意識する必要はありません。
次にタイムラインノード。これはノード自体が特別扱いになっており、色も黄色になっています。
最後に色を持たないノードたち。これは数学式ノードや『int -> string』の変換ノードなどがそれにあたります。少し特殊ですが、扱いそのものは難しくありません。
以上のように様々な色のノードがありますが、実際に意識する必要があるのは、上記3つの種類に大きく別れているという程度のことです。また例外も一部存在していますので、あまり色がそれだからと深く考えすぎない方がいいでしょう。