LoginSignup
9
5

More than 3 years have passed since last update.

[UE4] クラス関係を整理するClass Viewer

Last updated at Posted at 2020-06-09

検証Ver:4.25.0

これはプロジェクトの構造を分析する際に役に立つ機能の1つの紹介です。

1. ケース

 突然ですが問題です。自分が現在知っている事が「PlayerというBPはCharacterBaseというC++の子である」という場合、「CharacterBaseの子には他にどのようなBPがあるか」という事を効率的に調べる方法は何があるでしょうか。図示すると以下のようなイメージです。
2020-06-09_22h24_29.png

2. なぜ困ったか

 これは私がプロジェクトを眺めている時に「どうすれば効率的にそれらを知ることが出来るか」と悩んだ点でした。ここで困った点として以下の2つがあります。

・Editor上で親クラス名を指定した検索ができない
 クラス名やアセットタイプなどを頼りにアセット検索することはできますが、親クラス名を指定した検索はありません。1

・リファレンスビュワー上ではNative Packageしか表示できない
 以下の図はBPのPlayerクラスとC++のCharacterBaseの参照を示したものです。
Show Native Package=TRUEにするとネイティブクラスとのリファレンスも表示することができます。
2020-06-09_22h33_07.png
 ただし、複数のコードを含むので本来含まれて欲しくないものもNative Packageのリファレンスとして表示されます。
2020-06-09_22h46_45.png

3. Class Viewerで解決

 Class Viewerを確認することが私の中での最適解でした。もしかしたら他にもあるかもしれません。
このツールは[Window]->[Developer Tools]->[Class Viewer]をたどってから開くことができます。
2020-06-09_23h49_28.png 2020-06-09_22h17_42.png

 左図のように検索機能により親クラスCharacterBaseを名前で検索します。親クラスが見つかったら選択して検索入力を削除すると、右図のように継承関係がリストアップされます。
2020-06-09_22h56_23.png 2020-06-09_22h56_34.png

 プルダウンを選択すると、左図のようにネイティブクラスは直接クラス追加ができたり、右図のようにブループリントクラスはContentsにジャンプする事もできます。
2020-06-09_23h53_09.png

 デフォルトではフィルタでActor OnlyPlaceable Onlyが有効になっているので、配置可能なActorのみしかリストアップされていません。このチェックを外すことでUObjectベースのクラスなどもリストアップされるので、データクラスなどの検索も簡単にできるようになります。
2020-06-09_23h02_11.png


  1. 「ありません」というより、正しくは「知らなかった」ですね。 

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5