見出し画像

超初心者のUE5学習メモ-20-:ブループリントを読み解け!「ノードの種類3」

#Unreal_Engine_5 の学習を続けるよー

前回の続きでコントローラのブループリントを読み解いていきます。今日でノードの種類を見るのはひと段落かな!

《今日学習する範囲》

引き続き「TopDownController」というBPを見て行きます。

前回まで大体のノードを見てきましたが、BPの中にあるBPである「関数」全体の流れとかはまだ見てないのでその辺りを学んでいきます。

  • 関数「Get Location Under Finger(Cursor)」

  • 関数「Move to Hit Location」

  • 関数「Follow Mouse or Finger」

今日はこれらの関数に目を通して、次回で実行の流れ全体を把握していこう!


《関数を見て行こう!》

以前もまとめた内容にはなるんだけど、復習として「関数とは何か」という点から入ります。

『関数』とは簡単に言えば「入力された情報を処理し、結果を出力する装置」です。

どういう処理かは関数ごとに設定でき、例えると「入力した数値を5倍して出力する」という装置だ。まあこの一例は演算子ノードで出来るんだけども。

どうやら入力がない場合もあるんだけども、関数の中で何らかの処理があって出力される。それを念頭に置いてそれぞれ見て行きましょう。


《Get Location Under Finger(Cursor)》

毎度の如く、それぞれのノードに分けて見て行こう。


◆Get Location Under Cursor

これは関数がスタートするノード。日本語で簡単に「開始ノード」としておこうか。

この関数では「入力がない」ようなので、このノードからは実行の流れを占めすエッジのみが出ています。つまりはBPを実行させるためだけのノードだね。


◆Get Hit Result Under Cursor by Channel

日本語訳すると「チャンネルで、カーソル下のヒット結果」という感じだろうか。自分でも何言ってるか分からないや。

このノードがあるのは「ゲーム」カテゴリの「プレイヤー」カテゴリ内。そして「by Channel」以外にも「for Objects」があるんだけど、それぞれの違いは……うん、まだ分からんな。

なんか色んな入力があります。


・左上:ターゲット

多分なんだけど、「どのイベントorオブジェクト」からデータを引っ張ってくるかということだと思う。現在は「self」になっているので、このイベントそのものを指している……はず。

・左中:Trace Channel

トレースチャンネル。クリックすると「可視性」「カメラ」の2つを選べるんだけど、私はもう違いが分からんです。

・左下:Trace Complex

トレースコンプレックス。他のサイトに書いてある通りだと「衝突判定を細かい形状に対応させるのか」ということらしい。よく分からんことばっかりである。

・右上:Hit Result

ヒット結果。このノードだと「カーソル位置が他のオブジェクトにヒットした場合、ヒットの結果を出す」……みたいな機能のはず。

・右下:Return Value

戻し値。BooleanなのでTrue/Falseの結果を出す。なので前項と同じ結果をBooleanの変数として出す……ということだと思われる。


◆Break Hit Result

「ヒット結果から情報を抽出する」というノードらしい。

どうやらヒット結果には位置情報以外にも、どのオブジェクトにヒットしたかとか、ヒットした場所の距離とか色んな情報が入っているそうだ。そこから次のノードに使用する情報をエッジで繋ぐ……という機能だ。

そして使える情報は……

地獄のような量である。えぐい数なので見なかったことにします。

なお今回は「Location」という「ヒットした際のカーソルの位置情報」を使っているようです。


◆リターンノード

最後に「返し値」のノード。つまりこの関数から出力する情報をまとめるノードです。

ここで入力された情報が……

このように関数ノードから出力されるわけだ。

なお今回は「Break Hit result」から出た「Location(位置情報)」を出力していますが、変数をこのノードに繋ぐことで複数の変数を出力できるみたいです。

とりあえずこのリターンノードが、変数の終わりを示すノードになります。


《Move to Hit Location》

お次はこちら、「Set Destination Input」の最後にある関数です。

これは「クリックが離されている状態の場合」に関数が実行されます。あと入力として先ほどやった「Get Location Under Cursor」から出た位置情報が繋がってるね。

そして関数の中身が……

こうなってます。よし、それぞれ見て行きましょう。


◆Move to Hit Location

開始ノードですね。ちなみにこのノードの名前を変更すると「関数そのものの名前」が変わります。


◆Self

「Self」の情報を出力するノード……っぽい。似ているが変数のノードではない。

このイベント自身を指す「Self」を入力するためのノードだと思われる。


◆Simple Move to Location

これは「ナビゲーション」カテゴリに入っているノードで、このノードそのものが「イベントを指定した位置へ移動する」という機能を持っているみたい。

