こんにちは、Colory Games公式です。
先日、Unreal Engineプラグイン「Advanced Control Flow」をリリースしました!
「Advanced Control Flow」は、ブループリントにおいて複雑な制御文を1つのブループリントノードで実現することを目標としています。
Marketplace: Advanced Control Flow
C++でのビルドが必要になりますが、GitHubにて無料版も公開しています。
そしてもし気に入った方は、ぜひMarketplaceで購入を検討いただけると幸いです。
GitHub: colory-games/UEPlugin-AdvancedControlFlow
さて本記事では、プラグインが提供する2種類のブループリントノードについて紹介します。
MultiBranch: 複数の条件分岐を1つのノードで実現!
Branchノードを使って複数の条件分岐(C++のif-elseif-else文と同等の処理)を書こうとすると、一般的に複数のBranchを使って実現することになります。(上図の左)
2~3個の条件分岐程度なら問題にならないですが、10個の条件分岐をBranchで実現することを考えてみてください。
10個のBranchが並ぶことになり、本来のロジックを理解しにくくなるのは明らかです。
しかし MultiBranch ノードを利用すると、条件分岐の個数が増えても1つのノードを配置するだけで実現できるようになります。(上図の右)
配置するノード数が1つになることで、本来のロジックに集中できるようになるのは嬉しいですね。
Add Pinやノードを右クリックしたときのメニューから、条件分岐のピンを追加/削除できます。
必要な分だけ自由自在にピンの数を変更できるのも、MultiBranchノードを利用するメリットです。
Conditional Sequence: 条件にマッチした処理をすべて実行する
ご存知の通り、Sequenceノードは出力側の実行ピンにつなげた処理をすべて実行するノードです。
Sequenceノードの出力側の実行ピンにつなげた処理のうち、条件にマッチした処理のみを実行する場合を考えてみましょう。
通常は実行ピンの後ろにBranchノードを追加し、条件判定を行ってから実行したい処理を実行することになるでしょう。(上図の左)
Conditional Sequence ノードを利用すると、条件にマッチした処理をすべて実行することが容易になります。(上図の右)
Branchノードを出力側の実行ピンの後ろに配置する必要がなくなるため、本来のロジックに集中しやすくなります。
まとめ
本記事では「Advanced Control Flow」が提供する2種類のブループリントノードを紹介しました。
文章だけでは動作がわかりにくいという方は、YouTubeにアップロードした動画もぜひ確認してみてください。