Unity から Unreal Engine (UE) に移行するユーザーにとって、使い慣れた主要機能を別のエンジン用に変換することは簡単ではありません。 2 つのエンジンは多くの領域で同様の機能を備えていますが、UE のエコシステムと構成は、多くの点で Unity とは異なります。
本ガイドでは、基本的な Unity のエディタ機能とコンセプト、およびそれらに相当する Unreal Engine の機能について説明します。 以降のセクションで取り上げるトピックは次のとおりです。
プロジェクトとインストールを管理する。
Unreal Editor を操作する。
レベル ファイルを管理する。
Unity のゲームオブジェクトの用語と操作を Unreal Engine のアクタ フレームワークに変換する。
バージョン情報
本ガイドの執筆時点で、スクリーンショットと用語集に使用した Unreal Engine と Unity エンジンのバージョンは次のとおりです。
Unreal Engine 5.4.3
Unity 6 (6000.0.2f1)
Unity Hub / Epic Games Launcher
Epic Games Launcher は、エンジンのインストールを管理する、Unity Hub アプリケーションに相当する Epic Games の機能です。 また、Epic のゲームを販売する、Epic Games Store のポータル兼ランチャーでもあります。 Unreal Engine にアクセスするには、次の手順を実行します。
ランチャーの左側にある [Unreal Engine] タブをクリックします。 画面上部に新しいタブ一式が表示されます。
[ライブラリ] タブをクリックして、Unreal Engine のインストールとプロジェクトを管理します。 このウィンドウには、作成済みプロジェクトとダウンロード済みパッケージの両方が表示されます。
また、オフラインでインストールする場合は、Unreal Engine のソースコードを GitHub からダウンロードできます。
セットアップの詳細は、「Unreal Engine をインストールする」を参照してください。
Unity Editor / Unreal Editor
Unreal Editor は、UE のレベルとアセットを編集するためのアプリケーションです。
以下のスクリーンショットは、Unity エディタと Unreal Editor を並べたものです。 各エリアを色分けして共通の機能を示しています。 各ブロックは Unreal Engine で使われる用語を表示しています。
| インデックス | Unity | Unreal | 説明 |
|---|---|---|---|
1 | ツールバー | メインメニュー | メイン メニューと主なドロップダウン メニュー (ファイル、編集、ウィンドウ、ヘルプなど)。 |
2 | Play (プレイ)/Pause (一時停止)/Step Controls (ステップ制御) | プレイインエディタ制御 | エディタでのプレイ セッション実行の制御。 |
3 | 階層 | アウトライナー | 自分のゲーム ワールドのオブジェクト リスト。 |
4 | シーン ビュー/ゲーム ビュー | ビューポート | ゲーム ワールドを表示します。 |
5 | インスペクター | [Details] パネル | 選択されたオブジェクトの編集可能なパラメータを表示します。 |
6 | プロジェクト パネル | Content Browser (コンテンツ ブラウザ) | プロジェクトのアセット (レベル、テクスチャ、マテリアル、アニメーション、サウンドなど) を検索するためのブラウザ。 |
7 | コンソール | 出力ログ | ログを表示し、コマンドの入力先となるコンソール。 |
Unreal Editor のレイアウトは完全にカスタマイズ可能です。 タブをドラッグアンドドロップしてメイン ウィンドウに結合したり、カラー スキームを変更したりできます。 カラー スキームを変更したりできます。
エディタのカスタマイズの詳細は、「Unreal Engine をカスタマイズする」を参照してください。
エディタの操作方法の詳細は、「Unreal Editor のインターフェース」を参照してください。
ツールメニュー
Unreal Editor のメイン メニュー バーは、Unity のレベル エディタとは異なるオプションを備えています。 以下の表は、各エディタのオプションを比較し、完全に一致しない場合は同等の機能がどこで利用できるのかをまとめたものです。
| Unity | Unreal | 説明 |
|---|---|---|
ファイル | ファイル | レベルとプロジェクトを開いて保存する際に使用。 Unity では [ビルド オプション] メニューがここにあるのに対して、Unreal Engine ではビルド管理用に個別のメニューが用意されています。 |
編集 | 編集 | コピー/ペーストなどの基本的な編集操作に加えて、エディタやプロジェクト設定を開くオプションを提供。 Unity では、[編集] メニューにプレイ モード制御、グラフィックス設定、選択管理ツールも含まれるのに対して、Unreal Engine では、これらの機能が個別のメニューに分割されています。 選択管理の詳細は、以下の [選択] メニューを参照してください。 Unreal Engine のスケーラビリティ設定は、レベル エディタのツールバーにある [設定] ドロップダウン メニューからアクセスできます。 |
アセット | - | プロジェクトでアセットを作成して管理するためのツール。 Unreal Engine では、この機能は コンテンツ ブラウザ にあります。 |
ゲームオブジェクト | アクタ | インゲーム オブジェクトを作成して管理するためのツール。 Unity のメニューが新しいゲームオブジェクトの作成用であるのに対して、Unreal Engine のメニューは、選択されたアクタに対して操作を実行するためのコンテキスト依存メニューとなっています。 Unreal Engine では、コンテンツ ブラウザ 内のアクタをクリックしてドラッグするか、[アクタ配置] パネルを使用することで、アクタを配置できます。 |
コンポーネント | コンポーネント | 選択されたゲームオブジェクトのコンポーネントを作成して管理するためのメニュー。 Unreal Engine にも [コンポーネント] ドロップダウンがあり、アクタのコンポーネントを選択する際に表示されます。 ただし、このメニューはコンポーネントの編集用であり、作成用ではありません。 同等の機能を利用するには、アクタを選択して [詳細] パネル内のコンポーネント制御を使用するか、[コンポーネント] パネルの下にある [ビューポート] タブでアクタのブループリントを開き、そのコンポーネントを管理します。 また、コードを編集する場合は、[ツール] メニュー内のオプションを確認してください。 |
サービス | オンライン サブシステム | Package Manager で Unity のクラウド サービスにアクセスするためのメニュー。 Package Manager に相当する Unreal Engine の機能が [プラグイン] ウィンドウです。[編集] メニューにあり、さまざまなオンライン サブシステムをプラグインとして使用できます。 |
- | ツール | デバッガなどの各種ツールセットおよびメニューへのアクセス、IDE で C++ コードを作成するためのショートカット、リビジョン コントロール オプションなどを提供。 |
- | ビルド | ライティング、ジオメトリ、ランドスケープなど、ゲームのさまざまな機能のビルドを実行するためのオプションを提供。 |
- | 選択する | レベル エディタ内の選択管理ツール。 Unity では、こうしたツールは [編集] メニューに配置されています。 さまざまなタイプのオブジェクトやジオメトリを選択するオプションが含まれます。 |
ウィンドウ | ウィンドウ | よく使用されるメニューおよびパネルへのショートカット。 パネル レイアウト オプションも含まれます。 |
ヘルプ | ヘルプ | コミュニティ リソースやドキュメントへのリンクなど、サポートとトラブルシューティングに関するリンク。 |
シーン ビュー/ビューポート
以下のスクリーンショットは、Unity のシーン ビューと Unreal Editor のレベル エディタ ビューポートを並べたものです。 各エリアを色分けして共通の機能を示しています。 各ブロックは Unreal Engine で使われる用語を表示しています。
| インデックス | 説明 |
|---|---|
1 | トランスフォーム ギズモ アクタの制御。 |
2 | ローカル/ワールド空間の制御。 |
3 | グリッドおよびスナップの制御。 |
4 | ライティング/シェーディングの制御。 |
5 | パースペクティブ/正投影の制御。 |
6 | オブジェクト チャンネル可視性の制御。 |
7 | カメラ設定。 |
プロジェクト パネル/コンテンツ ブラウザ
Unreal Engine のコンテンツ ブラウザは、Unity のプロジェクト パネルに相当する機能です。 ここでは、ブラウズして新しいゲーム アセットを作成したり、クリックしてビューポートにドラッグしたりできます。
コンテンツ ブラウザおよびその機能の詳細は、「コンテンツ ブラウザ」のドキュメントを参照してください。
インスペクター/[詳細] パネル
Unreal Engine の [詳細] パネルは、Unity のインスペクターに相当する機能です。 ワールド内のオブジェクトを選択するかブループリントを編集する場合は常に、選択されたオブジェクトに関する情報がインスペクターに表示されます。
[Details] パネルは検索可能となっており、表示するパラメータを絞り込むためのさまざまなフィルタリング オプションが用意されています。また、アクタのコンポーネントも表示されます。
詳細については、以下を参照してください。
詳細パネルなど、Unreal Editor のパネルとタブの詳細は、「Unreal Editor のインターフェース」を参照してください。
詳細パネルで特定のアクタやプロパティをカスタマイズする方法の詳細は、「詳細パネルのカスタマイズ」を参照してください。
プロジェクト設定
[編集] > [プロジェクト設定] をクリックして、[プロジェクト設定] ウィンドウを開きます。 このウィンドウには、インプット、物理、アセット管理、パッケージングのオプションに加えて、個々のプラットフォームや有効にしているプラグインのオプションなど、プロジェクトおよび多くのコア UE システムの構成オプションが含まれています。
プラグイン
[編集] > [プラグイン]をクリックして、プラグイン メニューを開きます。このメニューでは、実験的機能やベータ機能など、さまざまなプラグイン パッケージをプロジェクトに対して有効または無効にすることができます。
[Plugins] メニューに表示されているプラグインは、デフォルトで UE の現行バージョンと互換性があります。
シーン/レベル
Unreal Engine のレベル ファイルは、Unity のシーン ファイルに相当する機能です。 Unity のシーンと同様に、同期または非同期でロードおよびアンロードできます。 Unity では Open Map 関数を使用してマップにハードスイッチできるのに対して、Unreal Engine の World Partition システムは、プレイヤーがいる場所に応じて自動的にレベルをストリーミングできます。
シーン テンプレート/ワールド セッティング
Unity では、シーン テンプレートを使用して複数のシーンに共通のオブジェクトやフレームワークを設定できるのに対して、Unreal Engine のレベルにはワールド セッティングが組み込まれており、ここでゲームモードのオーバーライドや設定変更が行えます。 AGameMode、UGameInstance、AGameState などのゲーム フレームワーク クラスを使用して、ゲームのワールドに固有の追加ロジックを作成できます。
デフォルト レベルを選択する
Unity では、ビルド設定に最初に記載されているシーンに基づいて、デフォルトのシーンを選択します。 Unreal Engine では、[プロジェクト] > [マップ&モード] の下にある [プロジェクト設定] ウィンドウでデフォルト マップを選択できます。
ゲームオブジェクト/アクタ
Unreal Engine のアクタは、ゲームオブジェクトに相当する機能です。 Unity では、ゲームオブジェクトのビルドにコンポジションベースのフレームワークを使用するのに対して、Unreal Engine では、コンポジションおよびオブジェクト指向のアプローチを組み合わせて使用します。
プレハブ/ブループリントと C++ クラス
Unreal Engine では、ワールドでアクタを作成してからプレハブとして保存するのではなく、C++ またはブループリントで新しいアクタを作成してから、そのインスタンスをワールドに追加します。 新しいアクタを作成する際は、別のアクタをベースにして、そのコンポーネントおよびコードをすべて継承することを選択できます。
Unity のゲームオブジェクトおよびプレハブ編集ワークフローを使用する場合でも、ワールドに空のアクタを配置し、後でそのアクタにコンポーネントを追加できます。
その後、[ブループリントの編集] ボタンをクリックして、オブジェクトを新しいブループリント クラスに変換できます。
アクタを配置してブラウズする
UE の事前作成済みアクタやよく使用されるアクタのライブラリをブラウズするには、[アクタを配置] パネルを使用します。 検索バーまたはカテゴリ フィルターを使用して、トリガー、ライト、プリミティブ、シネマティック要素などを検索できます。 このリストのアクタをクリックしてビューポートまでドラッグすると、ワールドに追加できます。
また、メイン メニューにある [アクタ] > [アクタを配置] ドロップダウンを使用して、よく使用されるアクタを配置することも可能です。 このメニューは、ビューポートで右クリックした場合にも使用できます。 コンテンツ ブラウザを使用してアクタをブラウズおよび配置することもできます。
コンポーネント
Unreal Engine のアクタ コンポーネントとシーン コンポーネントは、Unity のコンポーネントに相当する機能です。
シーン コンポーネントには相対トランスフォームがあり、ブループリント エディタとレベル エディタの [詳細] パネルの両方で、アクタのコンポーネント階層に表示されます。 シーン コンポーネントの例として、メッシュ、音源、カメラ、パーティクル システム、ライト、またはその他のゲーム ワールドに物理的に存在することでメリットがあるものなどがあります。
アクタ コンポーネントにはコードのみがあり、 ゲーム ワールドでのトランスフォームや実体はありません。 アクタ コンポーネントの例として、移動コンポーネントや AI を処理するためのコンポーネント (AI センシング コンポーネント、AI ブラックボード、AI Behavior Tree など) があります。 こうしたコンポーネントの多くはワールドとやり取りできますが、そのために自身のローカル トランスフォームは必要とせず、代わりに親アクタを使用してワールド位置を特定します。
以下のスクリーンショットは、トップダウン ゲーム テンプレートのトップダウン キャラクターを示しています。 シーン コンポーネントはアクタを親に持ち、アクタのメッシュ、カメラ、コリジョンを含みます。 キャラクター移動コンポーネントは、トランスフォームのないアクタ コンポーネントであり、別のリストに表示されます。
コンポーネントを追加する
[詳細] パネルにある [+Add (+追加)] ボタンをクリックして、ゲーム ワールドのアクタにコンポーネントを追加します。
ブループリント エディタの [コンポーネント] パネルにある [+ Add (+追加)] ボタンをクリックして、ブループリント クラスにコンポーネントを直接追加します。
C++ では、UObject::CreateDefaultSubObject 関数を使用してコンポーネントを追加します。 コンポーネントをデフォルトでアクタにアタッチする必要がある場合は、アクタのコンストラクタ関数に追加します。
Unreal Engine でゲームオブジェクト/サブオブジェクトをペアレンティングする
Unity では、相対トランスフォームを含む複数パーツで構成された複雑なオブジェクトを作成する際に、ゲームオブジェクトを別のゲームオブジェクトに子としてアタッチする必要があります。
Unreal Engine では、シーン コンポーネントをアクタに追加することで、サブオブジェクトを追加します。 シーン コンポーネントは、子ゲームオブジェクトが Unity で行う大半のジョブ (コライダー、パーティクル エフェクト、音源、調整可能なライトの提供など) を実行します。
また、子アクタ コンポーネントを使用してアクタ全体を別のアクタにアタッチすることも、実行時にそれを実行するためにコードでアクタへのアタッチ関数を使用することもできます。
ゲームプレイ フレームワーク
Unreal Engine のゲームプレイ フレームワークは、ゲームプレイ エクスペリエンスを構築するためのモジュール式基盤となるクラスを集めたものです。 こうしたクラスが相互に補完し合う設計となっていることを踏まえて、ゲームに最適な要素を選択できます。
プロジェクトをビルドしてパッケージ化する
Unreal Engine の [プラットフォーム] ドロップダウンは、Unity の [ビルド設定] メニューと同様の目的を果たす機能です。
プロジェクトのパッケージ化ビルドを作成するには、[プラットフォーム] ドロップダウンをクリックして、パッケージ化するプラットフォームを強調表示してから、[プロジェクトのパッケージ化] をクリックします。 これでプロジェクトのすべてのコンテンツがビルド、クック、パッケージ化されます。 クイック起動オプションを使用すると、ワンステップでビルドがパッケージ化されて特定のデバイスにデプロイされます。
または、プロジェクト ランチャーを使用して事前構成済みビルドをリリースすることも、Unreal Automation Tool (UAT) のスクリプトを使用してヘッドレス コマンド ライン ビルドを実行することも可能です。
詳細については、以下を参照してください。
ビルド作成の詳細は、「ビルド操作」を参照してください。
プロジェクトでアセットをパッケージ化する方法の詳細は、「クック処理とチャンク化」を参照してください。