モバイル プラットフォーム用のマテリアル

モバイル プラットフォーム用のマテリアルの設定方法

Choose your operating system:

Windows

macOS

Linux

モバイル プラットフォーム (Feature Level ES 3.1) 上のマテリアルは他のプラットフォームと同様にノードベースの作成プロセスを使用します。ほぼ全てのマテリアル入力がモバイル マテリアルで利用でき、マテリアルの外見とビヘイビアは通常、他のモバイル プラットフォーム上と同じです。例えば、以下の Material 入力は全て、

  • BaseColor

  • Roughness

  • Metallic

  • Specular

  • Normal

  • Emissive

  • Refraction

ただし、モバイル プラットフォーム上で使用するマテリアルを作成する場合は、以下を考慮しなければなりません。

  • ハードウェアの制限により、テクスチャ サンプラは 16 つまでしか使えません。

  • シェーディング モデルは Default と Unlit しか利用できません。

  • 依存したテクスチャ フェッチを避けるため カスタマイズ UV の使用が望ましいです (テクスチャ UV 上では一致しません)。

  • 透過およびマスク付マテリアルは非常に負荷が高くなります。できる限り 不透明マテリアル の使用を推奨します。

  • 深度フェードを iOS プラットフォーム の透過マテリアルに使用できます。ハードウェアが深度バッファからのフェッチをサポートしていないプラットフォームではサポートしていないので、許容範囲を超えるパフォーマンス負荷が発生します。

OpenGL ES2 は 4.23 では非推奨となっています。Unreal Engine の古いバージョンで使用することができるサンプルは 5 個までです。

また、モバイル プラットフォームでは使用できない機能もあります。

  • Scene Color 表現式

  • Tessellation 入力

  • サブサーフェス スキャタリング シェーディング モデル

機能レベルとして ES2 を提供している以前の UE4 のバージョンとの互換性を保つためには、 Feature Level Switch Metal ノードを使用します。

モバイル専用のマテリアル設定

以下の Mobile プロパティを使うと、モバイル デバイスでマテリアルを使用する際にレンダリング負荷を最適化して抑えることができます。

プロパティ

説明

bFullyRough

有効にすると、多数のシェーダー ALU インストラクションとサンプラが 1 つ保存します。反射エネルギー全体を維持しながら、スペキュラを効率よく無効化します。

High Quality Reflections

フォワード レンダリングにおいて質の高い反射が可能になります。この設定を有効にすると、リフレクション キューブマップ用にあと 2 つサンプラが使用されるためサンプラ数が減ります。

bUseLightmapDirectionality

無効にすると、ライトマップからのライティングはフラットになりますが負荷が小さくなります。

Use Full Precision

有効にすると、マテリアルのシェーダーはモバイル デバイスで最も高い精度の演算を使用します。この方法は、ワールド座標の使用時や光沢のあるマテリアル上での難しいスペキュラ反射など、精度の低い計算によって生じるレンダリング関連の問題の解決になります。

シェーダーの精度を最高にすると、マテリアルの負荷はさらに高くなります。

Full Precision Off

Full Precision On

モバイル用マテリアルのトラブル シューティング

PC とモバイル間のハードウェアの違いのため、オプションによっては、PC 上では正常に動くにもかかわらずモバイル デバイスで見ると動作しない問題が発生します。以下の表はよくある問題とその解決方法です。

問題

解決法

モバイル プレビューアにデフォルト マテリアルが表示されてしまう。

Engine\Saved ログ ファイル を開いて、そのマテリアルの修正方法が分かるエラー メッセージを探します。

フレームレートはすべて正しいはずなのに Time 表現式を伴うマテリアル アニメーションがぎくしゃくする。

Period を伴う Time 表現式において Period プロパティが有効にされていることを確認してください。これにより、演算処理が CPU に移動し、ハーフではなくフル精度で実行します。

Materials using World Coordinates 演算あるいは非常に小さい値が正確に表示されない。

モバイル デバイスで正しく表示されないマテリアルの [Use Full Precision] オプションを有効にしてみてください。モバイル デバイス上ではパフォーマンスをあげるためにマテリアルの精度レベルを小数点第 1 位または小数点第 2 位におく場合がよくあります。 [Use Full Precision] を使うことで、マテリアルの精度をマテリアル エディタで設定した値のままにすることができます。

エディタでは問題のないマテリアルがエディタでは見え方に問題がある。

モバイル デバイス上でマテリアルがどのように見えるのか知るために UE4 エディタの Preview Rendering Level を切り替えるとターゲット デバイスのレンダリング性能をシミュレーションすることができます。詳細は モバイル プレビュア を参照してください。

屈折が機能しません

モバイル デバイスで屈折を機能させるには、Mobile HDR が有効になっていることを確認する必要があります。

プラットフォームの統計情報

[Platform Stats (プラットフォームの統計情報)] アイコンをクリックと、マテリアルのコストを様々なプラットフォームで見ることができます。

PlatformStats.png

UE4 がサポートする各レンダリング API の統計を表示するには、 [Settings] オプションをクリックしてから、統計を見たいレンダリングを選択します。

PlatformStats_More.png

Android の統計情報を見るには、まず次の手順で Mali Offline Compiler をインストールする必要があります。

  1. Mali Offline Compiler をダウンロードしてインストールします。

  2. Mali Offline Compiler がインストールされたら、UE4 を開き、 メイン メニュー から [Edit (編集)] > [Editor Preferences (エディタの環境設定)] > [Content Editors (コンテンツエディタ)] > [Material Editor] の順に選択します。
    PlatformStats_CEMaterialEditor.png

  3. [Mali Offline Compiler] オプションの右側にある [...] をクリックし、Mali Offline Compiler と一緒にインストールされた「 malisc.exe 」 ファイルを探します。
    PlatformStats_LoadOfflineCompiler.png

  4. 前のステップが完了したら、UE4 がサポートするさまざまな Android レンダリングの統計を見ることができます。
    PlatformStats_SeeingStatsr.png

オフライン コンパイラなしでは Android プラットフォームの統計を見ることはできません。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル