36.親クラス,子クラスとは?クラスの継承について解説
ブループリントクラス作成時に出てくる"親クラス"とは?
コンテンツブラウザから新規でブループリントクラスを作成しようとした時に親クラスを選択する画面が出てきます↓
https://scrapbox.io/files/65c29f806319c60025ccbd67.gif
ここでは"親クラス"を選択する事ができます。
https://scrapbox.io/files/65c29f989ded0c00247a3c16.jpg
親クラス,子クラスとは?
まず復習しておくと「クラス = オブジェクトの設計図」の事になります。オブジェクトとは何らかの物や機能の事になります。つまりクラスは何らかの物の設計図という意味になります。
そしてクラスは「継承する」事ができ、継承元のクラスを親クラス、継承先のクラスを子クラスと言います。
親クラスと子クラスがどんなものか確認してみよう
Blueprintsというフォルダを用意して右クリック > ブループリントクラス > Actorを選択して作成します。名前はBP_Cubeにしておきます。
https://scrapbox.io/files/65c2a0b8e1bbea0026403e79.jpg
そしたらBP_Cubeを右クリック > 「子ブループリントクラスを作成します」を選択します。
https://scrapbox.io/files/65c2a0d54424e00024a89236.jpg
そうするとBP_Cube_Childというブループリントクラスが新たに作成されました。
https://scrapbox.io/files/65c2a0eb5d9c390024c02486.jpg
このようにブループリントクラスを元にブループリントクラスを作成する行為を「継承」と言い、継承と元となったブループリントクラスを親クラス、継承先のブループリントクラスを子クラスと言います。
どんな時に継承を行う?
例えばRPGゲームで様々な種類のモンスターを実装したい時にこの「継承」を行うと非常に効率的になり管理も楽になります。
変数として体力である「HP」だったり、攻撃力の「AttackPoint」など全てのモンスターに実装する共通項目がある場合、先に「Monster」というHPや攻撃を実装したブループリントクラスを作成しておきます。そのMonsterというブループリントクラスを元に継承を行い、DoragonやGoblinといったブループリントクラスの作成を行います。
https://scrapbox.io/files/65c2a14b98238a002561a18a.png
これによって親クラスのHPやAttackといった変数を継承しているので、モンスター毎にその機能を再度実装する必要がなくなります。なお他にも継承はブループリントなども引き継げるので同じような機能のブループリントクラスを作る時に非常に便利なものになります。
https://scrapbox.io/files/65c2a1e8d2fed10025d3298c.png
実際に継承を行うケースを見てみよう'
UnrealEnigneの画面で見るとモンスターの継承はこんな感じです↓Monsterというブループリントクラスを作って、継承して二つの子のブループリントクラスを作成しています。
https://scrapbox.io/files/65c2a1e0ec4db0002550fa60.jpg
以下の様に親クラスにノードや変数を作ると子クラスに引き継がれます。
https://scrapbox.io/files/65c2a2068cb82a00250e135d.jpg
一方で子クラス側で新たにノードを作ったりメッシュを変更したりしても親クラスには影響ありません。