今回だとSelf(このBPがあるイベント自身)を、Location(位置情報)へと移動させる……という感じだと思う。

つまり「Controller」で移動させるイベントを指定して、「Goal」で移動先の位置情報を指定するって感じだよね。多分、メイビー。


◆FXCursor

こちらは「変数」のノード。

「FXCursor」という名前の変数を出力するノードになります。なお変数の型は「Niagara System」というものらしいんだけど、システムってのが何を指してるか分からんのよね。

このUnreal Engineでは「Niagara」というエフェクト系の機能があるので、その辺りの情報だと思うんだけど……まだ勉強してないので分からんです。

パス!


◆Spawn System at Location

うーむ、数が多い。困る。

とりあえずこのノードがどういうやつなのか見て見ると……

「指定したワールド位置/回転でナイアガラシステムをスポーンします」とのこと。

……うん、分からんね。とりあえず「Niagara」について学ばないと理解が難しそうです。なのでここまで学習しましたが、この辺りでこの関数は終わっておきましょう!


《Follow Mouse or Finger》

最後の関数は「Event Tick」というフレームごとに実行されるBPの最後にある、「Follow Mouse or Finger」です。

日本語にすると「マウスor指を追う」かな。

ちなみに入力されているLocationは、最初にやった関数である「Get Location Under Cursor/Finger」で出力される位置情報です。こいつめっちゃ使われてるな。

ほいじゃこいつの中身を見てみると……

ちょっと複雑だけど、ノードの数はそんなに多くありません。また1つずつ見て行こう!


◆開始ノード

いつもの開始ノードです。今回も位置情報が入力されてます。


◆Get Controlled Pawn

日本語に訳すと「コントロールしたポーンを獲得」。どうやら現在コントロールされているポーンの情報が出力されるそうです。

ポーンとは「キャラクターなどのオブジェクト」のこと。今回の場合だとこのBPが入っている、コントロールするキャラの情報が出力されるみたいです。


◆Get Actor Location

こちらも訳すと「アクターの位置を獲得」。解説をまとめると「アクタ(オブジェクト)のルートボーンの位置を出力する」という感じかな。

ルートボーン(UE上ではRoot Component)というのは、3Dモデルの基準位置的なもの。つまりはどこにいるかってことと同義だね。

なお入力のターゲットは前項の「Get Controlled Pawn」で出力された、コントロールするキャラの情報が繋がってます。


◆Get Unit Direction (Vector)

「ユニットの方向を獲得」するノード。

左側の「From」に入った位置から、「To」に入った位置への方向に関する情報が出力されるみたいです。

なお方向の情報は3つの数値のようなので、おそらくX位置、Y位置、Z位置で方向を出してるんだと思います。


◆Add Movement Input

訳すと「移動の入力を追加する」という感じか。

おそらく「ターゲット」に指定したアクタを、「World Direction」で方向を決めて、アクタを移動させるノードだと思われる。

ターゲットには「Get Controlled Pawn」で出力したコントロールするキャラの情報が入り、World Directionには前項の「Get Unit Direction」で出力された方向が入ります。


……ということでこのBPにある関数に目を通すことができました。今回はこれくらいにしといてやる!


《今日の学習まとめ》


  • 「関数」は小さなBP

  • 関数の始まりは「開始ノード」、入力を増やすことができる

  • 「Get Hit Result Under Cursor」では、カーソル位置のヒット情報を出力する

  • 「Break Hit Result」では、ヒット情報から様々な情報を出力する

  • 「リターンノード」は関数の結果を出力する

  • 「Self」では、イベント自身を指すターゲット情報を出力する

  • 「Simple Move to Location」では、ターゲットを位置情報へ移動させる

  • 「Spawn System at Location」では、Niagaraシステムを位置情報で出現させる(?)

  • 「Get Controlled Pawn」では、コントロールしているキャラ(アクタ)の情報を出力する

  • 「Get Actor Location」では、入力されたアクタの位置情報を出力する

  • 「Get Unit Direction」では、入力された元の位置から向かう位置への方向を出力する

  • 「Add Movement Input」では、入力されたターゲットを方向へ移動させる


はい、今回もいろんなノードを知りました。

正直いっぱいありすぎて訳分からんけどね、ある程度どういう仕組みで動いているのか理解してきた気がします。次回はそれぞれのノードをまとめて実際の流れを見て行こう!

またまた長くなりました、読んでいただきありがとうございます。

では、また次回お会いしましょう!


【短編ビジュアルノベルの制作中です↓】

【メンバーシップも募集中です】


いいなと思ったら応援しよう!

恒石涼平@ゲームシナリオライター
もしも記事が参考になったら、スキやフォローよろしくね! 気が向いた時はサポートで支援していただけると嬉しいです。