執筆バージョン: Unreal Engine 5.0.0(EarlyAccess)
|
【はじめに】
こんにちは、エンジニアの山中です。
今回はブル―プリント(以下「BP」と記載)を利用する上で知っておくと便利な機能、
「Replace References (=変数ノードの置換)」についてご紹介します。
※今回は[UE5.0]を使用してのご紹介となりますが、[UE4.26]以降でも使用可能です
※Asset Actionとして「Replace References (=アセット参照の置き換え)」がありますが、こちらとは完全に別機能となります

↑AssetActionの「Replace References」に関しては、今回は取り扱いませんのでご注意を!
【どんな機能?】
その名の通り、変数の置換を行ってくれる機能になります。
置換前に指定した変数の使用箇所、つまりGetノード、Setノードの両方を
置換後に指定した変数で置換します。

↑古い変数「〇〇Old」を、新たに使用する変数「〇〇New」と入れ替えたい。

↑置換完了!
【やりかた】
①置換前の変数が定義されているBPを開く

↑今回はプレイヤーキャラクターを想定したBPを用意しました。
②「Window」→「Replace References」を選択し、専用ウィンドウを開く


↑専用ウィンドウが開きました!
③「Find what」の欄に置換前の変数を指定する

↑置換前は対象BP内の変数のみ指定可能です。
④「Replace with」の欄に置換後の変数を指定する
指定の際、置換前の変数と型が一致しているもの(今回の場合はFloat型)がリストアップされます。

↑置換後の変数は対象BPの最基底クラスまで指定可能です。
⑤必要に応じて「Only show and replace results from 〇〇 class」を有効化する
置換対象を開いているBPのみとすることができます。

↑今回は他のBPも対象としたい為、チェックを外したままにしておきます。
⑥「Find~」を押下することで置換対象が表示される

↑検索したところ、2箇所で使用されていることが分かりました。
⑦「Find and Replace~」を押下することで置換開始!

↑全体での置換の場合は置換確認画面が表示され、適用するBPを個別指定可能です。

↑置換後のSetノード。設定値はそのままに、使用する変数だけ見事に置換できています。

↑他のBPでの使用箇所(こちらはGetノード)もバッチリ置換できています。
【補足1】
操作を誤ってしまった場合は「Ctrl + Z」で操作を取り消し、置換前に戻すことが可能です。
【補足2】
「Show Replacements when complete?」に関しては
置換完了後に置換結果を表示してくれる機能のようですが、動作未検証です。
現状ですと、チェックを入れているのに処理が実行されなかったりするようです。

↑デフォルトはチェックが付いてます。
【さいごに】
いかがでしたか?
変数の使用箇所をリファレンス検索し、漏れなく手動で置換していくのは骨の折れる作業かと思います。
置換前は対象BP内の変数のみなので、使用するシチュエーションは局所的ですが
変数の置換が必要になった際には是非本機能を活用してみてください!