アセットをインポートして変換する
Unreal Engine 5 プロジェクトには、最終的なゲームを構成する多様なアセットが含まれます。 これらのアセット タイプの一部には Unreal Engine に固有のもの (ブループリント クラスなど) がありますが、その他はエンジンにインポートできるユニバーサル ファイル形式です。
このドキュメントでは、Unreal Engine にインポートできるアセットのタイプ、それらのインポート方法について解説し、追加情報のリンクも示します。
共通アセット型
Unreal Engine 5 では次のアセット タイプをサポートします。
| Unrealアセットタイプ | Unity の場合 | 対応形式 |
|---|---|---|
| メッシュ |
|
| スキンメッシュ |
|
| アニメーション、Mecanim |
|
テクスチャ |
| |
| audio file (オーディオ ファイル) |
|
| 動画クリップ |
|
| フォント アセット |
|
| glTF ファイル |
|
SpeedTree |
|
Unreal Engine にインポートする前のアセットの考慮事項
Unreal Engine の座標系
Unreal Engine では、直交座標系を使用して、3D ユークリッド空間で位置を表現します。 Unreal Editor の座標系は左手系であり、X 軸を使用して、前/後方向を表し、Y 軸で左/右方向、Z 軸で上/下方向を表します。
Unity の座標系も左手系です。 ただし、Unity では X 軸を使用して、左/右、Y 軸で上/下、Z 軸で前/後方向を表します。
つまり Unity から Unreal Engine にアセットをそのままインポートすると、アセットの向きが正しくない場合があります。 この問題を発生させないためには、Maya や Blender などデジタル コンテンツ クリエーション (DCC) パッケージ内、または Unreal Engine のインポート ダイアログで、アセットの向きを変更します。
Unreal Engine の座標系の詳細は、「座標系と空間」のドキュメントを参照してください。
Unreal Engine での測定単位
Unreal Engine ではメートル法を使用して、オブジェクト サイズや距離を測定します。 具体的には、Unreal Engine の測定では Unreal 単位 (UU) を内部で使用します。 1 Unreal 単位は、1cm に相当します。
外部デジタルコンテンツ クリエーション (DCC) パッケージでメッシュを作成するときに、この情報を使用して、適切なスケールを割り当てます。
Unity でも内部でメートル法を使用していますが、1 Unity 単位は 1 メートル (100cm) に相当します。 これは Unity から Unreal Engine に直接インポートしたオブジェクトのスケールに影響を及ぼします。
Unreal Engine の測定単位の詳細は、「測定単位」のドキュメントを参照してください。
FBX コンテンツ パイプライン
Unreal Engine では使用プロジェクトにコンテンツをインポートするために多様なファイル形式をサポートしています。 よく使われるアセット形式の 1 つは Autodesk FBX です。
FBX 形式により多数のデジタルコンテンツクリエーション (DCC) パッケージ間の互換性が実現し、次のメリットがあります。
スタティック メッシュ、スケルタル メッシュ、アニメーション、モーフィング ターゲットに対応する単一のファイル形式を使用します。
1 回のインポート操作で複数の LOD およびモーフィング/ブレンドシェイプをインポートできます。
マテリアルおよびテクスチャ アセットをインポートし、それらを自動でスタティックメッシュに適用します。
Unreal Engine の FBX パイプラインは FBX 2020.2 を使用します。アセットのインポート時に非互換による問題が発生しないように、このバージョンを使用することを推奨します。
FBX パイプラインの詳細については、「FBX コンテンツ パイプライン」のドキュメントを参照してください。
バージョン情報
本ガイドの執筆時点で、スクリーンショットと用語集に使用した Unreal Engine と Unity エンジンのバージョンは次のとおりです。
Unreal Engine 5.4.3
Unity 6 (6000.0.2f1)
Unity からアセットをエクスポートするために準備する
Unity からアセットをエクスポートする前に、FBX Exporter (FBX エクスポーター) パッケージを有効にするために次の手順を実行します。
Unity で、[ウィンドウ] > [パッケージ マネージャー] をクリックして [パッケージ マネージャー)] ウィンドウを開きます。
左側の [Unity レジストリ] カテゴリをクリックしてから、FBX Exporter (FBX エクスポーター) を検索します。 [インストール] をクリックしてパッケージをインストールします。
パッケージをインストールしたら、[パッケージ マネージャー] ウィンドウを閉じます。
ここで [階層] ウィンドウのプレハブを右クリックし、[FBX へエクスポート] を選択し、.fbx ファイルとしてエクスポートします 。
他の方法として、Unity プロジェクトのソース フォルダーを開き、テクスチャなど、特定のファイルを直接コピーできます。
メッシュ/スタティック メッシュ
スタティック メッシュは、そのジオメトリが変化しない 3D メッシュです。 Unreal Engine にスタティックメッシュを、.fbx または .obj 形式でインポートできます。ここでは .fbx が 推奨形式です。 Unreal Engine のスタティック メッシュの詳細は、「スタティック メッシュ」のドキュメントを参照してください。
この例は、Unreal Engine のマテリアル球スタティック メッシュを Unity から Unreal にエクスポートする方法です。
このプレハブには 1 つのメッシュと 3 つのマテリアルがあります。 ただし、メッシュ プレハブには、複数のメッシュを階層に含めることができます。
スタティック メッシュを Unity からエクスポートする
スタティック メッシュを Unity からエクスポートするには、以下の手順を実行します。
[階層] ウィンドウのプレハブを右クリックして、メニューから [FBX をエクスポート…)] を選択します。
[エクスポート オプション] ウィンドウで、[エクスポート名] と [エクスポート パス] に値を入力します。
[オプション] カテゴリで、[ASCII エクスポート形式] を選択します。
[含める] ドロップダウンをクリックして、[モデルのみ] を選択します。
対象メッシュに詳細度 (LOD) がある場合は、適切なレベルを選択します。
メッシュ マテリアルを、対応するテクスチャとともにエクスポートする場合は、[テクスチャを埋め込む] チェックボックスをオンにします。
[エクスポート] をクリックして、スタティック メッシュをエクスポートします。
「Export Path」フォルダーに移動し、スタティック メッシュの .fbx ファイルを見つけます 。 これが Unreal Engine にインポートするファイルです。
スタティック メッシュを Unreal Engine にインポートする
スタティック メッシュを Unreal Engine にインポートするには、以下の手順を実行します。
Unreal Engine を起動し、コンテンツ ブラウザで [インポート] ボタンをクリックします。
「Export Path」フォルダーに移動し、.fbx メッシュ ファイルを選択して、 [開く] をクリックします。
別の方法として、Unity の [エクスプローラーで表示] 設定を使用した後に、ファイル エクスプローラー ウィンドウから対象ファイルをドラッグして、Unreal Engine のコンテンツ ブラウザに直接ドロップしてインポートすることもできます。
[FBX インポート オプション] ウィンドウが開き、スタティックメッシュのインポート設定が表示されます。
ウィンドウの一番下にある [FBX ファイル情報] セクションまでスクロールして、アセットの詳細を確認します。 クリエイター アプリケーションは Unity FBX Exporter 5.1.1 で、ファイル軸方向は Y-UP です。
上の [メッシュ] セクションにスクロールして、[欠落しているコリジョンを生成] チェックボックスをオンにします。
[詳細設定] セクションを展開して、複数メッシュを 1 つに結合する場合は、[メッシュを結合] チェックボックスをオンにします。 メッシュに LOD がある場合は、[メッシュ LOD をインポート] もオンにします。
下にある [その他] セクションにスクロールして、[シーンを変換] および [前面の X 軸を強制する] チェックボックスをオンにします。
下にある [マテリアル] セクションにスクロールし、[マテリアルのインポート方法] ドロップダウンをクリックして、[新規マテリアルを作成] を選択します。 これにより自動でスタティックメッシュ用の新規マテリアルが作成されます。
FBX インポータで利用できる各種設定の詳細については、「FBX インポート オプション リファレンス」ページを参照してください。
[すべてインポート] をクリックして、スタティックメッシュを Unreal Engine にインポートします。
スタティック メッシュ アセットが、マテリアルおよびテクスチャとともに Unreal Engine にインポートされます。
このスタティック メッシュ アセットをコンテンツ ブラウザからレベルにドラッグして、最終結果を確認します。
スタティックメッシュ FBX パイプラインの詳細は、「Unreal Engine の FBX スタティックメッシュ パイプライン」のドキュメントを参照してください。
スキン メッシュ/スケルタル メッシュ
Unreal Engine でのキャラクターは、ビジュアル ジオメトリをレンダリングし、アニメーションを再生し、キャラクターの動作をリアルタイムで制御するロジックを構築する、複数の独自のアセットを使用して作成されます。
Unreal Engine でのキャラクター用の基本的なアセットは、スケルタル メッシュ アセットです。ここには、キャラクターのビジュアル メッシュ、またはキャラクターのジオメトリック モデル レンダリング、およびキャラクターのアニメートに使用するボーン データを含むキャラクターのスケルトンがあります。
Unreal Engine のスケルタルメッシュの詳細は、「スケルタル メッシュ」のドキュメントを参照してください。
この例は、Unreal Engine の Quinn キャラクターを Unity から Unreal にエクスポートする方法です。
このプレハブには、IK 処理用の複数のトランスフォームを保持するルート コンポーネント、および Skinned Mesh Renderer と 2 つのマテリアルを含むスケルタル メッシュ コンポーネントがあります。
スケルタル メッシュを Unity からエクスポートする
スケルタル メッシュを Unity からエクスポートするには、以下の手順を実行します。
[階層] ウィンドウのプレハブを右クリックして、メニューから [FBX をエクスポート…)] を選択します。
[エクスポート オプション] ウィンドウで、[エクスポート名] と [エクスポート パス] に値を入力します。
[オプション] カテゴリで、[ASCII エクスポート形式] を選択し、[含める] ドロップダウンをクリックして、モデル + アニメーション] を選択します。 これで、スケルタルメッシュに割り当てられたアニメーションがインクルードされます。
対象メッシュに詳細度 (LOD) がある場合は、適切なレベルを選択します。
[アニメーション スキン メッシュ] チェックボックスをオンにします。
メッシュ マテリアルを、対応するテクスチャとともにエクスポートする場合は、[テクスチャを埋め込む] チェックボックスをオンにします。
[エクスポート] をクリックして、スタティック メッシュをエクスポートします。
「Export Path」フォルダーに移動し、スケルタル メッシュの
.fbxファイルを見つけます 。 これが Unreal Engine にインポートするファイルです。
スケルタル メッシュを Unreal Engine にインポートする
スケルタル メッシュを Unreal Engine にインポートするには、以下の手順を実行します。
Unreal Engine を起動し、コンテンツ ブラウザで [インポート] ボタンをクリックします。
「Export Path」フォルダーに移動し、
.fbxスケルタル メッシュ ファイルを選択して、 [開く] をクリックします。または、Unity の [エクスプローラーで表示] 設定を使用した後に、ファイル エクスプローラー ウィンドウから対象ファイルをドラッグして、Unreal Engine のコンテンツ ブラウザに直接ドロップしてインポートすることもできます。
[FBX インポート オプション] ウィンドウが開き、スタティックメッシュのインポート設定が表示されます。
ウィンドウの一番下にある [FBX ファイル情報] セクションまでスクロールして、アセットの詳細を確認します。 クリエイター アプリケーションは Unity FBX Exporter 5.1.1 で、ファイル軸方向は Y-UP です。
上の [メッシュ] セクションにスクロールして、[スケルタル メッシュ] および [メッシュをインポート] チェックボックスをオンにします。 [インポート コンテンツ タイプ] ドロップダウンをクリックして、[ジオメトリおよびスキニング ウェイト] を選択します。
インポートしているキャラクターのスケルトンと互換性があるスケルトン アセットが対象の Unreal Engine プロジェクトに含まれる場合に、[スケルトン] ドロップダウンから互換スケルトンをオプションで選択できます。 ただし、そのスケルトン アセットが同一でない限り、スケルトンを独自アセットとしてインポートすることを選択し、それから同一でないスケルトンアセットを互換性があるとして定義することになります。 詳細は、「互換性のあるスケルトン」のドキュメントを参照してください。
スケルタル メッシュがアニメーションとともにエクスポートされた場合は、下の [アニメーション] セクションにスクロールして、[アニメーションをインポート] チェックボックスをオンにします。 この例では、スケルタルメッシュにアニメーションは含まれません。
下にある [マテリアル] セクションにスクロールし、[マテリアルのインポート方法] ドロップダウンをクリックして、[新規マテリアルを作成] を選択します。 これにより自動でスケルタルメッシュ用の新規マテリアルが作成されます。
FBX インポータで利用できる各種設定の詳細については、「FBX インポート オプション リファレンス」ページを参照してください。 |
[すべてインポート] をクリックして、スケルタル メッシュを Unreal Engine にインポートします。
スケルタル メッシュ アセットが、マテリアルおよびテクスチャとともに Unreal Engine にインポートされます。 さらに、スケルトンおよび物理アセットも、スケルタル メッシュをベースに作成されます。
このスケルタル メッシュ アセットをコンテンツ ブラウザからレベルにドラッグして、最終結果を確認します。
スケルタルメッシュ FBX パイプラインの詳細は、「FBX スケルタル メッシュ パイプライン」のドキュメントを参照してください。
アニメーション
Unreal Engine の一連の強力なアニメーション ツールとエディタを使用して、キャラクターとオブジェクトのランタイム アニメーション システムおよびレンダリングされたシネマティック コンテンツを作成し、新しいアニメーション コンテンツをエンジン内で直接制作できます。
Unreal Engine のキャラクター アニメーションは、[スケルタルメッシュのアニメーション システム] を使用して作成されています。 アニメーションは、スケルタル メッシュに適用され、[アニメーション ブループリント] などのアニメーション アセットにより駆動されます。
Unreal Engine にはスケルタルメッシュを扱う多様なアニメーション ツールが用意されていて、アニメーションを改良することができます。
Unreal Engine のスケルタルメッシュ アニメーション システム、アニメーション [エディタ]、[アセットと機能] の詳細は、「キャラクターとオブジェクトのアニメート」のドキュメントを参照してください。
アニメーション クリップを Unity からエクスポートする
Unity のアニメーション クリップは、.fbx ファイルとして、FBX Exporter (FBX エクスポーター) パッケージを使用してエクスポートできます。 これらのエクスポート ファイルを、Unreal Engine にアニメーション シーケンスとしてインポートし、プロジェクトで使用することができます。
アニメーションクリップを Unity からエクスポートするには、次の手順を実行します。
Unity プロジェクトの [階層] パネルに移動し、エクスポートするアニメーション クリップを含むキャラクター プレハブを選択します。
プレハブを右クリックして、[FBX へエクスポート...] オプションを選択します。
Export Name と Export Path の各プロパティを設定し、エクスポートするファイルの名前とファイルをコンピューターで保存する場所を定義します。
Export Format プロパティを ASCII に設定してから、Include プロパティを Model(s) + Animation に設定します。 オプションで、LOD Level プロパティを使用してすべてのキャラクターの詳細度モデル (LOD) を含めることができ、Object(s) Position プロパティにカスタム トランスフォーム値を設定できます。
Include プロパティを Model(s) + Animation に設定すると、アニメーションクリップ、キャラクター モデル、スケルトン階層をエクスポートし、すべてを 1 つの .fbx ファイルに保存します 。 これはすべてのアセットがまとめて保存されているため、アセットを Unreal Engine にインポートするときに便利です。
[アニメーション スキン メッシュ] チェックボックスをオンにして、[エクスポート] ボタンを使用してアセットをエクスポートします。
アニメーションを Unreal Engine にインポートする
アニメーションを Unity から Unreal Engine にインポートするには、次の手順を実行します。
Unreal Engine のコンテンツ ブラウザで、[インポート] ボタンをクリックします。
Unity アニメーション クリップをエクスポートして保存したコンピュータの場所に移動し、そのファイルを選択して、[開く] ボタンをクリックします。
別の方法として、Unity の [エクスプローラーで表示] 設定を使用した後に、ファイル エクスプローラー ウィンドウから対象ファイルをドラッグして、Unreal Engine のコンテンツ ブラウザに直接ドロップしてインポートすることもできます。
[FBX インポート オプション] ウィンドウで、以下のプロパティを設定します。
スケルタル メッシュ プロパティをオンにします。
アニメーション クリップをインポートしてアニメーション シーケンス アセットを含む新規スケルタル メッシュ アセットを生成する場合は、[メッシュをインポート] プロパティをオンにします。 アニメーションをアニメーション シーケンスとしてインポートするだけの場合は、このプロパティをオフにします。 この例では、アニメーションだけをインポートし、メッシュをインポートしません。これは、スケルタルメッシュがすでにインポート済みであるためです。
新規キャラクターをインポートしていて、インポート プロセス中に新規スケルトン アセットを生成する場合は、Skeleton プロパティを定義しません。 プロジェクトで既存のキャラクター スケルトンとともに使用するアニメーションをインポートする場合は、アセット選択ドロップダウン メニューからスケルトン アセットを選択します。 この例では、アニメーションは Quinn のスケルタルメッシュ用であるため、プロパティは SK_Mannequin アセットを使用するように定義されています。
Unreal Engine のプロジェクトに、インポートしようとしているキャラクターのスケルトンと互換性があるスケルトン アセットがすでにある場合は、任意で、その互換性のあるスケルトンを使用して、この Skeleton プロパティを定義することができます。 ただし、そのスケルトン アセットが同一でない限り、スケルトンを独自アセットとしてインポートすることを選択し、それから同一でないスケルトンアセットを互換性があるとして定義することになります。 詳細は、「互換性のあるスケルトン」のドキュメントを参照してください。
[FBX インポート オプション] ウィンドウのプロパティを定義したら、[インポート] をクリックしてアセットをインポートします。
[FBX インポート オプション] ウィンドウを使ってスケルタル メッシュおよびアニメーション アセットをインポートする際は、[すべてインポート] または [インポート] ボタンのどちらかを選択してインポート処理を開始します。 [すべてインポート] を選択すると、「.fbx」ファイル内のすべての関連メッシュ、スケルトン、マテリアル、テクスチャ アセットがインポートされます 。 このオプションは、あるキャラクターのすべての要素をインポートする際に使用するのが最適です。 すでにインポートしたキャラクターに関連するアニメーションを追加でインポートする場合は、[インポート] オプションを選択して個々のアニメーション アセットのみをインポートします。
インポート処理の完了後、アセット エディタのアニメーション シーケンスにアクセスするか、アセットをレベルにドラッグしてエディタでプロジェクトをプレイすることができます。
スケルタル メッシュのインポートに関するトラブルシューティング
他のデジタルコンテンツ クリエーション (DCC) パッケージやゲーム エンジンからスケルタルメッシュのキャラクターやオブジェクトを Unreal Engine にインポートする際には、いくつかの問題が発生する可能性があります。 たとえば、各プログラムとそれぞれの座標系の間の違いにより、オブジェクトが正しくないスケールや回転でインポートされるなどです。
Unreal Engine の [FBX Import Settings (FBX インポート設定)] メニューは、インポート プロセス中にいくつかの問題を修正することができます。しかし、オブジェクトが正しくインポートされない場合は、インポート エラーの修正方法に関する情報を得るために以下のセクションを参照してください。
スケール
Unreal Engine の座標系は、1 Unreal 単位を 1 センチメートルとする固定のスケールに基づいています。 他のプログラムは、異なるスケールを使用して動作しているため、2 つのプログラム間でファイルを移行すると、設計されたサイズよりもキャラクターやオブジェクトが大きかったり小さかったりすることがあります。 1 メートル単位を使用する Unity からファイルを移行する場合、アセットのインポート後のキャラクターやオブジェクトが Unreal Engine では小さく表示される可能性があります。
この問題を解決するには、スケルタルメッシュ エディタで [アセット詳細] パネルに移動し、Import Uniform Scale プロパティを使用してメッシュに新しい値を設定します。 この値の設定後、エディタのツールバーにある [ベース メッシュを再インポート] ボタンを使用します。
回転
キャラクターのスケルトン、スケルタルメッシュ、またはアニメーション アセットがビューポートで適切に回転しない場合は、その関連エディタでアセットを開くことで問題を修正できます。
[アセット詳細] パネルを使って Import Rotation プロパティの値を設定してから、アセット エディタのツールバーにある [ベース メッシュを再インポート] ボタンを使用します。 このプロセスを終えると、アセットが Unreal Engine で適切に回転するはずです。
Unity と Unreal Engine の間に座標系の違いがあることから、X 軸 の値を 90.0 にします。これでスケルタルメッシュまたはアニメーション シーケンス アセットの回転の問題はすべて修正されるはずです。
シーンを変換プロパティ
アセットの [アセット詳細] パネルで、Convert Scene (シーンを変換)、Force Front Axis (前方軸を強制)、Convert Scene Unity (Unity 用にシーンを変換) の各プロパティをオンにすることで、破損したメッシュや不規則なメッシュを再生中に修正することができます。 これらプロパティのいずれかを有効にしてから、アセット エディタのツールバーにある [ベース メッシュを再インポート] ボタンをクリックすると、変更を適用できます。
複数アセットを同時に編集
アセットを Unreal Engine にインポートする際、1 つの設定 ([import rotation (回転をインポート)]、[import scale (スケールをインポート)] など) に対する同じ修正を複数アセットに行う必要が生じることがあります。 この場合、各アセットを個別に編集するのではなく、一括編集を使用すると、同じ設定やプロパティ値を複数アセットに同時に適用できます。
複数のアセットを同時に編集するには、以下の手順を踏みます。
Shift キーを押しながらクリックして、編集する各アセットをコンテンツ ブラウザ内で選択します。
選択したアセットを右クリックし、コンテキスト メニューのオプションを [アセット アクション] > [選択項目をプロパティ マトリックスで編集] の順に選択します。
これで、[アセット詳細] パネルで各アセットのプロパティにアクセスできるようになるため、すべてのアセットに設定を一括適用するために特定のプロパティの検索やナビゲートを行うことができます。
アニメーション ブループリント
スケルタル メッシュ キャラクターとそのアニメーション シーケンス アセットのインポートが完了したら、アニメーション ブループリントを使用して、ランタイム時のアニメーションの再生とロジックを駆動できます。 これらのグラフを使用して、再生するアニメーションを選択したり、アニメーション間、およびレイヤー アニメーション間をブレンドしたりします。 プロジェクトでアニメーション ブループリントを使用してアニメーションを駆動する方法についての詳細は、「アニメーション ブループリント」のドキュメントを参照してください。
テクスチャ
テクスチャとは、主にマテリアルで使用され、オブジェクトに適用される画像アセットです。 また、ヘッドアップ ディスプレイ (HUD) など、他の目的のためにテクスチャを直接使用することもできます。
Unreal Engine では、テクスチャ ストリーミングを使用してテクスチャをレンダリングし、テクスチャのシーンへのローディングを最適化します。 テクスチャ ストリーミング システムは、テクスチャ ミップマップ を使用します。 これらは、解像度の異なる同じテクスチャの事前に計算された画像のシーケンスです。
Unreal Engine のテクスチャについての詳細は、「テクスチャ」のドキュメントを参照してください。
テクスチャを Unity からエクスポート
Unity では、テクスチャ ファイルを元の形式のままプロジェクト ディレクトリ内で保存しておくため、テクスチャを Unity からエクスポートする必要はありません。 代わりに、プロジェクト ディレクトリからファイルを直接コピーできます。
Unity のプロジェクト ディレクトリ内でテクスチャ ファイルを見つけるには、以下の手順を踏みます。
[プロジェクト] ウィンドウ内のテクスチャ ファイルを右クリックし、[エクスプローラーで表示] をクリックします。
これで、プロジェクト ディレクトリ内にあるファイルが表示されます。 ここからファイルを直接コピーするか、このフォルダ ロケーションを使って Unreal Engine からファイルを見つけます。
テクスチャを Unreal Engine にインポート
テクスチャを Unreal Engine にインポートするには、以下の手順を踏みます。
Unreal Engine を起動し、コンテンツ ブラウザで [インポート] ボタンをクリックします。
テクスチャが入っている Unity プロジェクト フォルダーを見つけ、そのテクスチャ ファイルを選択して [開く] をクリックします。
別の方法として、Unity の [エクスプローラーで表示] 設定を使用した後に、ファイル エクスプローラー ウィンドウから対象ファイルをドラッグして、Unreal Engine のコンテンツ ブラウザに直接ドロップしてインポートすることもできます。
これでテクスチャが Unreal Engine にインポートされます。
マテリアルでテクスチャを使用する方法については、以下の「シェーダー/マテリアル」セクションを参照してください。
シェーダー/マテリアル
Unreal Engine のマテリアルは、シーン内にあるオブジェクトのサーフェス プロパティを定義します。 マテリアルを広い意味で捉えると、メッシュの外観を制御するためにメッシュに適用する「ペイント」だと言えます。
もう少し専門的に言うと、マテリアルは、どのようにサーフェスがシーン内のライトと相互作用するかをレンダリング エンジンに正確に伝えるものです。 マテリアルは、色や反射、凹凸、透明度などを含む、サーフェスのあらゆる側面を定義します。 こうした演算は、さまざまな画像 (テクスチャ) やノードベースのマテリアル式、マテリアル自体の固有特性となる多様な プロパティ設定 からマテリアルに入力されるデータを使用して行われます。
Unreal Engine のマテリアルについての詳細は、「マテリアル」のドキュメントを参照してください。
マテリアルを Unity からエクスポート
Unity の Shader Graph (シェーダー グラフ) を使用すると、シェーダーを視覚的に構築することができます。 Unity には、Shader Graph (シェーダー グラフ) アセットの参照が可能で、GameObject に直接適用される、マテリアルもあります。
Unreal Engine のマテリアルは内部でシェーダーに変換され、その マテリアル エディタを使って構築されます。また、マテリアルの構築の際にはノードベースのアプローチを使用します。
Shader Graph アセットを、Unity から直接エクスポートして Unreal Engine のマテリアル グラフに変換することはできません。 ただし、関連するテクスチャを Unity から Unreal Engine にすべてエクスポートし、Unreal Engine のマテリアル エディタで Shader Graph ノードのネットワークを再構築することはできます。
この例では、ベース カラーに適用されたテクスチャ、および法線マップとして適用された別のテクスチャを持つ、Lit Shader Graph (ライティングありシェーダー グラフ) を表示しています。
このドキュメントのテクスチャセクションにある手順説明に沿って、この両テクスチャを Unity からエクスポートします。
マテリアルを Unreal Engine にインポート
Unity からマテリアルを直接インポートできないため、上記に示す Shader Graph を Unreal Engine のマテリアル エディタで再構築することになります。
以下の手順に沿ってマテリアルを構築します。
本ガイドのテクスチャセクションの手順説明に沿って、テクスチャを Unreal Engine にインポートします。
コンテンツ ブラウザ内で右クリックし、[マテリアル] をクリックすると新規マテリアルを作成できます。 アセット名を「M_Bricks」と入れます。
M_Bricks をダブルクリックして、マテリアル エディタを開きます。
コンテンツ ブラウザのテクスチャを選択し、それをマテリアル エディタ内でドラッグして Texture Sample ノードを 2 つ作成します。
マテリアル ノードの Base Color ピンに、ディフューズ テクスチャを参照する Texture Sample ノードを接続します。 続いて、マテリアル ノードの Normal ピンに、normal map (法線マップ) テクスチャを参照する Texture Sample ノードを接続します。
マテリアル ノード上で、Specular (スペキュラ) に 0.2 の値、Roughness (荒さ) に 0.8 の値を入力します。 [保存] ボタンをクリックして、マテリアルのコンパイルおよび保存を完了します。
ビューポートで [+Add (+追加)] >[Shapes (形状)] > [Cube (キューブ)] の順にクリックし、キューブのスタティック メッシュをレベルに追加します。
コンテンツ ブラウザで M_Bricks を選択し、レベルのキューブ スタティック メッシュまでそれをドラッグするとマテリアルを適用できます。
マテリアルの FBX パイプラインについての詳細は、「FBX マテリアル パイプライン」のドキュメントを参照してください。
パーティクル エフェクト
Unity の視覚効果グラフを使用すると、GPU パーティクル シミュレーションを作成できます。 このシステムは、ノードベースのインターフェースを使ってエフェクトを作成し、ゲームプレイ中に大量のパーティクルをシミュレートできます。
この Niagara VFX システムは、Unreal Engine の次世代 VFX システムです。 Niagara は、システムの完全な制御をユーザーに与えています。 そのため、あらゆる軸でのプログラムとカスタマイズが可能であり、高度なツールを使ったデバッグ、ビジュアライゼーション、性能測定を実行できます。
Niagara システムには、1 つ以上のエミッタが含まれているため、複雑なエフェクトを作成する際にエミッタを組み合わせることができます。 エミッタは随時、CPU パーティクルまたは GPU パーティクルからスポーンできます。それらパーティクルは、スプライト、メッシュ、デカール、ライト、リボンとしてレンダリング可能です。 また、Niagara システムは、継承可能です。つまり、Niagara システムのマスターを作成しておけば、子のシステムをそこから取得できます。
経験豊富なユーザーは、カスタム モジュールをシステムに直接作成することで、エミッタの動作を完全に制御することが可能です。 また、Niagara は事前構築されたテンプレートを備えており、これには流体シミュレーションのサンプル一式 2D ガスおよび 3D ガス、液体、浅瀬 (浅水) も含まれています。
Niagara パーティクルは、メッシュ距離フィールド、コリジョン、および NeighborGrid3D モジュールを使用することで、環境との相互作用が可能です。このモジュールにより、パーティクルの BOID を使ったフロッキング (群集化) など複雑な動作を作成できます。
Niagara は、Unreal Engine の他システム (物理、アニメーション、ブループリント コードなど) からの入力データに対応しています。 また、外部ソースからの入力データにも対応しています。
Unity の視覚効果グラフは、Unreal Engine と直接的にエクスポートまたはインポートできないため、Niagara 内でエフェクトを再作成する必要があります。 多くのエフェクトは、マテリアルとテクスチャを使用しますが、それらはエクスポートして取得できます。 テクスチャを Unity からエクスポートする方法については、このドキュメントの「テクスチャ」セクションを参照してください。
Niagara の詳細については、「ビジュアル エフェクトを作成する」のドキュメントを参照してください。
オーディオ
Unity のオーディオ システムは、さまざまなオーディオ ファイル形式をインポートして 3D 空間で再生することができます。 また、多くの選択可能な、リバーブなどのエフェクトをランタイム時に適用することもできます。
Unreal Audio Engine は、Unreal Engine によってサポートされている全プラットフォームにわたって幅広い機能を支援する、堅牢なオーディオ エンジンです。
このオーディオ エンジンは、マルチ プラットフォーム対応のオーディオ ミキサーを備え、オーディオ デジタル信号処理 (DSP)、プロシージャル合成、カスタマイズ可能なサブミックス グラフ、柔軟な C++ API を可能にしています。
次世代機能の MetaSound、オーディオ モジュレーション、オーディオ解析や、カスタム インタラクティブでプロシージャルな音楽システムをサポートするアビリティは、ゲーム用のリッチでインタラクティブなオーディオを作成する際に FMOD や Wwise などのオーディオ ミドルウェアをまったく必要としないことを意味します。
Unreal Engine のオーディオについての詳細は、「[Unreal Engine 5 のオーディオ」のドキュメントを参照してください。
オーディオ ファイルを Unity からエクスポート
Unity では、オーディオ ファイルを元の形式のままプロジェクト ディレクトリ内で保存しているため、オーディオ ファイルを Unity からエクスポートする必要はありません。 代わりに、プロジェクト ディレクトリからファイルを直接コピーできます。
Unity のプロジェクト ディレクトリからオーディオ ファイルを見つけるには、以下の手順を踏みます。
[プロジェクト] ウィンドウ内のオーディオ ファイルを右クリックし、[エクスプローラーで表示] をクリックします。
これで、プロジェクト ディレクトリ内にあるオーディオ ファイルが表示されます。 ここからファイルを直接コピーするか、このフォルダ ロケーションを使って Unreal Engine からファイルを見つけます。
オーディオ ファイルを Unreal Engine にインポート
オーディオ ファイルを Unreal Engine にインポートするには、以下の手順を踏みます。
Unreal Engine を起動し、コンテンツ ブラウザで [インポート] ボタンをクリックします。
オーディオ ファイルが入っている Unity プロジェクト フォルダーを見つけて、そのオーディオ ファイルを選択して [開く] をクリックします。
別の方法として、Unity の [エクスプローラーで表示] 設定を使用した後に、ファイル エクスプローラー ウィンドウから対象ファイルをドラッグして、Unreal Engine のコンテンツ ブラウザに直接ドロップしてインポートすることもできます。
オーディオ ファイルが Unreal Engine にインポートされます。
コンテンツ ブラウザ内でオーディオ ファイルを右クリックし、[キューの作成] をクリックすると、サウンド キュー アセットを作成できます。 これはインゲームのサウンド再生に使用されるエンジンの、標準オーディオ アセットです。
サウンドキューについての詳細は、「サウンド キュー」のドキュメントを参照してください。 また、「MetaSound」も参照されることをお勧めします。サウンド キューよりさらに高度な機能を提供するものです。
ビデオ
Unity のビデオ プレイヤー コンポーネントは、GameObjects に複数のビデオ ファイルをアタッチし、シーン内でビデオ ファイルを再生する際に複数のオプションを与えます。
Unreal Engine には、フル機能のメディア フレームワークが備わっており、同じような機能性を提供しています。 このフレームワークは、さまざまなビデオ ファイル形式に対応し、再生を最適化します。Windows デバイスと Android デバイス上のオーディオ/ビデオ キャプチャ ハードウェアに対応しています。
Unreal Engine のビデオ ファイルについての詳細は、「レベル内でビデオをプレイする」のドキュメントを参照してください。
ビデオ ファイルを Unity からエクスポート
Unity では、ビデオ ファイルを元の形式のままプロジェクト ディレクトリ内で保存しているため、ビデオを Unity からエクスポートする必要はありません。 代わりに、プロジェクト ディレクトリからファイルを直接コピーできます。
Unity のプロジェクト ディレクトリからビデオ ファイルを見つけるには、以下の手順を踏みます。
[プロジェクト] ウィンドウ内のビデオ ファイルを右クリックし、[エクスプローラーで表示] をクリックします。
これで、プロジェクト ディレクトリ内のファイルが表示されます。 ここからファイルを直接コピーするか、このフォルダ ロケーションを使って Unreal Engine からファイルを見つけます。
ビデオ ファイルを Unreal Engine にインポート
ビデオ ファイルを Unreal Engine にインポートするには、以下の手順を踏みます。
Unreal Engine を起動し、コンテンツ ブラウザで [インポート] ボタンをクリックします。
ビデオが入っている Unity プロジェクト フォルダーを見つけ、そのビデオを選択して [開く] をクリックします。
別の方法として、Unity の [エクスプローラーで表示] 設定を使用した後に、ファイル エクスプローラー ウィンドウから対象ファイルをドラッグして、Unreal Engine のコンテンツ ブラウザに直接ドロップしてインポートすることもできます。
ビデオ ファイルが Unreal Engine にインポートされます。 コンテンツ ブラウザでは、Media Plate アクタが自動的に作成されています。それをレベルにドラッグすると、ビデオ ファイルを直接再生できます。
コンテンツ ブラウザでビデオ ファイルを選択し、それをレベルまでドラッグします。
選択した メディア プレート アクタの [詳細] パネルへ進み、[制御] セクションまでスクロール ダウンします。
[開いたときに再生]、[自動再生]、[オーディオを有効化] のチェックボックスをオンにします。
ビデオ再生を無限ループにする場合は、[ループ] のチェックボックスをオンにします。
任意選択として、[ジオメトリ] セクションまでスクロール ダウンし、ビデオのディスプレイに適用されるジオメトリ ([平面]、[球体]、[カスタム])、[アスペクト比]、[レターボックスのアスペクト比] を調整することもできます。 この例では、[自動アスペクト比] のチェックボックスをオンにしておき、再生時の形状がビデオ ファイルのネイティブ アスペクト比になるようにします。
[シミュレート] をクリックすると、レベル内でビデオ再生を確認できます。
メディア プレート アクタについての詳細は、「メディア プレート アクタ」のドキュメントを参照してください。
カメラ制御とムービー シーケンス
Unity には、シネマティック コンテンツを作成できるツールがいくつか備わっています。 タイムライン ツールを使用すると、エディタ内でムービー シーケンスを作成できます。Cinemachine は、カメラを制御するための一連のツールになります。
開発者は、これらツールを併用することで、動的なムービー シーケンスをランタイム時に作成できるアビリティを手に入れます。
シーケンサーは、リアルタイムのムービー シーケンスの作成およびプレビューに使用される、Unreal Engine のマルチトラック エディタです。
このエディタには、堅牢なシネマティック ツールが備わっており、アニメートされたムービー シーケンスを作成する際に使用できます。 カメラを操縦して、レベル フライ スルーの作成、ライトのアニメーション化、オブジェクトの移動、キャラクターのアニメーション化、出力シーケンスのレンダリングなどを行うこともできます。
Timeline と Cinemachine で作成されたカメラのアニメーションと動作は、Unity から Unreal Engine に直接エクスポートすることはできません。 このようなケースでは、シーケンサーを使用してその動作を再作成する必要があります。
シーケンサーの詳細については、「ムービーとシーケンサー」のドキュメントを参照してください。
コードとビジュアル スクリプティング
Unity のデフォルトのプログラミング言語は C# ですが、Unreal では、ネイティブ プログラミング言語として C++ を使用しています。 Unity には、Bolt Visual Scripting (Unreal Engine のブループリント ビジュアル スクリプティング言語に似た機能) も含まれています。
Unity の C# スクリプトと Bolt スクリプトファイルをそのまま Unity からエクスポートして Unreal Engine にインポートすることはできません。 C++ またはブループリントを使用して機能をビルドする必要があります。
一般的な Unreal Engine のプログラミング パターンとベストプラクティスの詳細については、「Unreal Engine でゲームプレイを作成する」のドキュメントを参照してください。
2D アセット
Paper 2D は、Unreal Engine で 2D ゲームおよび 2D/3D のハイブリッド ゲームを作成するためのスプライト ベースのシステムです。 Paper 2D システムは、平面ゲーム オブジェクトにマップされたテクスチャ ファイルを使用して、Unreal Engine のプロジェクトで 2D のキャラクター、オブジェクト、背景を表現します。
Paper 2D の詳細、および Unreal Engine で 2D プロジェクトを作成する方法については、「Paper 2D」のドキュメントを参照してください。
Unity から 2D アセットをエクスポートする
Unity から 2D アセットをエクスポートするには、次の手順を実行します。
[プロジェクト] ウィンドウ内のアセットを右クリックして [エクスプローラーで表示] を選択し、コンピューター上のアセットがある場所を開きます。
これで、プロジェクト ディレクトリ内のファイルが表示されます。 ここからファイルを直接コピーするか、このフォルダ ロケーションを使って Unreal Engine からファイルを見つけます。
2D アセットを Unreal Engine にインポートする
2D アセットを Unreal Engine にインポートするには、以下の手順を踏みます。
Unreal Engine を起動し、コンテンツ ブラウザで [インポート] ボタンをクリックします。
2D ファイルが保存されている Unity プロジェクトのフォルダーに移動して、2D ファイルを選択し、[Open (開く)] をクリックしてアセットをインポートします。
2D アセットが Unreal Engine にインポートされました。
インポートされたファイルを使用して、Paper 2D で 2D のアセットまたはアニメーションを作成できます。
アセットのインポート、スプライトの作成、フリップブック アニメーションの詳細は、「Paper 2D」のドキュメントを参照してください。
SpeedTree アセット
SpeedTree は、リアルタイムおよびリニアなコンテンツ用の植物を作成することに特化した製品を集めたものです。 製品には、購入後にそのまま Unreal Engine にインポートできる、樹木モデラーとビルド済みアセットが含まれています。
Unreal Engine で SpeedTree を使用する方法の詳細は、SpeedTree のドキュメントにある「Unreal Engine で SpeedTree を使用するには」を参照してください。