Physics 2D
Graphics

Quality (品質)

Unityでは、描画しようとするグラフィカルな品質のレベルを設定することができます。一般的に言えば、品質はフレームレートを犠牲にするため、モバイルデバイスや古いハードウェアで最高品質を目指すのは避けた方がよいでしょう。なぜなら、ゲームに悪影響を与える傾向があるからです。 Quality (品質) 設定 (Edit> Project Settings の順に移動し、Quality カテゴリを選択) を使用して、選択したデバイスに適したエディターの品質レベルを選択します。Quality 設定は2 つの主要エリアに分かれています。Quality マトリックスが上部に表示され、その下に、選択した画質レベルの設定が表示されます。

Unity では、簡単に参照できるように、画質オプションの組み合わせに名前をつけることができます。マトリックスの行で、各品質レベルをどのプラットフォームに割り当てるかを選択することができます。マトリックスの一番下の Default の行は画質設定そのものはではありませんが、各プラットフォームで使用されるデフォルトの品質を設定します (列の緑のチェックボックスは、現在、そのプラットフォームに選択されたレベルを表します)。Unity では 6 つの品質が標準で既に使用可能ですが、マトリックスの下にあるボタンを使用して 独自のレベルを追加 することができます。

各プラットフォームの品質設定レベル
各プラットフォームの品質設定レベル

不要な品質レベルを削除するには、ごみ箱のアイコン (右端) を使用します。

編集の品質レベルを選択するには、マトリックスでその名前をクリックします。その定義は設定の下のパネルに表示され、必要に応じて設定を変更することができます。

特定の品質レベルの設定を編集
特定の品質レベルの設定を編集

新しい品質レベルを定義するには、Add Quality Level ボタンをクリックし、Name プロパティーボックスに新しいレベルの名前を入力します。

次に、以下のセクションで説明する品質オプションのうち、更新や設定を行うものを選択します。

Rendering

プロパティー 機能
Pixel Light Count Unity が フォワードレンダリング を使用するときの、ピクセルライトの最大数を設定します。
Texture Quality テクスチャを最大解像度で表示するか、何分の一かで表示するかを選択します(解像度が低い場合は処理オーバーヘッドを減少させます)。選択肢は Full Res (フル解像度)Half Res (1/2 解像度)、Quarter Res (1/4 解像度)、Eighth Res (1/8 解像度) です。
Anisotropic Textures Unity が異方性テクスチャの使用方法を設定します。オプションは Disabled (無効)、 Per Texture (テクスチャ毎) 、 Forced On(強制、つまり常に有効) です。
AntiAliasing Unityが使用する アンチエイリアス のレベルを選択します。選択肢はDisabled (無効)、2x Multi Sampling4x Multi Sampling8x Multi Samplingです。
Soft Particles これを有効にすると、パーティクルにソフトブレンディングを使用します。詳細は ソフトパーティクル を参照してください。
Realtime Reflection Probes これを有効にすると、ゲーム中に リフレクションプローブ を更新します。
Billboards Face Camera Position これを有効にすると、レンダリング中に、カメラ面の代わりにビルボードがカメラに正面を向けるよう強制します。これにより、より良い、より現実的な画像が生成されますが、レンダリングするのがより高負荷になります。
Resolution Scaling Fixed DPI Factor デバイスの画面解像度を元の解像度よりダウンスケールします。詳細は、Android Player 設定と iOS Player 設定を参照してください。
Texture Streaming
これを有効にすると、テクスチャストリーミング を使用します。テクスチャストリーミングを使用しない場合は、この機能を無効にして CPU メモリのオーバーヘッドを避けてください。
  Add All Cameras これを有効にすると、プロジェクト内のすべてのアクティブなカメラのテクスチャストリーミングを Unity が計算できるようになります。これはデフォルトで有効になっています。これは、既存のプロジェクトをテクスチャストリーミングに移行する最も簡単な方法です。特定のカメラを除外したい場合は、そのカメラに Streaming Controller コンポーネントを加え、次に、それを無効にします。

このプロパティーを無効にすると、Unity は Streaming Controller コンポーネントを持つゲームオブジェクトのテクスチャストリーミングのみを計算します。この方法は、テクスチャストリーミングを細かく制御する場合に使用します。詳細は、テクスチャストリーミング API: テクスチャストリーミングのためのカメラ制御 を参照してください。
  Memory Budget Memory Budget (メモリバジェット) では、ロードしたすべてのテクスチャに割り当てたいメモリの合計量を設定します (MB単位)。容量がいっぱいになると、Unity は使用しないミップマップを破棄し、使用する必要があるスペースを確保します。デフォルトのメモリバジェットは 512MB です。

ストリーミングテクスチャは、メモリバジェットに達するために可能な限り最小のミップマップレベルを選択します。バジェットを超過しても、Unity は常にフル解像度で非ストリーミングのテクスチャを読み込みます。

