このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
Unreal Engine の風景を生成する
この例では、Unreal® Editor を使用して、高さマップ ファイルをインポートし、ランドスケープ マップを作成する方法を示します。サポートされているファイル形式は次のとおりです:
16ビット、グレースケールPNGファイル
16ビット、グレースケール、リトルエンディアンバイト順のRAWファイル
この例では、符号なし 16 ビット整数 (uint16) 形式を使用します。
データの作成
65 x 65 のメッシュ ポイントを使用して、MATLAB ® シェイプ membrane で新しい風景を作成します。メッシュのサイズによって、Unreal Editor の最終的なランドスケープのサイズが決まります。デフォルトでは、Unreal Editor は 1 メートル x 1 メートルのメッシュを使用するため、65 x 65 メッシュはデフォルトのスケールで 64 メートル x 64 メートルのランドスケープ サイズに変換されます。
npoints = 65; m = (npoints - 1)/2; L = membrane(1,m); x = -1:1/m:1; surf(x,x',L)

分析関数の代わりにサンプリングされたデータを使用する場合、1 メートルずつのメッシュで高さマップ データをサンプリングします。最大スパンは 8128 メートル x 8128 メートルです。サンプリングされたデータを使用するには、X または Y に沿ったサンプリングされたポイントの数に等しい npoints を選択します。
グレースケールに変換
解像度を最大限に高めるには、高さマップ値の範囲を可能な限り小さい整数 (0) から大きい整数 (65535) に設定します。このデータを使用して uint16 グレースケールの高さマップを作成し、高さマップを画像として表示します。
maxL = max(L,[],"all"); minL = min(L,[],"all"); range = maxL - minL; scale = range / 65535; Lgray = uint16((L - minL)/scale); imagesc(Lgray); colormap(gray)

ファイルの保存
高さマップを、Unreal Editor にインポートできる 16 ビット PNG 形式のファイルに保存します。
注: エクスポート設定で 0:255 グレースケール カラーマップを適用すると、解像度が失われる恐れがあります。
Lfile = 'Lgray_uint16.png'; imwrite(Lgray,Lfile,"png");
Unreal Editorでランドスケープを作成する
Unreal Editor でランドスケープを作成するには、ランドスケープ環境を作成し、ハイトマップ ファイルをインポートし、ハイトマップにマテリアルを適用して、MATLAB で使用するためにレベル ブループリントを再親化します。
景観環境の作成
Unreal Editor を開きます。コンテンツ ブラウザで、新しいランドスケープを配置する場所に移動します。
目的のフォルダーを右クリックし、基本アセットの作成>レベルを選択します。
レベルに名前を付けて保存し、ダブルクリックして開きます。ワールド アウトライナー では、レベルがすべて黒く表示され、アイテムが含まれていません。
空港などの既存のレベルを開きます。ワールド アウトライナーで、環境 フォルダー内の 9 つの項目すべてを Shift キーを押しながら選択し、右クリックして 編集 > コピー を選択します。
新しいレベルをもう一度開き、コピーしたアイテムを ワールド アウトライナー に貼り付けます。レベルには照明と雰囲気が含まれるようになりました。

高さマップファイルのインポート
ビューポートの上部で、モード>ランドスケープを選択して、左側にランドスケープモード ツールバーを追加し、新しいランドスケープ ダイアログ ボックスを表示します。
ファイルからインポートをクリックし、Heightmap File用に作成したファイルを選択します。このアクションは、Heightmap Resolution を読み込んだ画像のサイズ (65 x 65) に設定します。
スケール は、3 方向すべてでデフォルトで 100 倍になります。Unreal Editor はメートルをセンチメートルに変換します。
全体解像度を、セクション サイズを考慮して 1:1 スケーリングの 高さマップ解像度 と同じ値に設定します。セクション サイズのオプションは、
7x7、15x15、31x31、63x63、127x127、および255x255の 4 倍です。全体の解像度は、各方向のセクション サイズ、コンポーネントあたりのセクション数、およびコンポーネント数の積です。この例では、これらの値は 63 x 63 セクションで、コンポーネントごとに 1 つのセクションがあり、各方向に 1 つのコンポーネントがあります。全体の解像度は 64 x 64 です。インポートをクリックします。ランドスケープ要素が ワールド アウトライナー に追加されます。横向きモードのツールバーを閉じます。
必要に応じて風景の位置とスケールを変更し、F を押して選択範囲をウィンドウに合わせます。場所 と スケール をそれぞれ
[0,0,0]と[100,100,10]に設定し、球体を風景の一番端に配置すると、球体の座標は[6300,6300,-1840]センチメートルになります。新しい地形を囲むように、LightmassImportanceVolume の位置とスケールを調整します。

マテリアルを適用する
ワールド アウトライナー で、ランドスケープ を選択します。次に、詳細ペインで Landscape Material を見つけます。ランドスケープ マテリアルの値が空の場合、チェック模様のグレーの画像が生成されます。ランドスケープの外観を変更するには、使用するマテリアルを選択します (例: MathWorksAerospaceContent > Environment > Apple_Hill > Materials > Grass_1)。マテリアルをクリックして選択し、左向きの Landscape Material 矢印をクリックしてマテリアルを適用します。

再親ブループリント
表示ウィンドウの上部にある ブループリント をクリックし、レベル ブループリントを開く を選択します。ダイアログボックスで、クラス設定をクリックします。詳細 ペインの最初の項目は、クラス オプション > 親クラス です。親クラスをSim 3d Level Script アクターに設定します。この設定により、このレベルを MATLAB で使用できるようになります。保存してダイアログを終了します。

新しいランドスケープマップが使用できるようになりました。
