【UE5】Random Boolでゲームに運要素を追加しよう!確率分岐処理!
ノード解説とかいうカテゴリーに分類しているこちらの記事ですが、
今回は、演算の項目にある、Random Bool系統のノードについて、テストしていこう!
という企画をやっていきたいと思います!
各種ノードがどのような挙動をするのか楽しみです!それではやっていきましょう!
Random Bool

まずは、Random Boolからですかね!
どうやら、通知が入るたびに、50%の確率で「True」もしくは、「False」を返してくれるようです!
コイントスをイメージすると分かりやすいのかな?ゲームプレイで出力結果を見てみましょう!

通知が入るたびに確かに真偽値を返していますね!
Random Bool with Weight

続いて、Random Bool with Weightを見ていきましょう!
こちらのノードは、指定した確率でTrueを返してくれるノードのようです。指定値については、%になるので、小数点以下で設定してあげる必要があるとのことです。
例)0.7=70%の確率でTrueを返し、30%の確率でFalseを返す

ゲームプレイでは、数値を0.1(10%)に設定してデバッグしてみました!
10%なので、ほとんどFalseが返されてますね!
自分で確率を指定することができるので、使い勝手がよいかも!
ちなみに値の範囲は0~1になるそうです。
Random Bool from Stream

Random Bool from Streamは、再現性のあるランダム(疑似乱数)でTrue/Flaseを生成するノードらしいです。
通常のRandom Boolは毎回違う結果を返すけど、このノードは「シード値に基づいたランダム」を使うことで、同じ結果を再現することが可能だそうです。
実際に使ってみたところ、


False→True→True→True→False
と2回とも同じ順番で、TrueとFalseを返してくれました!
何度、プレイしても指定した順番で返されるので、たしかに再現性がありまね!
Random Bool with Weight from Stream

使ってみた結果としてこのノードは、今までの合わせ技みたいなノードでした!
Seed値を設定したうえで、Wegihtに値を入力します。
(今回は【0.8=80%】でデバッグしてみた)

どうなったかというと、80%でTureを返す再現性をもった乱数列が作成できました!
作成した乱数は同じになるので、何度ゲームをプレイしても同じ順番でTrueとFalseが出力されます!
この出力はWeightの値で確率が変わるものの、順番は固定のため、記事を書いていて若干混乱しそうです

ちなみに、Random Bool with Weight from StreamのBoolをいったん解除して、繋ぎなおしてみたところ、乱数列に変更はなかったので、乱数列を変えて使用したい場合は、Make Random Streamの値を変更する必要があるようです。
もしくは、Weightの値を変更するかですね!
メモ:いったんWeightの値を0に設定してゲームをプレイ。そして再度、値を0.8に戻してゲームプレイしてみたところ、乱数列は同じだった。
乱数の計算式
NextValue=(OldValue×A+B)%C
で計算されていて、それっぽく出力されていて、これが疑似乱数(Pseudo Random)と呼ばれるそうです。
★YouTubeもやってます★