はじめに
今回は他人のブループリントの解析に便利なUE4の機能を紹介する記事です。
マケプレで購入したフレームワークを解析する場合でも同じ手法が使えるはずなので、ぜひ知識として身につけましょう!
※参考として無料アセットのAdvanceLocomotionSystemV4を使用しています。
※UE4.26.2を使用しています。今後アップデートなどで表示が変わる可能性もあることをあらかじめご理解ください。
方法
手法1 実行状態からイジェクトして動いている機能を確認する
実行中にイジェクトボタンまたはF8キーで幽体離脱できます。
アウトライナウィンドウで操作していたキャラクターブループリントや生成されたアクターなどを確認しましょう。
白色の文字が元からあったアクターで
黄色い文字が実行時に生成されたアクターです。
手法2 アクターのシミュレートして遷移を追う
実行中に使用されたブループリントを見ると動作の遷移が追えます。
遷移を有効にするにはデバッグフィルターに分析対象を選択する必要があります。
オレンジ色でハイライトされます。
関数の中身も追えるので便利です。
特に複雑になりがちなアニメーションの遷移なども確認することができます。
手法3 参照ビューアを使用する
参照ビューアを使用すると対象のブループリントの依存を確認できます。
対象を右クリックして参照ビューアを選択します。
中央にブループリント対象本体がいて
左側に使用されている参照、
右側が使用している参照です。
これを使うことで使用しているインターフェースやマクロなども確認できます。
手法4 変数や関数のリファレンスを検索
ブループリント内の変数や関数を使用しているところを全検索できます。
例えばALS_AnimMan_CharacterBPの親クラスであるALS_Base_CharacterBPで
動いているかチェックする変数IsMovingの使用箇所を検索します。
すると結果検索のウィンドウに使用されている場所が一覧で表示され
ダブルクリックで参照先へ移動することも可能です。
またこのウィンドウの右上にある双眼鏡なアイコンをクリックすると
検索対象をプロジェクト全体に変更することができます。
この変数はこのブループリントでしか利用されていないようです。
小技:
この機能はノードでも動作するので
PrintStringノードを適当な位置で出して
全体検索をかけるとすべてのPrintStringノードが検索できます。
場所がわからないノードを無理やり解析することもできるので地味に便利です。
手法5 ブレークポイントをはる
プログラマーに馴染み深いブレークポイントはブループリントでも同様な機能があります。
ブレークポイントはノードの呼び出し順番や遷移を確認するときに非常に便利です。
対象ノードを右クリックしてブレークポイントを追加できます。
実行すると上のタブのステップイン・ステップオーバー・ステップアウトなどのタブで操作することが可能です。
いかがでしょうか。
これらの機能を使えば他人のコードを理解する強い武器になるはずです。
皆さんも未来の自分や他人のために日頃のコメントをたくさんつけてあげてくださいね!