はじめに
Blackboardを使うときにミスをやらかして原因を突き止めるのに苦労したことから、何とかミスをなくしてみようと思い考えた方法を共有します。
自分がやらかしたのは、これまで正常に動作していたBlackboardが、いろいろ修正しているうちに、Blackboardで定義している変数名の末尾に半角スペースが紛れ込んでいたために更新できなくなったというものでした。
こんなの。
見た目ではわからず全然見当違いのところを追ってしまい、原因を突き止めるのに時間がかかってしまいました。
環境
Windows10
UnrealEngine 4.27.2
どのように対策したか?
以下の2点を実行することで、ミスをなくす、あるいはミスしてもすぐに気が付けるようになりました(なったはず)。
・BPからBlackboardの変数にアクセスするときは必ずマクロを経由する
・マクロは自動テストで問題がないことを確認する
今のところBlackboardで定義している変数が少ないので問題ないですが、変数が多くなると運用が難しくなるかもしれません。
マクロの作成例
・変数IsJumpingに値を設定するマクロ
・変数IsJumpingから値を取得するマクロ
・マクロを使用して変数IsJumpingから値を取得、設定する例
自動テストの作成例
・テストの準備でBlackboardを用意しているところ
・変数IsJumpingに値を設定、そのあと値を取得して一致していなかったらFail
・変数名の末尾に半角スペースが入っていた場合。エラーで検出できています。
・変数名を修正したらPassします。
参考資料
・自動化システムの概要
自動化テストの公式ドキュメントです。
・20年オヤジのUnreal Engine 4 TIPS
こちらの記事にあった定数マクロライブラリを作成して使っています。BPの見た目がわかりやすくなったような気がします。