UDN
Search public documentation:

MobileLandscapeJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3ホーム > ランドスケープ? > モバイルランドスケープ
UE3ホーム > モバイル用ホーム? > モバイルランドスケープ

モバイルランドスケープ


概要


2012年11月のリリースから、モバイルデバイス向けプラットフォームでランドスケープが初めてサポートされました。[Emulate Mobile Features]や[Mobile Previewer]設定に加えて、モバイルデバイス上での実行がすべてサポートされました。その他のプラットフォームで既に利用可能な形状モーフィングLODやPhysXコリジョンも利用が可能となりました。

ランドスケープのスクリーン方向をモバイルデバイスで使用する際の他のプラットフォームとの違いは、モバイルマテリアルの設定です。パフォーマンスとメモリも考慮しなくてはいけません。

モバイルデバイスでランドスケープを表示する際のマテリアル


モバイルでランドスケープ表示をするには、Unreal Engine 3 モバイルマテリアルシステムを利用します。PCや他のプラットフォームでのランドスケープ表示は、ランドスケープマテリアルノード内で測定される正確なブレンドの計算で、レイヤーの複数使用をサポートします。モバイルでは、最高レイヤー4までのブレンディングがサポートされます。

PCでレンダリング処理がされるようにマテリアルを設定することは通常得策と考えられています。この設定は、編集やライトマスでライトマップを作成する際に使用されます。似たようなブレンディングでマテリアルをモバイルデバイスに設定する簡単な方法は、LandscapeLayerBlendノードを使用することです。下記は4つのレイヤーをブレンドしたランドスケープの例で、マテリアルノードのショットです。 MobileLandscapeLayers.jpg MobileLandscapeNodes.png

通常のレイヤーブレンド

同様のマテリアルをモバイルデバイスで設定する場合、最初にマテリアルの使用フラグを適切に設定しなくてはいけません。 Use With LandscapeUse With Mobile Landscape が両方チェックされていることを確認してください。

MobileLandscapeUsage.png

次に、各レイヤーに使用するテクスチャを指定します。レイヤーに使用するテクスチャは、Landscape Editモードのウィンドウに表示される順番で指定します。その他の方法として、 Mobile Landscape Layer Names プロパティで使用するレイヤーをリストアップすることも出来ます。下記の例では、Snow、Grass、Sandの順番となっています。

MobileLandscapeLayerNames.png

最初のレイヤーは、 Mobile Base Texture プロパティで指定します。以下に続くレイヤーは、[Texture Blending]セクションの、 Mobile Detail TextureMobile Detail Texture 2Mobile Detail Texture 3 スロットで指定します。

そして最後に、[Texture Transform]セクションから、テクスチャのUVスケールを要望に合わせて指定できます。

MobileLandscapeMaterialSettings.png

マテリアルの設定後、[Emulate Mobile Features]ボタンを押すと、モバイルデバイスに表示されるレイヤーのブレンディングを確認することができます。モバイルデバイスでも使用される、OpenGL ES 2.0シェーダーを使用する[Mobile Previewer]ボタンを押して確認することも出来ます。

MobilePreviewerWindow.jpg

モノクロレイヤーブレンド

R、G、BそしてAチャンネルにそれぞれ格納されたテクスチャのモノクロバージョンの、4つのレイヤーテクスチャを一つのテクスチャへまとめることも可能です。ブレンドする前に、各レイヤーのカラー化に使用する4つのRGB値を指定します。例えば、Snowには白を指定、Grassには緑、そしてロックのレイヤーには茶色を指定します。

このブレンドを行うことによって、各レイヤーにたくさんのカラーバリエーションを持たすことは出来なくなりますが、ウェイトテクスチャとシングルレイヤーテクスチャのみを使用することによって、ブレンドを簡素化します。これによって、特にローエンドデバイスにおけるパフォーマンスが著しく向上します。

この機能を有効化するには、 Use Mobile Landscape Monochrome Layer Blending ボックスをチェックします。そして、 Mobile Landscape Monochrome Layer Colors プロパティで各レイヤーのRGB値を指定します。

MobileLandscapeLayerColors.png

