【UE5初心者向け】オブジェクト指向の基礎知識を理解しよう!

UnrealEngine5での開発において、ブループリントやC++を使ってオブジェクト指向のプログラミングを行うことが求められます。オブジェクト指向に慣れていない人にとっては、クラスやインスタンスといった用語がまだ馴染みがないかもしれません。そこで本記事では、オブジェクト指向についての基礎知識として、クラスの継承やインスタンスについて詳しく解説していきます。UE5での開発に取り組む前に、ぜひ本記事を読んでオブジェクト指向について理解を深めてください。

オブジェクト指向とは

オブジェクト指向とは、プログラミング言語の分類のようなもので、オブジェクト指向を代表する特徴が大まかに2つあります。

特徴1. クラスの継承関係
特徴2. インスタンス(実体)

これらをUnreal Engine に置き換えつつ解説していきます。

クラスとは

まず、オブジェクト指向におけるクラスについて解説します。クラスとは、同じ種類のオブジェクトを生成するための設計図のようなものです。つまり、同じ性質や機能を持つオブジェクトを複数作りたい場合に、そのオブジェクトが持つべきデータや処理を定義したものがクラスです。

例えば、Unreal Engine で作成するゲームのキャラクターには、共通する性質や機能があります。それらをひとまとめにして定義したのが「Characterクラス」です。このクラスを基に、具体的なキャラクターオブジェクトを複数作成することができます。

(Characterクラスでは、移動速度やキャラクターの向き・ジャンプの高さなどの設定が簡単にできるようになっていたりします。)

クラスの継承

次に、クラスの継承について解説します。クラスの継承とは、あるクラスから別のクラスを作成することで、元のクラスの機能やデータを引き継ぐことができる仕組みです。

例えば、先ほどの Characterクラス から「敵Characterクラス」を作成する場合、キャラクタークラスの持つ共通する機能やデータを継承しつつ、敵キャラクターに必要な機能やデータを追加することができます。

また、継承関係は複数段階に渡って行うことができます。つまり、あるクラスから作成したクラスをさらに別のクラスから作成することもできるということです。

↑ Unreal Engine 5 におけるクラスの継承関係

画像の通り、基本的にUnrealEngineで初めから用意されているクラスはC++で定義されています。(ObjectやActer,Characterみたいなやつ)しかしそれをブループリントの形で継承・編集できるからこそ、UEではコードを書くことなく、ノードを繋ぐだけでほとんどの処理が実装できるようになっているのです。

また、自分でブループリントで作ったクラスを、さらにブループリントで継承することも可能なので、

自分が作っているゲームでは、キャラクターにはこういう処理も統一して ついていて欲しいんだよな。。。と思ったときは、ベースとなるCharacterを継承したBP_Characterクラスを作り、それをさらに継承させてさまざまなキャラクターを作ることで、実現可能です。

↑ 新規にBPを作成するときは、まず親クラスを選ぶようになっています。

インスタンスとは

次に、オブジェクト指向におけるインスタンスについて解説します。インスタンス(実体)とは、クラス(設計図)を元に作成された具体的なオブジェクトのことです。つまり、あるクラスから作成されたオブジェクトがインスタンスです。

例えば、先ほどの「キャラクタークラス」から作成された具体的なキャラクターオブジェクトがインスタンスです。このインスタンスには、キャラクタークラスで定義された機能やデータが持たれています。

まとめ

本記事の要点をまとめると以下の通りです。

  • UnrealEngine5の開発には、オブジェクト指向のプログラミングが必要とされる。
  • オブジェクト指向の特徴には、クラスの継承関係インスタンスがある。
  • クラスは同じ種類のオブジェクトを生成するための設計図であり、同じ性質や機能を持つオブジェクトを複数作りたい場合に使われる。
  • クラスの継承は、あるクラスから別のクラスを作成することで、元のクラスの機能やデータを引き継ぐことができる仕組みであり、複数段階に渡って行うことができる。
  • インスタンスは、クラス(設計図)を元に作成された具体的なオブジェクト(実体)であり、あるクラスから作成されたオブジェクトがインスタンスとなる。