はじめに
このページでは、Unreal Engine の主要なシステムやワークフローの概要、およびそれらと Unity で一般的に使用されるエディタ、ツール、アセット タイプとの対応関係を説明します。 このドキュメントは、Unity デベロッパーがよく使用しているワークフローを Unreal Engine で実現する方法を理解する助けとなることを目的としています。 各機能の詳細については、各セクションのリンクを参照してください。
このページでは、Unreal Engine 5.5.4 と Unity 6 (6000.0.30f1) の各バージョンのツールと機能に言及します。 各エンジンが上記のバージョンではない場合、言及している機能が異なる場合があります。
ゲームプレイ
物理
Chaos 物理の機能の詳細な概要については、物理のドキュメントを参照してください。
物理エンジン
Unreal Engine には Chaos 物理という、次世代ゲームのニーズに対応できるよう新たに構築された軽量の物理シミュレーション ソリューションが付属しています。 Chaos 物理は、破壊、ネットワーク対応物理、剛体物理、ビークルなど、さまざまな機能を備えています。
Unity の 3D ゲーム用デフォルト物理エンジンは NVIDIA PhysX です。NVIDIA PhysX に似た機能が Chaos 物理には数多く備わっています。
Chaos Destruction
Chaos Destruction (ケイオス破壊) システムは Unreal Engine のツールのコレクションであり、これを使ってシネマティック品質レベルの破壊をリアルタイムで実現できます。 優れたビジュアルに加えて、このシステムはパフォーマンスに対して最適化されており、アーティストやデザイナーは、コンテンツ作成をより細かく制御できます。
Chaos Destruction システムは、ブループリントにネストされたものを含む 1 つ以上のスタティックメッシュからビルドされたアセットの一種である、ジオメトリ コレクションを利用します。 このジオメトリ コレクションは、リアルタイムの破壊を実現するために破砕することができます。
システムは、直感的なノンリニアのワークフローを使用することでこれまでにない破砕プロセスの制御を実現しました。 ユーザーは、複数のレベルの破砕や、ジオメトリ コレクションの一部に選択的破砕を作成し、表現性を高めることができます。 ユーザーは、破砕をトリガーするクラスタあたりのダメージしきい値を定義することもできます。
Chaos Destruction の詳細については、Chaos Destruction のドキュメントを参照してください。
ネットワーク対応物理
ゲームにおけるネットワーキングまたはレプリケーションとは、インターネット接続を介して複数のマシン間でゲームプレイ情報を通信する機能のことです。 Unreal Engine は、開発者がマルチプレイヤー ゲームの制作を効率化できるように、堅牢なネットワーキング フレームワークを備えています。
ネットワーク対応物理はネットワーキング フレームワークの一部であり、物理駆動シミュレーションをマルチプレイヤー環境で機能させることができます。 Unreal Engine の物理レプリケーションとは、物理をシミュレートする複製された動きを持つアクタを指します。 これらのシミュレーションは、ゲームプレイ中にローカル クライアント (プレイヤーのマシン) 内で実行されます。
ネットワーク対応物理の詳細については、「ネットワーク対応物理」のドキュメントを参照してください。
Rigid Body Dynamics (剛体力学)
Chaos 物理には剛体力学に関する多くの機能が用意されています。 これには、コリジョン反応、トレース、物理コンストレイント、および減退と摩擦が含まれています。
Collision
Unreal Engine では、物理エンジンを使用するほとんどのアクタ コンポーネントにコリジョンが組み込まれています。 アクタのコリジョン設定は、[Details (詳細)] パネルの [Collision (コリジョン)] セクションで変更できます。 たとえば、オブジェクトにヒット イベントの発行を許可して、ブループリントやコードを通じてコリジョンを検出できるようにするには、[Simulation Generates Hit Events (シミュレーションでヒット イベントを生成)] を有効にします。 これは、Unity において OnCollisionEnter を C# や Visual Scripting で使用してコリジョンを処理するのに似ています。
アクタのコリジョン設定の詳細については、コリジョンのドキュメントを参照してください。
レイキャストによるトレース
Chaos 物理システムにはさまざまなトレース手法が用意されています。 トレースは、アクタに対する外部情報を収集する方法を提供します。 この情報は、ゲームプレイ状況の変化に対応するためにランタイム時に使用できます。
トレースの実行時には、さまざまなオプションを利用できます。 ライン、球面、ボックス、カプセルなど、さまざまなトレース タイプを使用できます。 シングル ヒットやマルチ ヒットをトレースすることも、特定のオブジェクト タイプやコリジョン チャネルをトレースすることもできます。
Unreal のトレース システムは、Unity のレイキャスト システムに似ています。
トレースの詳細については、「レイキャストによるトレース」ドキュメントを参照してください。
Chaos Cloth
Chaos クロスは、ゲームやリアルタイムのエクスペリエンスで、正確かつパフォーマンスに優れるクロス シミュレーションを実現します。 このシステムには、広範なユーザー コントロールの他に、風などの物理的反応も用意されており、特定のアート面のビジョンを実現できます。 さらに、Chaos クロスには、親のアニメートされたスケルタルメッシュに合わせてクロス メッシュを変形させる強力な Animation Drive システムが備わっています。
Chaos クロスでは機械学習クロス シミュレーションも利用できます。 このシステムでは、リアルタイムで使用可能なトレーニング済みのデータセットを使用することで、従来の物理ベース モデルよりも高い忠実度のシミュレーションを実現し、以前はオフライン シミュレーションのみで達成可能であった品質の結果を生成することができます。
Chaos クロスの詳細については、Chaos クロスのドキュメントを参照してください。
Chaosビークル
Chaos Vehicle (ケイオス ビークル) は Unreal Engine のビークル (乗り物) 物理シミュレーション用軽量システムです。 このシステムには、車両ごとに任意の数のホイールをシミュレートできる、高い柔軟性があります。 前方および後方のギアも好きな数だけ設定できる、高いカスタマイズ性もあります。
Chaos Vehicle では、複雑なビークルのシミュレーションのための構成ができます。 シャーシの特定の位置でダウンフォースやアップリフトを与える空中翼サーフェスを好きなだけ設定することができます。 自動車のスポイラーや飛行機の翼やラダーまでもシミュレーションできます。 各制御サーフェスは、ロール、ピッチ、ヨーで操作できます。
Chaos Vehicle の詳細については、Chaos Vehicle のドキュメントを参照してください。
流体シミュレーション
Unreal Engine には、リアルタイムで 2D と 3D の流体のエフェクトをシミュレーションする組み込みのツール セットがあります。 これらのシステムは、物理ベースのシミュレーション方法を使用して、火、煙、雲、川、水しぶき、海辺で砕ける波などのリアルなエフェクトを生成します。
このツールセットは、シミュレーション ステージ、再利用可能なモジュール、堅牢なデータ インターフェースを活用し、実験のためのオープン プラットフォームとして設計されています。
流体シミュレーションの詳細については、「流体シミュレーション」ドキュメントを参照してください。
人工知能 (AI)
Unreal Engine には、ゲームプレイ中に AI エージェント (NPC) を作成および管理するためのさまざまなシステムが用意されています。
AI エージェントを大規模にシミュレートする
MassEntity は、高パフォーマンスのデータ指向シミュレーション用に設計された、ゲームプレイに特化したフレームワークです。 MassEntity を使用して、画面上の多数のエンティティを効率的に管理したりレンダリングしたりできます。
この点についての詳細は、「MassEntity」ドキュメントを参照してください。
AI エージェントの動作をシミュレートする
Unreal Engine には、認知と刺激、意思決定、ワールド ナビゲーション、環境インタラクションのカテゴリに分かれて、AI エージェント機能が備わっています。 各カテゴリには、期待する結果を得るのに役立つシステムが 1 つ以上あります。
認知と刺激
認知と刺激の領域で Unreal Engine に用意されているのは、Pawn Sensing、Pawn Noise Emitter、および AI Perception の各種 AI コンポーネントです。
AI Perception を使用すると、AI エージェントがアクセスできる感覚の種類を定義して処理できます。 AI Perception コンポーネントはコンポーネント ウィンドウからポーンの AIController ブループリントに追加可能なコンポーネントの一種です。このコンポーネントは、「リッスン対象の感覚」、「それら感覚に使用するパラメータ」、「感覚検出時の反応方法」を定義する際に使用します。
また、いくつかの異なる関数を使用して、「何が感知されたのか」、「どのアクタが感知されたのか」について情報を取得したり、特定の種類の感覚のオンオフを切り替えることもできます。
この点についての詳細は、「AI Perception」ドキュメントを参照してください。
意思決定
意思決定の領域で Unreal Engine に用意されているのは、ビヘイビア ツリーとステート ツリーです。 これらのアセットは、AI エージェントがゲームプレイ中の意思決定に使用するロジックを保持します。
ビヘイビア ツリー アセットには、決定グラフがあります。決定グラフには AI エージェントが実行できるロジックが入ったさまざまなノードが含まれています。 ツリーはルートから始まり、ブラックボード アセットに格納されたデータまたはエージェント自体からのその他のデータに基づいて特定のノードを実行します。 ビヘイビア ツリーを使用すると、どのように AI エージェントが意思決定するのか、AI エージェントを再利用可能で柔軟になるように設定できるかを直感的に視覚化できます。
この点についての詳細は、「ビヘイビア ツリー」ドキュメントを参照してください。
StateTree は汎用の階層型ステート マシンで、ビヘイビア ツリーのセレクターとステート マシンのステートおよび遷移を組み合わせたものです。 StateTree を使用して、柔軟性のある高性能なロジックを作成したり、それを整理された状態に維持したりできます。
この点についての詳細は、ステート ツリーのドキュメントを参照してください。
ワールド ナビゲーション
ワールド ナビゲーションの領域で Unreal Engine に用意されているのは、AI エージェント用の機能が充実したナビゲーション システムです。
このナビゲーション システムは、プロジェクトの AI エージェントに効率的な経路検索機能を提供します。 レベルでナビゲーション メッシュ アクタを作成して、エージェントのナビゲーションをビルドし、マッピングできます。 また、ナビゲーション メッシュ モディファイアとカスタム ナビゲーション エリアを使用して、特定の領域のトラバースにかかるコストに影響を与えることもできます。これにより、AI エージェントがターゲットまでの最適なナビゲーション パスを選択する方法に積極的に影響を与えることができます。
また、このシステムには、AI エージェントが環境内の動的要素や他の AI エージェントを回避するのに役立つ、対障害物相対速度と Detour 群衆マネージャーという 2 つの回避システムが用意されています。
この点についての詳細は、「ナビゲーション システム」ドキュメントを参照してください。
環境インタラクション
環境インタラクションの領域で Unreal Engine に用意されているのは、スマート オブジェクトです。
スマート オブジェクトは、AI エージェントやプレイヤーがインタラクト可能な、レベル内に配置されたオブジェクトです。 このオブジェクトには、このようなインタラクションに必要なすべての情報が含まれています。 スマート オブジェクトはグローバル データベースの一部であり、空間パーティショニング構造を使用します。 そのため、ランタイム時に、エージェント周辺の検索エリアやゲームプレイ タグなどのフィルタを使用してクエリできます。
この点についての詳細は、スマート オブジェクトのドキュメントを参照してください。
機械学習
Unreal Engine では、AI エージェントが学習して適応できる複雑な AI ソリューションを作成するために、学習エージェント プラグインが用意されています。このプラグインで強化学習などのアルゴリズムを使用して AI エージェントをトレーニングできます。 これは Unity の MLAgents パッケージに相当する Unreal Engine の機能です。
この点についての詳細は、学習エージェントのドキュメントを参照してください。
キャラクターとオブジェクトをアニメートする
Unreal Engine のアニメーション ブループリントは、Unity のアニメーター コントローラーに相当します。 アニメーション ブループリントには、アニメーション グラフと標準的なブループリント イベント グラフが含まれており、パラメータの定義や、複雑なアニメーション動作とロジックのスクリプト処理が一か所で処理できるようになっています。
この点についての詳細は、「アニメーション ブループリント」を参照してください。 のドキュメントを参照してください。
ステート マシンを使用してアニメーションを構成する場合は、アニメーション グラフに State Machine ノードを作成し、ノードをダブルクリックして、特殊なサブグラフを開きます。 そこで、新しいステート、コンジット、ステート エイリアスを作成し、それらを接続します。 各ステートには、ステートの出力を制御する独自のアニメーション グラフが含まれており、接続によってステート間の遷移が制御されます。
この点についての詳細は、「ステートマシン」ドキュメントを参照してください。
ブレンド スペースは、パラメータに基づいてブレンドされるアニメーションのグラフを定義します。 たとえば、2D ブレンドスペースではキャラクターの速度と向きに基づいて前後左右の歩行アニメーションをブレンドできます。
この点についての詳細は、「ブレンド スペース」ドキュメントを参照してください。
Unity では、シネマティック シーケンスをアニメートするために Timeline ツールを使用します。 Unreal Engine のシーケンサー エディタは、Unity の Timeline に相当し、アニメーション、エフェクト、カメラの動きをまとめるためのノンリニア エディタに似たインターフェースを備えています。 シーケンサーを使用して、キャラクターおよびオブジェクトのシネマティックスまたはスタンドアロン アニメーションを表現するレベル シーケンスを定義できます。
シーケンスの作成についての詳細は、「シーケンサー エディタ」ドキュメントを参照してください。
Unreal Engine には、アニメーション用のスケルタルメッシュのリギングをエディタ内で直接実行できるコントロール リグ システムも備わっています。 コントロール リグを使用すると、キャラクターにカスタム コントロールを作成してリギングを行い、シーケンサーでアニメートすることができます。また、その他のさまざまなアニメーション ツールを使用することで、アニメーション プロセスをサポートすることができます。
Unreal Engine でのリギングの詳細については、「コントロール リグ」ドキュメントを参照してください。
Unreal Editor 内で画像や動画のシーケンスをキャプチャしてエクスポートするには、ムービー レンダー キューを使用します。 これは Unity Recorder ツールに相当します。 ムービー レンダー キューを使用すると、フレームごとのシーケンス、ゲーム内画像、またはビデオ レコーディングを、品質を損なうことなくレンダリングおよびエクスポートできます。
ムービー レンダー キューの詳細については、「ムービー レンダー キューを使用して高品質なレンダリングを行う方法」を参照してください。
ゲームプレイ フレームワーク
Unreal Engine のゲームプレイ フレームワークは、ゲームプレイ エクスペリエンスを構築するためのモジュール式基盤となるクラスを集めたものです。これには、ゲーム モード、プレイヤー ステート、コントローラー、ポーン、カメラなどがあります。
Unity では、ゲームオブジェクトにアタッチして動作を定義する CharacterController や MonoBehaviour スクリプトなどのコンポーネントで同様の構造を処理します。
ゲームプレイ フレームワークの利用の詳細については、「ゲームプレイ フレームワーク」ドキュメントを参照してください。
入力
Enhanced Input システムは、キーボード、ゲームパッド、タッチスクリーンなどの複数のデバイスでプレイヤー入力を処理するように設計されています。
入力アクション (ジャンプ、射撃などのアクション) と入力軸 (移動やカメラの回転などの継続的な入力) を定義できます。 これらのアクションと軸は、特定のキーやボタン、あるいはタッチ ジェスチャにバインドでき、高度なカスタマイズが可能です。
Enhanced Input システムを使用するには、コンテンツ ブラウザで [+Add (+追加)] ボタンを押して、[Input (入力)] を選択し、Enhanced Input アセットを作成します。 これらのアセットを設定し、ゲームのキー バインディングと入力を定義します。
これらのアクションと軸を、ゲーム ロジック内でプレイヤーの入力イベントにバインドできます。 このシステムは、異なる入力スキーム (例:キーボードと ゲームパッド) の管理に使用でき、複雑なコントロール スキームを定義する方法を提供します。
Unity デベロッパーの方には Unity Input System がお馴染みでしょう。Unreal Engine の Enhanced Input システムの機能はそれに似ています。 Unreal Engine では、 複雑な入力処理やランタイム制御の再マッピングが必要な場合、拡張入力を使用することが標準的です。
プロジェクトでの入力の定義の詳細については、「Enhanced Input」ドキュメントを参照してください。
ワールドの作成とデザイン
Unreal Engine でワールドを構築する機能は、レベル ビューポート内にあるさまざまなエディタ モードに分割されています。
モデリングとレベルのプロトタイピング
モデリング モードは Unity の ProBuilder 拡張と同じような機能を提供しており、モデリング プログラムで使用するものと同様の、広範な頂点、エッジ、面、および UV 編集ツールを備えています。
モデリング モードをアクティベートするには、ビューポートにある [Modes (モード)] ドロップダウン メニューをクリックして、[Modeling (モデリング)] を選択します。
Unreal Engine でのモデリングの詳細については、「モデリング モードの概要」ドキュメントを参照してください。
テレイン/ランドスケープを作成する
ランドスケープ モードは Unity の Terrain システムと同じような機能を提供します。 ランドスケープ モードを使用すると、Unity の Terrain システムと似たツール スイート (高くする、下げる、平坦化するなど) を使用してランドスケープを作成したり、形状を調整したりすることができます。
ランドスケープ モードをアクティベートするには、ビューポートにある [Modes (モード)] ドロップダウン メニューをクリックして、[Landscape (ランドスケープ)] を選択します。
詳細については、「ランドスケープのクイックスタート ガイド」ドキュメントを参照してください。 また、大規模でオープンな屋外環境のテレインの作成について学ぶ場合は、「ランドスケープの屋外テレイン」ドキュメントを参照してください。
フォリッジ
フォリッジ モードはフォリッジの追加と管理の面で Unity の Terrain システムと同じような機能を提供します。 フォリッジ モードでは、木、草、その他の植生をレベルにペイントし、それぞれの密度、高さ、回転などのプロパティを調整できます。
Unity の Terrain システムとの大きな違いは、Unreal Engine のフォリッジ モードを使用すると、ランドスケープに限らずあらゆるオブジェクトにフォリッジをペイントできることです。 このモードでは、直感的な方法でワールドに自然の要素を追加しつつ、それらがランドスケープやレベルのサーフェスにどのように表示されるかを制御できます。
フォリッジ モードをアクティベートするには、ビューポートにある [Modes (モード)] ドロップダウン メニューをクリックして、[Foliage (フォリッジ)] を選択します。
詳細については、「フォリッジ モード」ドキュメントを参照してください。 また、自然で生き生きとした屋外空間を作成するために、スタティックメッシュ アセットで大規模な空間をプロシージャルに埋める方法の詳細については、「Open World ツール」ドキュメントを参照してください。
プロシージャル コンテンツ生成 (PCG)
プロシージャル コンテンツ生成フレームワーク (PCG:Procedural Content Generation Framework) は、Unreal Engine 内でプロシージャル コンテンツを作成するためのツールセットです。 アーティストやデザイナーは PCG を使って、迅速で反復的なツールや、建造物やバイオームの生成といったアセット ユーティリティから、ワールド全体に至るまでの、あらゆる複雑度のコンテンツをビルドできます。
拡張性とインタラクティビティを高めるために設計された PCG によって、既存のワールド構築パイプラインとの統合が行われ、プロシージャル ワークフローと従来のワークフローとの境界が取り払われます。
Unreal Engine でのプロシージャル コンテンツの作成については、「プロシージャル コンテンツ生成フレームワーク」ドキュメントを参照してください。
Water システム
Water システムを使用すると、川、湖、海を作成できます。これらはすべて、スプラインベースのワークフローを使用して、ランドスケープ テレインと相互作用し、連携します。
Unity デベロッパーは、HDRP を使用するプロジェクトで利用できる Water システムに馴染みがあることでしょう。 Unreal Engine の Water システムはスケーラブルで、あらゆる規模のプロジェクトに対応し、すべてのプラットフォームをサポートしています。
Water システムの詳細については、「Water システム」ドキュメントを参照してください。
ビジュアルとレンダリング
Unity ではスクリプタブル レンダー パイプライン システム (SRP) を使用しており、HD レンダー パイプライン (HDRP) などのテンプレートが用意されています。 Unreal Engine には、統一された、堅牢で、高度にカスタマイズ可能なレンダリング パイプラインがあります。 つまり、デバイス サポート、機能、および機能セットがテンプレートに分割されてはいません。
Unreal Engine では、スケーラビリティ設定を使用して、ゲームのビジュアル忠実度を変更できます。 詳細については、「拡張性のリファレンス」ドキュメントを参照してください。
光源
Unreal Engine のライティング ワークフローは、Unity のライティング ワークフローに似ています。 レベルにライトを追加または削除できるほか、使用できる光源のタイプは指向性ライト、ポイント ライト、スポット ライトなどさまざまです。
[Create (作成)] > [Light (ライト)] の順に移動すると、レベルに追加する光源の形状を選択できます。 これにより、新しいオブジェクトが作成されます。 ライトのタイプと使用方法の詳細については、「ライトのタイプと可動性」ドキュメントを参照してください。
スカイ ライト
スカイ ライトはレベルの遠い部分をキャプチャし、それをライトとしてシーンに適用します。 つまり、空が大気圏、スカイボックスの一番上の層状の雲、または遠くの山々のどれとつながっているかにかかわらず、空の外観とライティングおよび反射が一致します。
Unreal Engine の新規レベルにはデフォルトで、アウトライナー パネルに「Lighting」フォルダがあります。 このフォルダには、DirectionalLight、ExperimentalHeightFog、SkyLight などのライティング オブジェクトのデフォルト セットが含まれています。 詳細については、「スカイライト」ドキュメントを参照してください。
Lumen の動的グローバル イルミネーションおよび反射
Lumen は、次世代デバイス向けに設計された Unreal Engine の完全に動的なグローバル イルミネーションおよび反射のシステムで、デフォルトのグローバル イルミネーションおよび反射システムです。 そのため、ライトがサーフェスに反射して相互作用し、自然な見栄えのライティングを瞬時に作成できます。事前計算ワークフローを使用してライティングをベイクする必要はありません。
プロジェクトで動的グローバル イルミネーションと反射を使用する方法の詳細については、「Lumen の動的グローバル イルミネーションおよび反射」ドキュメントを参照してください。
ポストプロセス
Unity では、ポストプロセスはボリュームを介して処理されます。 Volume コンポーネント付きのゲームオブジェクトを作成した後、ポストプロセス プロファイルを割り当て、グローバルかローカルかを設定します。
Unreal Engine では、ポストプロセスは主に配置されたボリュームを使用して処理されます。 ただし、他の方法でも適用できます。 総じて、デフォルト値をオーバーライドできるという点でポストプロセスは同じように機能します。
| ポストプロセスの適用方法 | 説明 |
|---|---|
プロジェクト設定 | Unreal Engine はデフォルトで、スケーラビリティ設定に基づいて一連のポストプロセス エフェクトをゲームに適用します。 これらの設定は、オーバーライドされない限り、プロジェクト全体に適用されます。 [Project Settings (プロジェクト設定)] > [Engine (エンジン)] > [Rendering (レンダリング)] に移動すると、プロジェクトにグローバルに適用されるデフォルトのポストプロセス エフェクトを変更できます。 |
カメラ コンポーネント | 各カメラ コンポーネントには、独自のオーバーライド可能なポストプロセス設定のセットがあります。 これらはカメラごとに機能します。つまり、設定をオーバーライドしないカメラでは、[Project Settings] で定義されているデフォルトのエフェクトを適用するか、配置されたボリュームに適用される値を使用します。 |
Post Process Volume (ポストプロセス ボリューム) | ポストプロセス ボリュームは、[Add (追加)] > [Volume (ボリューム)] からレベルに追加できます。 これにより、Unity の Volume コンポーネントのように、デフォルトのポストプロセス設定をオーバーライドする新しいレベル アクタが作成されます。 これらのボリュームは、プレイヤーのカメラがボリューム内にあるときにポストプロセスを適用したり、[Infinite Extent (Unbound) (無制限に適用 (アンバウンド))] 設定が有効な場合はレベル全体にグローバルにオーバーライドを適用したりできます。 これは、Unity のボリューム フレームワークの Global Mode (グローバル モード) オプションと同じように機能します。 |
マテリアル
Unity では、Shader Graph を使用して新しいシェーダーを定義します。 Unreal Engine で同等のものはマテリアル システムです。 Unreal Engine では、シェーダーとマテリアルに次のような違いがあります。
シェーダーは、C++ で記述される低レベルの構成要素で、ライティング、非ライティング、クリア コート、ヘアなど、ベースのシェーディング モデルを定義します。 これにより、メタリックや半透明などのシェーダーの入力と、それらがライトにどのように反応するかが決まります。
マテリアルは、シェーダーに与えるテクスチャ入力、式、命令の論理グラフで、単一オブジェクトのサーフェス品質とそのシェーダー固有の式を表します。
マテリアルを作成するには、コンテンツ ブラウザ内を右クリックして、[Create Basic Asset (基本アセットを作成)] > [Materials (マテリアル)] の順にクリックします。 マテリアル エディタに、メイン マテリアル ノードを含んだ空のグラフが表示されます。
メイン マテリアル ノードをクリックすると、[Details (詳細)] パネルにプロパティが表示されます。 さまざまなシェーダーと [Shading Model (シェーディング モデル)] 設定を選択できます。
独自のマテリアルを複数のメッシュに適用したい場合は、マテリアル インスタンスを使用することを推奨します。 これは、マテリアルをパラメータ化したバージョンであり、追加のコストを発生させることなく、多様性と独自性を生み出すことができます。
各マテリアル インスタンスは、マテリアルまたは別のマテリアル インスタンスをその親 (「マスター」マテリアル) として使用して編集します。 マスター マテリアルでパラメータ化されているノードはすべて、インスタンス化マテリアル エディタでアクセスできます。 これらの公開済みパラメータを使用すると、カラー バリエーションを作成したり、異なるテクスチャを適用したり、ディテールを増減させたりなどして、単一のソース マテリアルから無限のバリエーションを生み出すことができます。
マスター マテリアルとその子マテリアルを使用してバリエーションを操作する場合は、マテリアル インスタンスを使用する方が効率的です。
マテリアル インスタンスを作成するには、コンテンツ ブラウザでマテリアルを右クリックした後、[Create Material Instance (マテリアル インスタンスを作成)] をクリックします。
マテリアルとマテリアル インスタンスの詳細については、「マテリアル」ドキュメントとCreating and Using Material Instancesに関するドキュメントを参照してください。 また、マテリアル エディタの詳細については「マテリアル エディタ ガイド」ドキュメントを参照してください。
Nanite
Nanite は Unreal Engine の仮想化ジオメトリ システムであり、内部メッシュ形式とレンダリング テクノロジーを活用して、ピクセル スケールのディテールと多数のオブジェクトをレンダリングします。 人が知覚できるディテールのみに焦点を当て、それ以上は行いません。
Nanite はプロジェクトにさまざまなメリットをもたらします。たとえば、ジオメトリの複雑さが数桁分増加し、リアルタイムで以前よりも多くの三角ポリゴンとオブジェクトを処理できるようになります。 フレーム バジェットが、ポリゴン数、ドローコール数、メッシュ メモリ使用の制限を受けなくなりました。
Nanite の概要とプロジェクトでの使用方法の詳細については、「Nanite 仮想化ジオメトリ」ドキュメントを参照してください。
オーディオ
Unity は、オーディオ ソース フレームワークを使用します。ゲーム ワールド内の各オーディオ ソースには単一の音声が関連付けられています。 Unity ではミキサーを使用して、オーディオ チャンネル設定をこれらのソースに適用します。
Unreal Engine の MetaSound プラグインは、オーディオ生成システムであり、ブループリントに似たビジュアル スクリプティング環境でデジタル信号処理 (DSP) グラフを完全に制御できます。
詳細については、「MetaSound」ドキュメントを参照してください。
オーディオをミックスするには、Audio Modulation プラグインを使うことをお勧めします。このプラグインは、Unreal Engine のブループリント システムやコンポーネント システムのボリュームやピッチなどのオーディオ パラメータを動的に制御できます。
詳細については、「Audio Modulation の概要」ドキュメントを参照してください。
サウンド キューは、ノード グラフに複雑なサウンド デザイン タスクをカプセル化するオーディオ オブジェクトです。 これを利用すると、サウンド ノードを配置および変更して複雑なオーディオ出力を作成することにより、サウンド エフェクトのデザインの一部を動的に変更できるようになります。
サウンド キューの詳細については、「サウンド キューのリファレンス」ドキュメントを参照してください。
Unreal Engine のオーディオ システムに関する詳しい概要は、「オーディオを使用する」ページを参照してください。
ビジュアル エフェクト
Niagara パーティクル システムは、Unity のパーティクル システムと VFX Graph に相当する Unreal Engine の機能です。 Niagara エミッタを作成して単一のパーティクル エミッタを作成することも、Niagara システムを作成して複数のエミッタを合成し、より複雑な視覚効果を作成することもできます。 新しいシステムまたはエミッタ アセットを作成する際は、既存の Niagara エミッタをテンプレートとして使用できます。
Niagara エディタのシステム概要グラフは、パーティクルを編集するための Niagara インターフェースを備えており、Unity のパーティクル システム エディタと似ています。 Niagara エミッタおよび Niagara システムは、幅広い動作やイベントを処理できるモジュール式のコンポーネントで構成されています。 モジュールを追加するごとにパーティクル システムの複雑度が増し、設定できる新しいパラメータが追加されます。
この点についての詳細は、「視覚効果を作成する」ドキュメントを参照してください。
Niagara Fluids プラグインを使用すると、煙、炎、爆発、水、水しぶきなど、物理的な妥当性の高いエフェクトをプロジェクトに追加できます。
この点についての詳細は、「Niagara Fluids」ドキュメントを参照してください。
ユーザー インターフェース
Unreal Motion Graphics (UMG) エディタは、Unity の UI Toolkit および UI コンポーネント ライブラリに相当する Unreal Engine の機能です。 UMG は、ボタン、テキスト要素、多数のコンテナやグリッドといった各種ウィジェットから UI を構築する WYSIWYG エディタを提供します。
新しい UI を作成するには、コンテンツ ブラウザで新しいウィジェット ブループリントを作成します。 ウィジェット ブループリントを開くと、UMG エディタが開き、空のグリッドが表示されます。その左側にはウィジェットの [Palette (パレット)] パネル、右側には [Details (詳細)] パネルが表示されます。 右上隅のボタンでデザイナー ビューとグラフ ビューが切り替わります。
ウィジェット ブループリント内にウィジェットを配置するには、デザイナ ビューを使用します。 [Palette] パネルでウィジェットをクリックし、グラフにドラッグします。描画順序を変更するには [Hierarchy (階層)] を使用します。 リスト内の下方にあるウィジェットが上に表示されます。 ウィジェットを UI スクリプトに公開するには、ウィジェットの [Details] パネルで [Is Variable (可変である)] を有効にします。
名前が示すように、作成したウィジェット ブループリントは、他のウィジェット ブループリント内でウィジェットとして使用できます。 これは、パレットの [User Created (ユーザーが作成)] カテゴリに表示されます。 ウィジェット ブループリントは、メニュー全体や HUD にも、ボタンや進捗バーなどの再利用可能なコンポーネントにも使用できます。
詳細については、「UMG UI デザイナのクイック スタート ガイド」ドキュメントを参照してください。 また、UI の作成と表示の詳細については、「ユーザー インターフェースを作成する」ドキュメントを参照してください。
保存してロードする
ゲームを中断した後に中断したところから再開できる機能は、最新のゲームの多くに実装されています。 開発しているゲームの種類によっては、プレイヤーが到達した最終チェックポイントのような基本的な情報を保存すればよい場合もあれば、詳細な情報を保存する必要がある場合もあります。
Unity デベロッパーの方は、ゲーム セッション間でのプレイヤー設定の保存に使用できる PlayerPref や、保存と読み込み機能を提供するさまざまなアセット ストア パッケージに馴染みがあることでしょう。 これらの機能は Unreal Engine に組み込まれています。
Unreal Engine でゲーム セッションの保存機能と読み込み機能を追加する方法についての詳細は、「ゲームを保存して読み込む」ドキュメントを参照してください。
エンジン間の大まかな機能比較
このセクションでは、Unity と Unreal Engine のいくつかの機能やツールの名前と使用目的の概要を説明します。
| 目的 | Unreal Engine | Unity |
|---|---|---|
| ユーザー インターフェース (UI) | ||
UI を作成する | Unreal Motion Graphics (UMG) | UI Toolkit |
| ワールドのビルド | ||
あらゆる形状のランドスケープを作成する | ランドスケープ モード | Terrain システム |
ランドスケープにフォリッジを追加する | フォリッジ モード | Terrain システムのフォリッジ |
レベル ブロックアウトを作成する | モデリング モード | ProBuilder |
水サーフェスと水中エフェクトを作成する | Water システム | Water システム |
ワールドとツールをプロシージャルに生成する | プロシージャル コンテンツ生成 (PCG) | サードパーティ社製のツール |
| 最適化 | ||
パフォーマンスの問題を特定するプロファイリング スイート | トレーシング | プロファイラ |
| ゲームプレイ | ||
プレイヤー入力を処理する | Enhanced Input System (強化された入力システム) | 入力システム |
ビジュアル スクリプティング | Blueprint Editor (ブループリント エディタ) | ビジュアル スクリプティング (旧称:Bolt) |
サポートされているスクリプティング/プログラミング言語 | C++ (プログラミング) | C# (スクリプティング) |
物理エンジン | Chaos Physics (Chaos 物理) | NVIDIA PhysX |
ゲーム データを保存する、読み込む | SaveGame オブジェクト | PlayerPref またはカスタム ソリューション |
| 人工知能 (AI) | ||
AI のステートを作成するステート マシン | StateTree | サードパーティ社製のツール |
AI が移動できる領域を作成する | ナビゲーションシステム | NavMesh |
| Animation | ||
アニメーション データを処理する | アニメーション ブループリント | アニメーター コントローラー |
アニメーション シーケンスを作成する | シーケンサー エディタ | タイムライン |
3D キャラクターにリグを設定する | コントロール リグ | サードパーティ社製のツール |