最後に、まとめたレイヤーテクスチャをインポートして、 Mobile Base Texture プロパティで参照します。 Mobile Detail Texture プロパティはブランクでなくてはいけません。

パフォーマンスとメモリ


コンポーネントサイズ

Drawコールとトライアングルの数を制限することは、モバイルデバイスにおいて重要です。Drawコールの数は、ランドスケープコンポーネントの数によって決定されます。またコンポーネントサイズとサブセクションの数はトライアングル数を決定し、LODトランザクションが発生する速さを決定します。開発途中で、126x126クワッド(63x63クワッドの2x2サブセクション)で1009x1009サイズのランドスケープを使用すると、トライアングル数とLODトランザクション間で良いバランスが取れることが分かりました。

コンポーネントサイズに関する更なる情報は、新たなランドスケープの作成ページを参照してください。

Mobile LOD バイアス

モバイルのランドスケープで、レンダリングされるトラアングル数を削減する設定方法が二つあります。まず、Landscapeアクタの MobileLodBias プロパティです。この数値の各インクリメントは、それぞれのコンポーネントのサイズを全てのモバイルプラットフォームで1ミップレベル相当削減します。例えば、2x2サブセクションの63x63クワッドランドスケープにMobileLodBias=1を設定した場合、ハイトマップのトップミップデータがクック時に破棄され、解像度が2x2、31x31クワッドランドスケープへ削減されます。[Emulate Mobile Features]ボタンを有効にすると、縮小された解像度でランドスケープが表示されます。

次の設定は、 BaseSystemSettings.iniMobileLandscapeLodBias です。この値は、MobileLodBiasプロパティと同様の機能をしますが、特定のデバイスに基づいてランタイム時に追加のバイアスが実行されます。例えば、第4世代のiPod Touchデバイスではデフォルトのバイアスが1となっていて、それは半分の解像度を使用したハイトマップ、iPhone 4Sでレンダリングされるトライアングル数の四分の一であることを意味します。この設定はゲームの必要性に応じて調整が可能です。

  • MobileLandscapeLodBiasは、レンダリングデータが初期化されるまでフルの解像度データを処分しないため、ピーク時のメモリ使用量は削減されないことに注目してください。メモリ使用量はレベルがロードされると削減されます。

これらの設定は同時に機能します - SystemSettings.iniのいかなるMobileLandscapeLodBiasセットは、アクタのMobileLodBiasセットに加えて適用されます。これはクック時に発生します。

メモリ使用量

PCプラットフォームでは、ハイト及び法線データの効率的な格納や、LODトランザクションを簡単に計算するために頂点テクスチャを使用します。モバイルプラットフォームでは、固定頂点とインデックスバッファを使用します。これにより、モバイルデバイスでのメモリ使用量が増加しました。 

  PC モバイル
位置データ LODの頂点につき2バイト LODの頂点につき8バイト
法線データ  LODの頂点につき2バイト LODの頂点に追記4バイト 
コリジョンデータ 頂点につき4バイト 頂点につき4バイト 
レイヤーデータLayer data (4 レイヤー) 頂点につき4バイト 頂点につき4バイト 

スタッツ

STAT LANDSCAPE コンソールコマンドで、ランドスケープビューのトライアングル及びdrawコール数が表示出来ます。

制限


  • ランドスケープの穴(洞穴や縦穴)はまだサポートされていません。
  • LODは厳密に距離に基づいていています。固定LODを含むコンポーネントで、頂点シェーダーでは2つのLODレベルのみがサポートされていることから、LODファクタの変更はサポートされていません。
  • [Emulate Mobile Features] ボタンではランドスケープの編集は出来ません。ランドスケープの編集モードに入ると、[Emulate Mobile Features]ボタンはクリックされた時にトグルされます。
  • 2x2サブセクションの127x127クワッドなど、128x128頂点よりも大きなコンポーネントサイズはサポートされていません。大きなコンポーネントサイズは頂点バッファで65536頂点数以上を必要としますが、16ビットインデックス値がオーバーフローしてしまいます。より大きなサイズを使用する試みはレンダリング破損を引き起こします。この状況でMobileLodBias=1に設定することによって、コンポーネントの頂点数が減り問題解決となります。