メモリバジェット には、ストリーミング以外のテクスチャも含まれます。例えば、バジェットが 100MB で、ストリーミング以外のテクスチャが 90MB ある場合、テクスチャストリーミングシステムは残りの 10MB にすべてのストリーミングテクスチャを収めようとします。できない場合は、ミップマップをより低い解像度で読み込みます。

Unityは Memory Budget よりも Max Level Reduction を優先します。たとえ、解像度の減少が不十分で、メモリがテクスチャストリーミングの Memory Budget を超えたとしても、テクスチャストリーミングシステムが Max Level Reduction よりも多くのミップマップを破棄することは決してありません。
  Renderers Per Frame メインスレッドと関連するジョブの CPU 処理オーバーヘッドを制御します。これはデフォルトでは 512 です (つまり、1 フレームにつき 512 のメッシュレンダラーを処理します)。値を低くすると処理時間が短縮されますが、ミップマップのロードが遅くなります。
  Max Level Reduction テクスチャストリーミングシステムが Memory Budget に達した場合に、テクスチャストリーミングシステムが破棄できるミップマップの最大数を設定します。デフォルトでは 2 に設定されています (つまり、システムは 2 つより多くミップマップを破棄することはありません)。

テクスチャストリーミングシステムは、ミップマップの破棄が不十分でメモリがテクスチャストリーミングの Memory Budget を超えてしまっても、この値よりも多くミップマップを破棄することはありません。

この値もまた、テクスチャストリーミングシステムが起動時に最初に読み込むミップマップレベルです。例えば、これが 2 に設定されている場合、最初に読み込まれた 2 つのミップマップはスキップされます。
  Max IO Requests 同時使用可能なテクスチャストリーミングシステムからのテクスチャファイルイン/アウト (IO) 要求の最大数を設定します。デフォルトで 1024 に設定されています。このデフォルトは、Async Upload pipeline、またはファイルシステム自体のために既にアクティブな IO の上限を超えないように、十分に高い値に設定されています。

シーンテクスチャコンテンツが大幅に短時間で変化すると、システムはファイル IO が追いつける数より多くのテクスチャミップマップを読み込もうとします。この値を小さくすると、テクスチャストリーミングシステムが生成する IO 帯域幅が小さくなります。その結果、ミップマップ要件の変更に対するより迅速な対応が可能になります。

アンチエイリアス

アンチエイリアスはポリゴンのエッジの外観を改善するため、ポリゴンのエッジは「ギザギザ」ではなく、画面上で滑らかになります。ただし、グラフィックスカードのパフォーマンスにはコストがかかり、ビデオメモリを多く使用します (ただし、CPU のコストはかかりません)。アンチエイリアスのレベルによって、ポリゴンのエッジがどのくらい滑らかであるか (どのくらいビデオメモリを消費するか) が決まります。

アンチエイリアス処理を使用しないと、ポリゴンのエッジが「ギザギザ」になります。
アンチエイリアス処理を使用しないと、ポリゴンのエッジが「ギザギザ」になります。
4 倍のアンチエイリアス処理を使用すると、ポリゴンのエッジが滑らかになります。
4 倍のアンチエイリアス処理を使用すると、ポリゴンのエッジが滑らかになります。

ただし、ビルトインのハードウェアアンチエイリアスは Deferred ShadingHDR レンダリングでは機能しません。これらの場合は、アンチエイリアス画像エフェクト を使用する必要があります。

ソフトパーティクル

ソフトパーティクルは、シーン中の物体同士の交点付近をフェードアウト処理します。見た目は良くなりますが、計算処理の負荷は高くなり (複雑なピクセルシェーダー)、かつ 深度テクスチャ をサポートしているプラットフォームでしか動作しません。さらに、ディファードシェーディング旧 ディファードライティング レンダリングパスを使用するか、あるいはスクリプトで、カメラに 深度テクスチャ をレンダーさせる必要があります。

ソフトパーティクルを使用しないとシーンに交点がはっきりと描画されてしまいます。
ソフトパーティクルを使用しないとシーンに交点がはっきりと描画されてしまいます。
ソフトパーティクルを使用するとシーンに交点がスムーズに描画されます。
ソフトパーティクルを使用するとシーンに交点がスムーズに描画されます。

Shadows

