関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2014.06.10UE4UE/ 初心者向け
改訂バージョン: Unreal Engine 4.19 |
こちらの記事には[UE5]改定版が存在します。 UE5向けの記事はこちら。 |
今回は、初めてBlueprintを触るときに知っておきたい、基本的なフロー制御用のノードを、いくつかご紹介したいと思います。
C言語などのif文に相当する、もっとも基本的な分岐ノードです。
「Condition」によって、「True」「False」のどちらかへ処理が流れます。
ノードの検索の際に「branch」だけでなく「if」と入力しても見つけることが出来ます。
例)
まずは「Then 0」に処理が流れ、実行し終わったら次に「Then 1」へ、…と、順番に実行していきます。
出力ピンは「Add pin +」ボタンを押すことで 2, 3, 4, …と、いくつでも追加可能です。
機能ごとに処理を整理したいときに便利なノードです。
例)
C#のforeach文などに相当する繰り返しノードです。
入力ピン「Array」に含まれる全要素について、「Loop Body」から繋がった処理を繰り返します。
「Array Element」には繰り返し毎に「Array」の要素が、「Array Index」にはArrayの何番目の要素を取り出しているかが出力されます。
ループが終了すると、「Completed」に処理が流れます。
例)
他にも、インデックスを指定して繰り返す ForLoop や、途中でループを終了できる ForLoopWithBreak, ForEachloopWithBreak, 条件が成立する限り繰り返す WhileLoop などの繰り返し用のノードがあります。
用途によって使い分けることになりますが、筆者はForEachLoopを使う機会が多いです。
C言語などのswitch文に相当する分岐ノードです。
「Selection」の値に応じた出力ピンへ処理が流れます。
該当する出力ピンが無い場合には、「Default」ピンへ処理が流れます。
StringやNemeでは「Add pin +」ボタンがありませんが、ノードを選択して「Details」ウィンドウから出力ピンを追加することが出来ます。
最初の1回だけ「Completed」に処理が流れます。2回目以降は何もしません。
「Reset」に処理を流すと、次回もう一度「Completed」に処理が流れるようになります。
Event Tick の直後に最初に1回だけ行いたい処理を書く、というような使い方が便利です。
2回目以降はどこへも処理が流れないので、続きを記述したい場合は、Sequenceなどと組み合わせて使用しましょう。
例)
もう少し複雑ですが他にも、指定回数だけ通過できる Do N や、自由に開閉をコントロールできる Gate や MultiGate のようなノードもあります。
C言語の3項演算子のような使い方が出来るノードです。
処理の流れを制御するものではなく、条件によって取り出す値を切り替えるためのノードです。
「Pick A」の条件によって、「A」「B」どちらかの値が「Return Value」に出力されます。
Int, Float, String 以外にも、Vector, Color, Object など、様々な型のデータで使用可能です。
例)
今回は基本的な機能を持ったノードをいくつかご紹介しました。
もう少し複雑な機能もありますが、巨大なBlueprintも、ほとんどはこのような基本的な機能の組み合わせで作られていきます。
各ノードの機能が分かれば、大きなサンプルも読み進めることが出来るようになります。
そうすれば、必要な箇所を切り出して、自分用にカスタムすることも出来るようになります。
UE4は非常に多くのサンプルが提供されています。それらをどんどん自分のゲーム開発に利用していきましょう!