このページでは Unreal Engine 5 で作業する場合に一般的に使用する用語を説明します。例えば、「アクタ とは?」「コンポーネント とは?」など分からないことがあるときにこのページを見れば、疑問の回答や詳細が見つかります。
用語を理解したら、セクションの終わりに紹介されているリンクで詳細を確認してください。
このページでは、いくつかのプログラミングの概念、具体的には クラス と サブクラス を使用しています。C++ では、クラス は変数と挙動を含むコード テンプレートで、拡張することができます。サブクラス は親クラスの一部またはすべてのコードと機能を継承するクラスです。
このページに記載されているすべての C++ クラスは Unreal Engine に固有のものです。
プロジェクト
Unreal Engine 5 Project にはゲームのすべてのコンテンツが含まれます。Blueprints
や Materials
など、ディスク上のたくさんのフォルダを含みます。プロジェクト内のフォルダに、自由に名前を付けて整理することができます。Unreal Editor の コンテンツ ブラウザ パネルには、、ディスク上の Project
フォルダ内と同じディレクトリ構造が表示されます。
各プロジェクトには関連づけられた「.uproject
」ファイルがあります。「.uproject
」ファイルを使用して、プロジェクトを作成したり、開いたり、保存したりします。さまざまなプロジェクトをいくつでも作成して、並行して作業することができます。
詳細は「プロジェクトとテンプレート」を参照してください。
ブループリント
ブループリント ビジュアル スクリプティング システムは、ノードベースのインターフェースを使用して Unreal Editor 内からゲームプレイ要素を作成するゲームプレイ スクリプティング システムです。多くの一般的なスクリプト処理言語と同様に、このシステムはエンジンでオブジェクト指向 (OO) クラスやオブジェクトを定義するために使用します。Unreal Engine の作業では、ブループリントを使って定義されたたオブジェクトは通常シンプルに「ブループリント」と呼びます。
詳細は ブループリント ビジュアル スクリプティング を参照してください。
オブジェクト
オブジェクト は Unreal Engine の最も基本的なクラスです。つまり、オブジェクトはビルディング ブロックのように機能し、アセットに不可欠な機能を多数含んでいます。Unreal Engine のほぼすべてのものは、オブジェクトから継承 (または機能を取得) しています。
C++ では、UObject
はすべてのオブジェクトの基本クラスです。ガーベジ コレクション、Unreal Editor へ変数を公開するためのメタデータ (UProperty
) サポート、ロードと保存のシリアル化などの機能を実行します。
詳細は以下を参照してください。
クラス
クラス は Unreal Engine のアクタあるいはオブジェクトの挙動とプロパティを定義します。クラスは階層化されています。親クラスから継承されるクラス (派生または「サブクラス化」されたクラス) と子クラスへ情報を渡すクラスがあります。クラスは C++ コードまたはブループリントで作成することができます。
詳細は以下を参照してください。
アクタ
アクタ は、カメラ、スタティックメッシュ、プレイヤー開始位置など、レベルに配置することができる任意のオブジェクトです。アクタは平行移動、回転、スケーリングなどの 3D トランスフォームをサポートします。アクタはゲームプレイ コード (C++ またはブループリント) を使用して作成 (スポーン) および破壊することができます。
C++ では AActor がすべてのアクタの基本クラスになります。
詳細は以下を参照してください。
キャスティング
キャスト は、特定のクラスのアクタを取得し、それを別のクラスのものであるかのように処理しようとするアクションです。キャストは、成功または失敗する場合があります。キャストが成功した場合、キャスト先のアクタでクラス特定の機能にアクセスすることができます。
たとえば、さまざまな方法でプレイヤー キャラクターに影響を与える可能性のある複数のタイプのボリュームがあるゲームを作成しているとします。ボリュームの 1 つは時間経過に伴ってプレイヤーのヘルスを下げる Fire です。プレイヤーがレベル内のボリュームにオーバーラップすると、ボリュームを Fire に キャスト して、「プレイヤーのヘルスにダメージを与える」機能にアクセスを試みることができます。
- キャストが成功すると、プレイヤーが火の中に立つと、プレイヤーのヘルス値が下がり始めます。
- キャストが失敗すると、プレイヤーが別の種類のボリュームの上に立っても、ヘルス値が影響は変わりません。
キャストは、アクタが特定のクラスに属しているかどうかを単にチェックすることとは異なります。キャストによってバイナリ (yes または no) の回答が返されますが、そのクラスに特のの機能の操作はできません。
詳細は以下を参照してください。
コンポーネント ブラシ
- Spot Light コンポーネントを使用すると、アクターはスポットライトのように発光します。
- Rotating Movement コンポーネントを使用すると、アクターが回転します。
- Audio コンポーネントは、俳優にサウンドを再生する機能を提供します。
コンポーネントはアクタにアタッチする必要があり、単独で存在することはできません。
詳細は以下を参照してください。
ポーン
ポーン は、ゲーム内のアバターやペルソナとして機能するアクタのサブクラスです (ゲーム内のキャラクターなど)。ポーンは、プレイヤーまたはゲームの AI によって NPC (ノンプレイヤー キャラクター) として制御できます。
ポーンが人間または AI プレイヤーによって制御されると、所有された とみなされます。逆に、ポーンが人間または AI プレイヤーによって制御されていない場合は、所有されていない とみなされます。
詳細は以下を参照してください。
キャラクター
キャラクター はプレイヤーのキャラクターとして使用することを意図したポーンアクタのサブクラスです。キャラクター サブクラスには、コリジョン設定、二足方向の動きに対する入力バインディング、およびプレイヤーが制御する動きのための追加コードなどがあります。
詳細は以下を参照してください。
プレイヤー コントローラー
プレイヤー コントローラ はプレーヤーの入力を受け取り、それをゲーム内のインタラクションに変換します。すべてのゲームには少なくとも 1 つのプレイヤー コントローラがあります。プレイヤー コントローラは、多くの場合、ゲーム内でのプレイヤーの実体としてポーンまたは キャラクターを所有します。
プレイヤー コントローラはマルチプレイヤー ゲームの主要なネットワーク インタラクション ポイントでもあります。マルチプレイヤーのプレイ中に、サーバーにはゲーム内のプレイヤーごとにプレイヤー コントローラのインスタンスが 1 つあります。これは、各プレイヤーに対してネットワークの関数呼び出しが可能でなければならないためです。各クライアントはそのプレイヤーに対応するプレイヤー コントローラのみを持っており、サーバーと通信するためだけにプレイヤー コントローラを使用します。
関連づいている C++ クラスは PlayerController
です。
詳細は「PlayerController」を参照してください。
AI コントローラ
プレイヤー コントローラーがゲーム内のプレイヤーの表現としてポーンを所有しているのと同様に、AI コントローラー はゲーム内のノンプレイヤー キャラクター (NPC) を表現するためのポーンを所有しています。デフォルトでは、ポーンとキャラクターは、プレーヤー コントローラーが特別に所有しているか、自分で AI コントローラーを作成しないように指示されていない限り、ベース AI コントローラーになります。
関連づいている C++ クラスは AIController
です。
詳細は「AI Controller」を参照してください。
プレイヤー ステート
プレイヤー ステート は、人間のプレイヤーや、プレイヤーをシミュレートしているボットなどのゲーム参加者の状態を示します。ゲームのワールドの一部として存在するノンプレイヤーの AI にはプレイヤー ステートがありません。
プレイヤー ステートに含むことができるプレイヤー情報には、以下があります。
- 名前
- カレント レベル
- ヘルス値
- スコア
- キャプチャー ザ フラッグ ゲームで現在旗を持っているかどうか。
マルチプレイヤー ゲームの場合、すべてのプレイヤーのプレイヤー ステートがすべてのマシンに存在し、サーバーからクライアントにデータを複製して、同期を維持することができます。プレイヤーが表すマシンにのみ存在するプレイヤー コントローラとは異なります。
関連づいている C++ クラスは PlayerState
です。
詳細は ゲームプレイ フレームワークのクイック リファレンス を参照してください。
ゲーム モード
ゲーム モード はプレイ中のゲームのルールを設定します。ルールには以下を含むことができます。
- プレイヤーのゲームへの参加方法。
- 一時停止機能の利用可否
- 勝利条件などのゲーム固有の動作。
プロジェクト設定 でデフォルトのゲーム モードを設定し、さまざまなレベルでオーバーライドできます。実装方法に関係なく、1 レベルにつき 1 つのゲームモードしか持てません。
マルチプレイヤー ゲームでは、ゲームモードはサーバー上にのみ存在し、ルールは接続された各クライアントに複製 (送信) されます。
関連づいている C++ クラスは GameMode
です。
詳細は以下を参照してください。
ゲーム ステート
ゲーム ステート は、ゲームですべてのクライアントにレプリケートする情報を含みます。簡単にいうと、接続しているすべてのプレイヤーに対する「ゲームの状態」です。
プレイヤー ステートに含むことができるプレイヤー情報には、以下があります。
- ゲーム スコア情報。
- 対戦が開始されているかどうか。
- ワールド内のプレイヤー数に応じていくつ AI をスポーンするか。
マルチプレイヤー ゲームについては、各プレイヤーのマシンのゲーム ステートのインスタンスが 1 つずつ存在します。ローカルのゲーム ステートのインスタンスは、サーバーのゲーム ステートのインスタンスから更新された情報を取得します。
関連づいている C++ クラスは GameState
です。
詳細は「Game State」を参照してください。
ブラシ
ブラシ は、キューブや球などの 3D を描画するアクタです。レベル内にブラシを配置して、レベルジオメトリを定義することができます (バイナリ空間分割あついは BSP ブラシをして知られています)。これは、レベルをすばやくブロックしたい場合などに便利です。
詳細は以下を参照してください。
ボリューム
ボリューム は、アタッチされたエフェクトに基づいてさまざまな使用方法をもつ、境界のある 3D 空間です。次に例を示します。
- Blocking ボリューム は、目には見えず、アクタがボリュームを通りすぎるのを防ぐために使用します。
- Pain Causing ボリューム は、ボリュームにオーバーラップしたアクタに時間の経過とともにダメージを与えます。
- Trigger ボリューム は、アクタはイベントに出入りするときにイベントを発生させるようにプログラムされています。
詳細は「アクタのリファレンス」を参照してください。
レベル
レベル は定義するゲームプレイ領域です。レベルは、ジオメトリ、ポーン、アクタなど、プレイヤーが見たりインタラクトすることができるすべてのものが含まれます。
Unreal Engine において、各レベルは個別の .umap
ファイルに保存されるので、これらのファイルは マップ と称されることがあります。
詳細は以下を参照してください。
ワールド
ワールド はゲームを構成するすべてのレベルのコンテナです。レベルのストリーミングと動的アクタの生成 (作成) を処理します。
詳細は以下を参照してください。