2021-01-10

【Unreal Engine 4】条件分岐どうやるの?

プログラミングで言うところのif文。UE4では「ブランチ」というノードを使う

Article Image

条件分岐

条件分岐をBlueprintノードで作っていく。

※プログラミングでいうところのif文

基本:ブランチを使う

条件分岐はブランチというノードを使う。

イベントグラフにて右クリックしたウィンドウから

image-20210110145703825

ifで検索すれば「ブランチ」が現れるのでクリック

image-20210110152228762

左側ConditionにTrue/Falseが入力されるとそれに応じて右側の処理が枝分かれするという仕組み。

True/False?どう取るの?

ConditionにつなぐTrue/Falseはどう取るのだろうか。

簡単なサンプルを使う

スペースキーでジャンプしたカウントを取る変数を用意した(別途プログラムしてある)

Jump_Count

image-20210110152540082

右側の緑ピンを引っ張って適当なところでドロップするとノードの追加画面が現れる

image-20210110153027368

これで「ジャンプカウントがn回以上でTrueを返す」ノードができた。

n回のnはノードの下部に数字を入れるだけでOK

image-20210110153358146

これでTrue/Falseを返すノードができたので後は赤いピンをブランチにつなぐ。

実例

これを使ってカウントが3を超えたら画面に文字を表示するようにした例が次

image-20210110153636084

一度コンパイルして実行

image-20210110154041720

何度かジャンプするとこのように表示される。

余談:回数の判断にバグ

余談だがこれはちょいバグあり。

条件はジャンプ回数>3なので4回目のジャンプで表示されるはずが5回のジャンプが必要になる。

なぜだろうか。

原因はジャンプ回数を加算するプログラムを並行で走らせているから

image-20210110154407691

解決策

こういう処理はかならず手順通りに計算されるようにしよう

image-20210110154822130

正しく4回目のジャンプでテキストが表示されるようになる。

最後に

正直ブランチというより大なり小なりの条件式のノードの出し方がよくわからないパターンのほうが多そうに感じた。

ifではなくブランチと表現する独特な箇所もプログラム一般から見ると戸惑いがある。

ともかく基本中の基本なので覚えてないと何もできないはずだ。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)