プロパティー 機能
Shadowmask Mode Shadowmask の Mixed lighting (混合ライティング) モードを使用するときのシャドウマスクの動作を設定します。シーンで設定するには、Lighting ウィンドウ (Window > Rendering > Lighting Settings) を使用します。
Distance Shadowmask Unity は Shadow Distance に達するまでリアルタイムの影を使用し、それを超える場合はベイクした影を使用します。
Shadowmask シャドウを投影する静的ゲームオブジェクトは、常にベイクしたシャドウを投影します。
Shadows 使用するシャドウのタイプを選択します。使用可能な選択肢は Hard and Soft ShadowsHard Shadows OnlyDisable Shadows です。
Shadow Resolution シャドウをレンダリングする解像度を選択します。使用可能なオプションは Low ResolutionMedium ResolutionHigh ResolutionVery High Resolution です。解像度が高いほど、処理オーバーヘッドが大きくなります。
Shadow Projection シャドウをディレクショナルライトから投影するために使用する方法を選択します。
Close Fit より高い解像度のシャドウをレンダリングしますが、カメラが動くとシャドウがわずかに揺れることがあります。
Stable Fit 低解像度のシャドウをレンダリングしますが、カメラの動きでは揺れません。
Shadow Distance シャドウが表示されるカメラからの最大距離を入力します。 Unityは、この距離を超えたシャドウをレンダリングしません。
Shadow Near Plane Offset シャドウパンケーキで歪む大きな三角形を考慮した前方クリップ面のオフセットを設定します。
Shadow Cascades 使用するシャドウカスケードの数を選択します。可能な選択肢は No Cascades (カスケード無し)、Two Cascades (2 つ)、Four Cascades (4 つ) です。カスケードの数を増やすと、品質は向上しますが、処理のオーバーヘッドは増加します (詳細は ディレクショナルライトのシャドウ を参照してください)。
Cascade splits 各カスケード間の垂直線を左または右に動かすことによって、カスケードシャドウの分割を調整します。
Shadow Cascades 設定で選択した値に応じて、2 つまたは 4 つの異なる色で表示されます。Shadow Cascades が_No Cascades_ に設定されている場合、この制御全体が非表示になります。

Other

プロパティー 機能
Blend Weights アニメーション中に与えられた頂点に影響を与えるボーンの数を選択します。可能な選択肢は 1 Bone2 Bones4 Bones です。
V Sync Count 垂直の空白とレンダリングを同期するか、まったく同期させないかを選択します。 Unity は、レンダリングとディスプレイデバイスのリフレッシュレートを同期させてティアリングアーティファクトを防ぐ ことができます。可能な選択肢は Every V BlankEvery Second V BlankDon’t Sync です。
Lod Bias Level of Detail (LOD) バイアスを設定します。
LOD レベルは、オブジェクトの画面サイズに基づいて選択されます。サイズが 2 つの LOD レベルの間にある場合、その選択肢は 2 つの使用可能なモデルのより詳細でない傾向、または、より詳細な傾向に偏っている場合があります。この値は 0から +無限大の分数として設定されます。0 と 1 の間に設定すると、詳細さが減少します。1 より大きい値を設定すると、より詳細になります。例えば、LOD Bias を 2 に設定し、距離を50%に変更すると、LOD Bias は実際には 25% しか変化しません。
Maximum LOD Level ゲームが使用する最高の LOD を設定します。詳細は最大LODレベル を参照してください。
Particle Raycast Budget 近似パーティクルシステムの衝突のために使用する レイキャスト の最大数を設定します (MediumLow の品質で)。パーティクルシステム衝突モジュール を参照してください。
Async Upload Time Slice バッファされたテクスチャを GPU にアップロードするための CPU 時間 (ミリ秒/フレーム)。非同期テクスチャアップロード を参照してください。
Async Upload Buffer Size 非同期アップロードバッファのサイズ (MB)。非同期テクスチャアップロード を参照してください。

最高 LOD レベル

UnityはLODがMaximumLODより低い LOD を持つモデルは使用されず、ビルド対象から外れます (ストレージとメモリ容量を節約のため)。Unity はターゲットプラットフォームの画面設定で関連づけられたすべての MaximumLOD 値からもっとも低い値を使用します。LODレベルが含まれている場合、その LODGroup のモデルはビルドに含まれ、使用される Quality 設定にかかわらず、その LODGroup のランタイムに常にロードされます。例として、LOD レベル 0 が任意の品質設定で使用されると、すべての LOD レベルはビルドに含まれ、参照されるすべてのモデルはランタイムにロードされます。

ティアリング

ディスプレイ上の画像は継続的に更新されるのではなく、Unity のフレーム更新のように定期的な間隔で更新されます。しかし、Unity の更新は必ずしもディスプレイと同期しているとは限りません。そのため、ディスプレイがまだ前のフレームをレンダリングしている最中に Unity が新しいフレームを発行してしまう場合があります。この場合、フレームが変更された画面上に “ティアリング” と呼ばれる目に見える画像の乱れが発生します。

ティアリングの例。画像の拡大部には、画像のシフト (横ずれ) がはっきりと映っています。
ティアリングの例。画像の拡大部には、画像のシフト (横ずれ) がはっきりと映っています。

ディスプレイが更新されていない期間 (いわゆる “垂直ブランク”) にのみフレームを切り替えるように Unity を設定することが可能です。Quality 設定の V Sync Count オプションは、フレームのスイッチをデバイスの垂直ブランクと同期させます。または、任意で、ひとつおきの垂直ブランクごとに同期させることもできます。後者は、ゲームで、複数デバイスのフレームレンダリングの更新を必要とする場合に有用です。



  • 2017–09–18 限られた 編集レビュー で修正されたページ

  • Shadowmask Mode2017.1 で追加NewIn20171

Physics 2D
Graphics