UE4 Blueprint ローカル変数の使いどころについて


主に非プログラマー向けにBP関数のローカル変数の使いどころについて書き留めたものです。
状況によってはここに書かれている物が必ずしも正義というわけではありませんが、無駄なメンバ変数の撲滅など開発の手助けになれば幸いです。

関数内でしか使用しない予定の変数

メンバ変数とローカル変数のざっくりとした違いとして、適用されるスコープ(参照出来る範囲)が違うのはお気づきかと思います。
必要以上にスコープを広げる事は想定外の使われ方をされたり、他の変数を探す際のノイズになったりなど、開発効率に悪影響を及ぼす可能性があります。
そのため、関数外での使用を予定していない場合はメンバ変数を作るのは避けるようにしてください。
※ただしメンバにして調整したい定数のような扱いをする変数に関してはこの限りではありません。

Pure関数や行った計算の結果を何度も使いまわす場合

Pure関数は戻り値が参照される度に関数が実行され、値が再評価されます。
つまりPure関数内で重たい計算をしていて(しかも同じ結果)それを複数回呼んでいる場合だと、無駄な処理をしてしまっている可能性があるので注意しましょう。

Pure関数とNonPure関数の違いについてはヒストリアさんの記事がよく纏まっているのでこちらを参照してください。

値に名前を付けたい時

複雑な計算や条件式を書いた際にはその処理に対して何をしているかのコメントを書くと思います。
その際に処理を説明するような名前のローカル変数に格納して使用する事を検討してみてください。
このようにローカル変数を使用した場合、コメントを見ないでも変数から計算の意味や意図が読み取れるので
ノードが乱雑になりにくく読みやすさが向上し、バグの早期発見の手助けになるなど有用な事が多いです。

またその処理が関数化できるのであれば、こちらも合わせて検討してみてください。