アルゴンUE4/UE5開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5】ブループリント(BP)のクラス設定メモ

ちゃんとBPのクラスとか理解していますか?(;'∀')

今回は私も正直ちゃんと理解していますか?と聞かれると怪しい、

ブループリントにおいてのクラスについて、

私が知っている限りの知識などをメモした記事になります。

※UE5.6で説明をしていますがそこまで変化はないかと思います。
※書き間違え等あればコメントください!
※説明が間違っている部分などもコメントお願いいたします!

BPの作成とできることのおさらい

まずはBPを作るところから今回は説明していきましょう。

コンテンツブラウザを右クリックして作成したい、

ブループリント(BP)を選択します。

コンテンツブラウザからBPの追加

BPを選択すると親クラスを選択が出てきます。

親クラスを選択する必要あるんだろうか?と思う方もいるかもですが、

UEの場合はBP自体の役割が本当に多岐にわたります。

例えばゲーム上に配置したい場合はActorを選択したり、

操作キャラクターとして追加したい場合はCharacterを選択したりします。

用途に合わせた関数を使用したい場面がいくつも出てきます。

そういったときに困らないために親クラスを選択する形になります。

※親クラス選択しないとBPが作れないということもありますが・・・💦

親クラスの選択

実際に作成したBPを開くとBP編集画面になります。

画面の内訳としては下記のようになります。

上のメニューバー:BP関連のコンパイルや動作・クラス設定など

左のメニュー:ブループリントの各種変数などの追加項目欄

中央の画面:BPの編集などを行えるよう画面

右のメニュー:各種設定の詳細表示

BP編集画面

一旦画面の説明やBPの説明は以上にして、

これから親クラス・子クラスの説明をしていきます。

・目次に戻る

BPの親クラスや子クラスについて

それでは実際に親クラスの設定について説明していきます。

親クラスを選択することによりいくつか追加されるものがあります。

・親クラスで設定したコンポーネント
・親クラスで定義されている関数を呼び出せる
・オーバーライドで大元の関数を改良した形で動作させたり出来る
オーバーロードはUFUNCTION()上では行えなかったりする

下記画像はキャラクターという親クラスで作成されているComponentや、

イベントがすでに用意されている例になります。

他にも既に設定されているComponentの処理を設定できたりします。

親クラスが用意してくれているコンポーネントなど

親クラスの変更や設定などを行っていきます。

クラスの変更は上のメニューバーのクラス設定を選択して、

詳細の親クラスのドロップダウンリストから変更が可能です。

親クラスの変更ドロップダウンの選択

クラス設定の項目でよく活用するものについてまとめました。

〇クラスオプション
親クラス: 親のクラスを選択するためのドロップダウンリスト
非推奨 :マップ上に配置できるようにするか?(子クラスも対象になる)
Generate Const Class:定数クラスにするかどうか
Generate Abstract Class:抽象クラスにするかどうか

〇ブループリントオプション
RunConstrution Script or Drag:ドラッグ移動中でもコンストラクタを動作するか
RunConstrution Script in Sequencer:シーケンサーでコンストラクタを動作するか
Blueprint Namespace:名前空間を指定するか

〇インポート

デフォルトの名前空間Blueprint Namespaceで設定したものが表示される
インポートした名前空間他に設定された名前空間のものを呼び出す

〇インターフェース

継承インターフェース:親クラスに設定されているインターフェースが表示される
実装インターフェース:新規にクラスにインターフェースを追加する

クラス設定での設定項目

ちなみに最初に選択されているクラスによって、

選択できない親クラスもあります。

オブジェクト関連のクラスとActor関連のクラスに分かれる形かと思います。

選択できる親クラスの種別

それでは実際に親クラスを作ってみましょうか。

今回は親クラス用の親クラスをObjectにしてます。

子クラスも作成します。

親クラスには先ほど作成したクラスを作成します。

親クラスの選択処理

実際に作成した2つのBPがこちらになります。

作成したBP

一旦親クラスの関数を作成していきます。

だいぶ簡単な形になりますがPrint Stringでコメントを残す形です。
※本来は様々な処理を追加しますが、今回は説明のため少量になります。

親クラスで呼び出す関数設定

続いて子クラスの方で関数を作成していきましょう。

今回はオーバーライドでシーケンスでPrint Stringと、

親クラスの関数を呼び出す形になります。

子クラスのオーバーライドしたクラス

オーバーライドの説明に関しては下記がよかったリンクになります。

残りはキャラクターの方で呼び出す処理を作成します。

今回はオブジェクトクラスが大元なので、

Constractノードで呼び出す感じで設定しています。

作成したアクションの動作を設定

実際に動かしてみると問題なく呼び出した順序で動作しています。

実際に呼び出される順番としては下記になります。
1.「クリックアクション側の通知」のログ
2.「親クラスを呼ばない」のログ
3.「Call Parent Hello」のログ

・目次に戻る

最後に

ここまで見ていただきありがとうございました。

抽象クラスや定数クラスの活用などは別途いろいろ試していって、

紹介出来たらなと思います。

今回も見ていただきありがとうございました。

・目次に戻る