Unity では、レンダリングしようとするグラフィカルな品質レベルを設定することができます。一般的に言えば、品質はフレームレートを犠牲にするため、モバイルデバイスや古いハードウェアで最高品質を目指すのは避けた方がよいでしょう。ゲームに悪影響を与える傾向があるからです。Quality 設定 (メニューで Edit > Project Settings の順に移動し、Quality カテゴリを選択) を使用して、選択したデバイスに適したエディターの Quality Level (品質レベル) を選択します。Quality 設定は 2 つの主要エリアに分かれています。Quality マトリックスが上部に表示され、その下に、アクティブな Quality Level の設定が表示されます。
Unity では、簡単に参照できるように、品質オプションの組み合わせに名前をつけることができます。マトリックスの行で、それぞれの品質レベルをどのプラットフォームに割り当てるかを選択することができます。マトリックスの一番下の Default 行は品質レベルそのものではありませんが、各プラットフォームで使用されるデフォルトの品質レベルを設定します (列の緑のチェックボックスは、現在、そのプラットフォームに選択されているレベルを表します)。Unity では 6 つの品質レベルがあらかじめ設定されており、使用することができますが、独自のレベルを追加することができます。

A: このプロジェクトで定義した品質レベル
B: 現在アクティブな品質レベル
C 現在の品質レベルの設定
不要な品質レベルを削除するには、(右端の列の) ごみ箱のアイコンを使用します。
編集の品質レベルを選択するには、マトリックスでその名前をクリックします。
新しい品質レベルを定義するには、Add Quality Level ボタンをクリックし、Name プロパティボックスに新しいレベルの名前を入力します。
次に、以下のセクションで説明する品質オプションのうち、更新や設定を行うものを選択します。
| プロパティ | 説明 |
|---|---|
| レンダーパイプライン | この品質レベルで使用するレンダーパイプラインアセット。 |
| Pixel Light Count | Unity がフォワードレンダリング使用するときの、ピクセルライトの最大数を設定します。 |
| AntiAliasing | GPU が実行するマルチサンプルアンチエイリアス (MSAA) のレベルを選択します。選択できるオプションは、Disabled、2x Multi Sampling、4x Multi Sampling、8x Multi Sampling です。 アンチエイリアスは、ポリゴンエッジの外観を滑らかにします。アンチエイリアスのレベルが上がると、GPU の滑らかさが向上しますが、パフォーマンスのコストも上がります。 MSAA はフォワードレンダリングとのみ互換性があります。他のタイプのアンチエイリアスと互換性についての詳細は、ポストプロセス参照してください。 |
| Realtime Reflection Probes | このオプションを有効にすると、ゲームプレイ中にリフレクションプローブを更新します。 |
| Resolution Scaling Fixed DPI Factor | デバイスの画面解像度を元の解像度よりダウンスケールします。詳細については、Android Player 設定および iOS Player 設定を参照してください。 |
| V Sync Count | 垂直の空白とレンダリングを同期するか、まったく同期させないかを選択します。Unity は、レンダリングとディスプレイデバイスのリフレッシュレートを同期させてティアリングアーティファクトを防ぐことができます。選択できるオプションは、Every V Blank、Every Second V Blank、または Don’t Sync です。 |
| Realtime GI CPU Usage | ランタイムに Enlighten Realtime Global Illumination がライティングの計算に使用する CPU バジェット。この値を大きくすると、より多くの CPU 時間が消費されますが、ライティングの変化に対してシステムがより速く反応します。 注意すべての CPU をワーカースレッドで占有できるプラットフォームもあれば、強制的に最大値が設定されるプラットフォームもあります。例えば、一部のゲームコンソールでは、最大 4 つの CPU コアを使用できます。Android デバイスが bigLittle アーキテクチャの場合、小さい方の CPU のみが使用されます。それ以外の場合は、最大数は CPU の総数から 1 引いた数になります。これは、スクリプタブルレンダーパイプラインにのみ表示されることに注意してください。 ビルトインレンダーパイプラインを使用する場合、このプロパティはグラフィックス設定にあります。 |
ディスプレイデバイス上の画像は継続的に更新されるのではなく、Unity のフレーム更新と同様に定期的な間隔で更新されます。ただし、Unity の更新は必ずしもディスプレイの更新と同期していないため、ディスプレイがまだ前のフレームをレンダリングしている間に Unity が新しいフレームを発行してしまう場合があります。この場合、フレームの変更が発生した画面上に “ティアリング” と呼ばれる視覚的なアーティファクトが発生します。
Unity の設定により、ディスプレイデバイスが更新していない期間、いわゆる “垂直ブランク” にのみフレームを切り替えるようにすることができます。Quality 設定の V Sync Count オプションでは、フレームの切り替えをデバイスの垂直ブランクと同期させることも、オプションで 1 つおきの垂直ブランクと同期させることも可能です。後者は、ゲームで複数のデバイスのフレームレンダリングが必要な場合に有用です。
| プロパティ | 説明 |
|---|---|
| Global Mipmap Limit | Unity がテクスチャをレンダリングするときに使用する最高解像度のミップマップレベルを選択します。ミップマップレベルが高いと解像度が低くなり、必要な GPU メモリと GPU 処理時間が少なくなります。 このプロパティは、テクスチャ形状が 2D または 2D 配列のテクスチャにのみ影響します。 これで HDRP がモーションベクトルをレンダリングできるようになります。オブジェクトモーションベクトルを有効にする場合は、デフォルトにより、新しいメッシュレンダラーがオブジェクトモーションベクトルを書きますので、注意してください。この動作を変更するには、メッシュレンダラーを選択し、Inspector で Motion Vectors プロパティーの値を変更します。 !
ミップマップを持たないテクスチャは、選択したオプションに関係なく、フル解像度でレンダリングされます。 |
| Mipmap Limit Groups | これらのグループを使用して、globalTextureMipmapLimit を無視する、またはバイアスを追加する特定のテクスチャを指定します。これにより、重要なテクスチャにより多くのメモリバジェットを割り当て、重要性の低いテクスチャには少ないメモリバジェットを割り当てることができます。 このプロパティは、テクスチャ形状が 2D または 2D 配列のテクスチャにのみ影響します。 これで HDRP がモーションベクトルをレンダリングできるようになります。オブジェクトモーションベクトルを有効にする場合は、デフォルトにより、新しいメッシュレンダラーがオブジェクトモーションベクトルを書きますので、注意してください。この動作を変更するには、メッシュレンダラーを選択し、Inspector で Motion Vectors プロパティーの値を変更します。 !
Override (オーバーライド) は、テクスチャの該当グループの Global Mipmap Limit を置き換えます。例えば Global Texture Mipmap Limit が Half Resolution の場合に Override Global Mipmap Limit: Full Resolution を選択すると、テクスチャの該当グループの新しい Mipmap Limit は Full Resolution になります。 注意Mipmap Limit Group を削除または名称変更すると、ダイアログボックスが開いて、そのグループ内のテクスチャを再インポートするためのオプションが提供されます。これらのインポートの変更は、Undo で元に戻すことはできません。 |
| Anisotropic Textures | Unity が異方性テクスチャの使用方法を設定します。選択できるオプションは、Disabled (無効)、Per Texture (テクスチャごと)、Forced On (強制、つまり常に有効) です。 |
|
Mipmap Streaming |
Mipmap Streaming を使用する場合は、このチェックボックスをオンにします。Mipmap Streaming システムを使用しない場合は、この機能を無効にしてオーバーヘッドを回避してください。 |
| Add All Cameras | このチェックボックスを有効にすると、Unity はプロジェクト内でアクティブなすべてのカメラに対してミップマップストリーミングを計算します。これはデフォルトで有効になっています。 詳細については、ミップマップストリーミングシステム: カメラの設定を参照してください。 |
| Memory Budget | ミップマップストリーミングシステムを使用する場合に、ロードされたすべてのテクスチャに割り当てるメモリの合計量 (MB) を設定します。デフォルトでは、この値は 512 MB に設定されています。詳細については、ミップマップストリーミングシステム: メモリバジェットの設定を参照してください。 |
| Renderers Per Frame | メインスレッドと関連するジョブのミップマップストリーミングシステムの CPU 処理関連オーバーヘッドを制御します。デフォルトでは 512 です (つまり、1 フレームにつき 512 のメッシュレンダラーが処理されます)。値を小さくすると処理時間が短縮されますが、ミップマップのロードが遅くなります。 |
| Max Level Reduction |
ミップマップストリーミングシステムが Memory Budget に達した場合に、破棄できるミップマップレベルの最大数を設定します。デフォルトでは 2 に設定されています (システムが破棄するミップマップレベルは 2 つまで、であることを意味します)。 この値は、ミップマップストリーミングシステムが起動時に最初にロードするミップマップレベルでもあります。例えば、この値を 2 に設定すると、Unity は最初のロード時に最もレベルの高い 2 つのミップマップをスキップします。 詳細については、ミップマップストリーミングシステム: メモリバジェットの設定を参照してください。 |
| Max IO Requests |
ミップマップストリーミングシステムから同時にアクティブにできるテクスチャファイルの入出力 (IO) 要求の最大数を設定します。デフォルトでは、1024 に設定されています。このデフォルトは、非同期アップロードパイプラインまたはファイルシステム自体が原因で、すでにアクティブになっている IO の上限を超えないように十分に大きい値に設定されています。 シーンのテクスチャコンテンツが短時間で大幅に変化すると、システムは、IO が対応できるファイルよりも多くのテクスチャミップマップをロードしようとする場合があります。この値を小さくすると、ミップマップストリーミングシステムが生成する IO の帯域幅が小さくなります。その結果、ミップマップ要件の変化に対して、より迅速な応答できるようになります。 |
| プロパティ | 説明 |
|---|---|
| ソフトパーティクル | パーティクルが、不透明なゲームオブジェクトのエッジに近づくときにフェードするかどうかを示します。詳細は、ソフトパーティクルを参照してください。 |
| Particle Raycast Budget | 近似パーティクルシステムの衝突のために使用するレイキャストの最大数を (Medium または Low の品質で) 設定します。Particle System Collision モジュールを参照してください。 |
ソフトパーティクルは、シーンの他のジオメトリとの交点付近でフェードアウトします。見た目はかなり良くなりますが処理の負荷は高くなり、かつ深度テクスチャをサポートするプラットフォームでしか動作しません。さらに、ディファードシェーディングレンダリングパスを使用するか、スクリプトでカメラに深度テクスチャを描画させる必要があります。
| プロパティ | 説明 |
|---|---|
| Billboards Face Camera Position | これを有効にすると、レンダリング中に、カメラ面の代わりにビルボードがカメラに正面を向けるよう強制します。これにより、より良いリアルな画像が生成されますが、レンダリングするのがより高負荷になります。 |
| Use Legacy Details Distribution | このオプションを有効にすると、以前サポートされていたスキャタリングアルゴリズム (ディテールが重なることが多かった) を使用できます。Unity 2022.1 以前に作成された Terrain との後方互換性のために使用されます。 |
| Terrain Setting Overrides | オーバーライドに関するさまざまな設定です。有効にすると、すべてのアクティブな Terrain の値がオーバーライドされます (“Ignore Quality Settings” 設定が有効になっているものを除きます)。これらの設定の詳細については、Terrain の設定を参照してください。 |
| Pixel Error | Terrain の Pixel Error に設定される値。Terrain の設定を参照してください。 |
| Base Map Dist. | Terrain Basemap Distance に設定される値。Terrain の設定を参照してください。 |
| Detail Density Scale | Terrain Density Scale に設定される値。Terrain の設定を参照してください。 |
| Detail Distance | Terrain Detail Distance に設定される値。Terrain の設定を参照してください。 |
| Tree Distance | Terrain Tree Distance に設定される値。Terrain の設定を参照してください。 |
| Billboard Start | Terrain Billboard Start に設定される値。Terrain の設定を参照してください。 |
| Fade Length | Terrain Fade Length に設定される値。Terrain の設定を参照してください。 |
| Max Mesh Trees | Terrain Max Mesh Trees に設定される値。Terrain の設定を参照してください。 |
| プロパティ | 説明 | |
|---|---|---|
| Shadowmask Mode | Shadowmask の混合ライティングモードを使用するときのシャドウマスクの動作を選択します。Lighting ウィンドウ (メニューで Window > Rendering > Lighting を選択) を使用して、シーンに設定します。 | |
| Distance Shadowmask | Unity は Shadow Distance に達するまでリアルタイムのシャドウを使用し、それを超える場合はベイクしたシャドウを使用します。 | |
| シャドウマスク | シャドウを投影する静的ゲームオブジェクトは、常にベイクしたシャドウを投影します。 | |
| シャドウ | 使用するシャドウのタイプを選択します。選択できるオプションは、Hard and Soft Shadows、 Hard Shadows Only、 Disable Shadows です。 | |
| Shadow Resolution | シャドウをレンダリングする解像度を選択します。使用できるオプションは Low Resolution、Medium Resolution、High Resolution、Very High Resolution です。解像度が高いほど、処理オーバーヘッドが大きくなります。 | |
| Shadow Projection | シャドウをディレクショナルライトから投影するために使用する方法を選択します。 | |
| Close Fit | より高い解像度のシャドウをレンダリングしますが、カメラが動くとシャドウがわずかに揺れることがあります。 | |
| Stable Fit | 低解像度のシャドウをレンダリングしますが、カメラの動きでは揺れません。 | |
| Shadow Distance | シャドウが表示されるカメラからの最大距離を入力します。Unity は、この距離を超えたシャドウをレンダリングしません。 | |
| Shadow Near Plane Offset | シャドウパンケーキで歪む大きな三角形を考慮した前方クリップ面のオフセットを設定します。 | |
| Shadow Cascades | 使用するシャドウカスケードの数を選択します。選択できるオプションは、No Cascades、Two Cascades、Four Cascades です。カスケードの数を増やすと品質は向上しますが、処理のオーバーヘッドが増加します (詳細はシャドウカスケードを参照してください)。 | |
| Cascade splits | 各カスケード間の垂直線を左または右に動かして、カスケードのシャドウの分割を調整します。 Shadow Cascades の設定で選択した値に応じて、2 色または 4 色で表示されます。Shadow Cascades が _No Cascades_に設定されている場合、このコントロール全体が非表示になります。 |
|
| プロパティ | 説明 |
|---|---|
| Time Slice | バッファリングされたテクスチャとメッシュデータデータを GPU にアップロードするのにかかる CPU 時間を、ミリ秒/フレーム単位で設定します。LoadingTextureandMeshData を参照してください。 |
| バッファサイズ | GPU へのテクスチャとメッシュデータのストリーミングに使用する Async Upload Buffer のサイズをメガバイト単位で設定します。LoadingTextureandMeshData を参照してください。 |
| Persistent Buffer | アップロードするものがない場合でも、アップロードバッファを維持するかどうかを示します。 |
| プロパティ | 説明 |
|---|---|
| Lod Bias | Level of Detail (LOD) バイアスを設定します。 LOD レベルはオブジェクトの画面サイズに基づいて選択されます。サイズが 2 つの LOD レベルの間にある場合、その選択肢は 2 つの使用可能なモデルの詳細でない方、または、より詳細な方に偏っている場合があります。この値は 0 から無限大までの実数として設定します。0 から 1 の間に設定すると、細かいディティールは省略されます。1 より大きい値を設定すると、より細かいディティール表現されます。例えば LOD Bias を 2 に設定し、距離を 50% に変更すると、LOD は実際には 25% しか変わりません。 |
| Maximum LOD Level | ゲームが使用する最高の LOD を設定します。詳細は、最大 LOD レベルを参照してください。 |
Unity は、LOD が Maximum LOD Level より低いモデルは使用せず、ビルド対象から外します (これにより、ストレージとメモリ容量が節約されます)。Unity はターゲットプラットフォームに対して Quality 設定で紐づけられたすべての MaximumLOD 値から最も低い値を使用します。LOD レベルが含まれている場合、その LODGroup のモデルはビルドに含まれ、使用される Quality 設定にかかわらず、その LODGroup のランタイムに常にロードされます。例として、LOD レベル 0 が任意の Quality 設定で使用されると、すべての LOD レベルはビルドに含まれ、参照されるすべてのモデルはランタイムにロードされます。
| プロパティ | 説明 |
|---|---|
| Skin Weights | アニメーション中に頂点に影響を与えるボーンの数を選択します。選択できるオプションは、1 Bone、2 Bones、4 Bones、Unlimited です。 |
QualitySettings