メインコンテンツに移動

UE5まとめ(仮)

Project

Projectとは、UE5における開発単位である。

ゲームやアプリケーションの制作に必要なすべてのデータや設定、ソースコード、アセットなどはプロジェクト単位で管理される。例えば、新しいゲームを制作する場合は新しいプロジェクトを作成し、その中でレベルやBlueprint、マテリアル、C++コードなどを追加しながら開発を進めていく。

プロジェクトは単なるフォルダではなく、Engineがゲームをビルド・実行するために必要な情報をまとめた構造を持っている。そのため、各フォルダや設定ファイルには明確な役割が存在する。

以下に、大雑把に各要素をまとめたものを記載する。

Projectの構成要素:
  Project Structure
  Modules
  Plugins
  Config
  Content
  Build System
  Packaging

Project Structure

Project Structureとは、プロジェクト全体のディレクトリ構成やファイル構成を指す。

UE5では、用途ごとにフォルダが分けられており、アセットはContentフォルダ、設定ファイルはConfigフォルダ、ソースコードはSourceフォルダなど、それぞれ決められた場所に保存される。

この構造を理解しておくことで、プロジェクトの管理やバックアップ、共同開発が容易になる。

代表的なフォルダには以下のようなものがある。

Content:ゲーム内で使用するアセットを保存するフォルダ

Config:プロジェクト全体の設定ファイルを保存するフォルダ

Source:C++ソースコードを保存するフォルダ

Plugins:プロジェクト専用プラグインを配置するフォルダ

Saved:ログや自動保存データ、一時的な実行結果などを保存するフォルダ

Intermediate:ビルド時に生成される中間ファイルを保存するフォルダ、削除しても再生成される

Binaries:コンパイル済みの実行ファイルやライブラリを保存するフォルダ

Modules

Moduleとは、UE5におけるソースコードの管理単位である。

C++プロジェクトでは、ソースコードはModule単位でコンパイルされる。Moduleごとに依存関係や公開範囲を設定できるため、大規模開発においてコードを整理しやすくなる。

小規模なプロジェクトではGame Moduleが一つだけで構成されることが多いが、大規模プロジェクトではGameplay、UI、AI、Networkなど、機能ごとに複数のModuleへ分割することが一般的である。

Plugins

Pluginsは、Engineへ新しい機能を追加するための拡張モジュールである。

プラグインにはEngine全体で利用できるものと、特定のプロジェクトだけで利用するものが存在する。

例えば、PCG FrameworkやModeling Tools、Common UIなどは公式プラグインとして提供されており、必要に応じて有効化できる。また、独自に作成したプラグインや外部製プラグインもプロジェクトへ追加できる。

プラグインを利用することで、既存プロジェクトへ機能を追加したり、複数のプロジェクトで共通機能を再利用したりすることが可能となる。

Config

Configは、プロジェクト全体の設定ファイルを保存するディレクトリである。

入力設定、レンダリング設定、ゲーム設定、ネットワーク設定など、多くの設定はテキスト形式の.iniファイルとして保存される。

EditorのProject Settingsで変更した内容の多くは、最終的にConfigフォルダ内の設定ファイルへ反映される。

そのため、設定の変更履歴をGitなどで管理しやすいという特徴がある。

Content

Contentは、ゲーム内で使用されるすべてのアセットを保存するディレクトリである。

Static Mesh、Skeletal Mesh、Texture、Material、Blueprint、Animation、Sound、Levelなど、制作したほぼすべてのアセットはContentフォルダ内で管理される。

EditorのContent Browserは、このContentフォルダを視覚的に操作するためのインターフェースである。

ゲーム制作を進めるうえで最も利用頻度の高いディレクトリであり、フォルダ構成を適切に設計することはプロジェクト全体の保守性や作業効率に大きく影響する。

Build System

Build Systemとは、プロジェクトをコンパイルし、実行可能なプログラムへ変換するための仕組みである。

UE5では主にUnreal Build Tool(UBT)がビルドを担当しており、Module間の依存関係を解析し、必要なコードだけをコンパイルする。

また、Unreal Header Tool(UHT)はUCLASSやUPROPERTYなどのリフレクション情報を解析し、Engineが利用する追加コードを自動生成する。

このようにBuild Systemは、単にC++をコンパイルするだけではなく、UE5独自の機能を利用できるようにするための重要な役割を担っている。

Packaging

Packagingとは、開発中のプロジェクトを配布可能なゲームへ変換する工程である。

Packagingではソースコードのコンパイルだけでなく、必要なアセットの収集、不要データの除外、各プラットフォーム向けデータへの変換、実行ファイルの生成など、多数の処理が実行される。

Windowsだけでなく、PlayStation、Xbox、Nintendo Switch、Android、iOSなど、それぞれのプラットフォームに応じた形式へ出力することができる。

Project全体の役割

Projectは、Unreal Engine 5における開発の基盤となる単位である。

ゲームを構成するソースコード、アセット、設定ファイル、プラグインなどはすべてProjectの中で管理される。また、Build Systemによってプログラムへ変換され、Packagingによって実際に配布可能なゲームとして出力される。

このようにProjectは、単にファイルを保存するためのフォルダではなく、開発からビルド、配布までを一元的に管理するための中核的な仕組みである。