T.TAO
Back to Blog
/8 min read/Game Engine

UE4 #2 Node基礎

#game-engine
UE4 #2 Node基礎

#UnrealEngine4#GameEngine

ノードの基本

ノードは以下の3つの部分で構成されます:タイトル、入力、出力。

差し込んだりドラッグアウトしたりできるプラグをpin(ピン)と呼びます。

イベントノード

イベントノードは、特定のイベントが発生したときにトリガーされます。例えば、使用したEvent BeginPlayノードは、ゲームが開始されたときに実行されます。

コマンドノード

コマンドノードは一連の関数を実行します。2種類あります:青いタイトルのものは「execution nodes(実行ノード)」、緑のタイトルのものは「read nodes(読み取りノード)」と呼ばれます。実行ノードには2つの白い矢印があり、その前に実行されるノードと後に実行されるノードを決定できます。読み取りノードには白い矢印がありません。値のみを生成するためです。

ノードによっては値の一部を隠していることもあります。例えば、print stringノードの下矢印をクリックすると、隠れた値が表示されます:

アノテーションの作成

ノードを右クリックすると、できることのリストが表示されます:

この時点では、まずノードアノテーションに焦点を当てましょう。

Node Commentの入力フィールドに何か書くと、この単一ノードにアノテーションを付けることができます。

複数のノードを選択すると、選択範囲用のコメントを作成できます。

ノード接続の例

これは画面に文字列「UE4」を印刷するよう求めています。「Make Literal String」ノードは、Value(UE4)の入力フィールドに入力したものを文字列にし、戻り値が「Print String」ノードに渡されます。最終的に、この文字列が印刷されます。

同様に、これもでき、同じ効果があるはずです:

同様に「Make Literal Int」もできます。ここではcastノードが自動的に適用されます。通常、文字列をintとして渡すことはできないためです。

変数

まず、ノードで簡単な足し算をしましょう。「+」ノードを検索し、「int + int」ノードを見つけます。

以下のようなノードを作成するはずです:

「Make Literal Int」ノードを再度使用して、比較的簡単な接続を作成しましょう。

UE4でこれを確認して結果を確認してください。1と2を足したので、画面に3が表示されるはずです。

UE4はネイティブで数式の入力に対応しています。リストの一番下にあります。本当に複雑なものを追加しましょう。必要に応じて括弧を含めることを常に忘れないでください。

入力値が自動生成されているのがわかります。変数名を変更しても構いません:

基本的な算術はこれくらいです。

変数に進みましょう。プログラミング言語では通常、変数を次のように宣言します:

Plain Textint a = 100;
int b;
int c,d,e;

string res = "";
bool success = false;

など。UE4でも変数の名前と型を識別する必要があり、それらはデータのコンテナでもあります。

blueprintエディタの左側に「variables」が見えます。「+ variable」の黄色いボタンをクリックしてください。(その領域の横にマウスをホバー)

詳細はエディタの右側に表示されます。変数名、型、プライバシー、カテゴリ、ツールチップなどを決定できます。デフォルト値も決定できます。今は文字列を作成しましょう。

このように設定すると、プログラミング言語の宣言とほぼ同等です:

Plain Textstring message = "I am a message.";

変数を左パネルからエディタにドラッグすることで、変数の値を設定または取得できます。

また、数式は同じ名前の変数があるか自動的にチェックすることに注目してください。例えば:

「Tony」「Steve」という入力はもうありません。式はこれらの変数を入力として計算して返すだけです。

配列

プログラミング言語では、配列やリストを宣言することがあります:

Plain Textint[] numbers = new int[5];
int[] numbers;
int* numbers = malloc(sizeof(int) * 5);

UE4でも変数配列を作成できます。

変数型のラベルをクリックし、「array」をクリックすると、整数配列を作成できます。

blueprintをコンパイルすると、配列の初期値を設定できます。

「Set Array Elem」ノードを使用して、指定したインデックスの要素の値を設定できます。

これは1番目のアイテムの値を1に設定しています。UE4の配列も0から始まるインデックスであることに注目してください。1番目と言うとき、実際には0番目のアイテムを指します。1番目と言うとき、2番目のアイテムを指します。以下同様です。

同様に値を取得することもできます。「Get Array」を検索してください。「get(ref)」と「get(copy)」が見えるかもしれません。違いは後で説明します。

配列に値を追加することもできます。

これは配列に0を追加することを意味します。

配列から値を削除したり、ノードで配列を作成したりすることもできます。ご自身のUE4で試して、ノードの構成を確認してください。

以上がノードと変数の基本知識です。