Version: Unity 6.0 (6000.0)
言語 : 日本語
LOD を設定したメッシュをインポートする
低 LOD の 2D 画像

LOD Group コンポーネントのリファレンス

Switch to Scripting

LOD Group コンポーネントは、ゲームオブジェクトの LOD を管理します。

LOD Group Inspector
LOD Group Inspector

A LOD レベル間を遷移するためのコントロール。

B LOD レベルを切り替え、LOD レンダリングをプレビューするための LOD グループ選択バー

C Quality 設定の LOD Bias に関する情報。このメッセージは、LOD Bias プロパティが 1 以外に設定されている場合に表示されます。

D 選択した LOD レベルの Fade Transition Width 設定。このプロパティは、Animate Cross-fading プロパティを無効にする場合、つまり時間の代わりに幅で遷移ゾーンを設定する場合にのみ表示されます。

E 選択した LOD レベルに設定されているメッシュレンダラー

さらに、コンポーネントの下部に 2 つのボタンがあります。

  • 新しい LOD レベルを加えた後に、すべての LOD メッシュゲームオブジェクトのバウンディングボリュームを再計算するには、Recalculate Bounds をクリックします。
  • LOD レベルの境界の変更に基づいて、すべての LOD メッシュレンダラーの Scale in Lightmap プロパティを更新するには、Recalculate Lightmap Scale をクリックします。

LOD グループ選択バー

LOD グループの選択バーは、異なる LOD レベルをカラーボックスで表します。

各 LOD レベルのボックスに表示されるパーセンテージは、そのレベルがアクティブになるしきい値を表します。画面全体の高さに対するゲームオブジェクトのスクリーンスペースの高さの比率に基づいています。例えば、LOD 1 のしきい値が 50% に設定されている場合、ゲームオブジェクトの高さが表示の半分になるのに十分な距離をカメラが引くと、LOD 1 はアクティブになります。

LOD グループ選択バー
LOD グループ選択バー

A LOD プレビューの再生ヘッド。カメラのアイコンを左右に動かして、LOD レベルとその遷移をテストできます。再生ヘッドの下部に、現在のパーセンテージが表示されます。

B レベルを選択するには、レベルボックスをクリックします。選択した各 LOD レベルに対して、使用するレンダラーを選択したり、遷移ゾーンをカスタマイズしたりできます。

C 選択バーから LOD レベルを追加、削除するには、LOD レベルボックスを右クリックし、コンテキストメニューで Insert BeforeDelete を選択します。

D レベル調整のコントロール。LOD レベルのパーセンテージ値を変更するには、LOD レベルボックスの境界の左端をドラッグします。

ノート: Lod Bias プロパティが 1 に設定されていない場合、カメラ位置は、各 LOD レベルが実際に遷移する位置と一致しない場合があります。この場合、選択バーの下に警告メッセージが表示されます。

LOD Bias 警告
LOD Bias 警告

LOD 遷移のプレビュー

LOD グループ選択バーの上のカメラアイコンを動かすと、LOD レベル間の遷移のプレビューが表示されます。カメラアイコンは再生ヘッドのように機能します。LOD グループ選択バーに沿って左右に動かして正確な位置を制御し、プレビューすることができます。プレビューでは、それぞれの LOD レベルでカメラが描画するものが表示されます。

LOD グループ選択バーで遷移のプレビューを制御する
LOD グループ選択バーで遷移のプレビューを制御する

LOD プレビュー再生ヘッドは、LOD グループ選択バー (左端の 100% から右端の 0% まで) に沿って正確な位置をパーセンテージとして表示します。パーセンテージは、スクリーンの高さに対するゲームオブジェクトのスクリーンスペースでの高さの比率を表します。

レベルを移動していくと、シーンビューにツリーアセットのバウンディングボックスが表示され、オーバーレイはどの LOD がアクティブであるかを示します。

アクティブな LOD レベルを表示するオーバーレイ
アクティブな LOD レベルを表示するオーバーレイ

注意Unity は、1 つのゲームオブジェクトが選択されている場合にのみ LOD ラベルを表示します。複数のゲームオブジェクトが選択されている場合は表示されません。

LOD メッシュのレンダラー

LOD グループ選択バーで LOD レベルボックスを選択すると、Renderers パネルが表示されます。

LOD 3 のビルボードレンダラーを持つ Renderers パネル
LOD 3 のビルボードレンダラーを持つ Renderers パネル

‘Renderers’ は実際にはその LOD レベルのメッシュをもつゲームオブジェクトです。通常は、LODGroup コンポーネントを持つゲームオブジェクトの子です。

現在の LOD レベルのレンダラーメッシュを設定するには、Add ボックスをクリックし、オブジェクトピッカーからその LOD レベルのゲームオブジェクトを選択します。

レンダラーには任意のゲームオブジェクトを選択できますが、子オブジェクトではないゲームオブジェクトを選択した場合は、Unity はそのオブジェクトを LODGroup ゲームオブジェクトの親にするよう指示します。

LOD レベル間の遷移

LOD レベルを滑らかに遷移させることで、プレイヤーのゲーム体験を向上させることができます。カメラが近づいたり遠ざかったりするにつれて、プレイヤーが現在の LOD レベルから次のレベルへ明らかに切り替わること (これはポッピングとも呼ばれます) がないようにします。

遷移は遷移ゾーン内で発生し、Unity は現在の LOD レベルと次の LOD レベルの両方を別々にレンダリングし、それらをクロスフェードします。

クロスフェードは 2 つのレベルを同時にレンダリングする技法で、現在の LOD レベルでは 1 から 0、次の LOD レベルでは 0 から 1 の重み付けで行われます。

現在の LOD レベルと次の LOD レベルのクロスフェード
現在の LOD レベルと次の LOD レベルのクロスフェード

Unity は通常、スクリーンスペースのディザリングや透明度のいずれかを使用してクロスフェードを実装します。最後の LOD レベルでは、クロスフェードはありません。現在のレベルがフェードアウトするだけです。

LOD レベルで滑らかな遷移を設定するには、以下の手順を行います。

  1. Fade Mode ドロップダウンを選択し、Cross Fade を選択します。

    Fade Mode ドロップダウンメニュー
    Fade Mode ドロップダウンメニュー

    注意ツリーアセットが SpeedTree で作成されている場合は、代わりに Speed Tree モードを選択してください。詳細は、SpeedTree モデルの使用を参照してください。

  2. デフォルトでは、Animate Cross-fading オプションが有効になっています。これは、Unity が時間ベースの遷移を実行することを意味します。カメラの位置に基づいて独自の遷移ゾーンを定義したい場合は、Animate Cross-fading オプションを無効にし、Fade Transition Width プロパティを設定します。

    詳細は、遷移ゾーンのカスタマイズの値を参照してください。

遷移ゾーンのカスタマイズ

2 つの LOD レベル間の遷移は、モデルの高さの比率が次の LOD のしきい値を超える瞬間から始まります。例えば、LOD 1 のしきい値が 60% に設定されている場合、LOD 0 と LOD 1 のレベル間の遷移は、モデルの高さが 60% になるとすぐに開始されます。遷移は短時間持続します。

クロスフェードのアニメーション化 (時間による)
クロスフェードのアニメーション化 (時間による)

この動作は時間によってアニメーション化されるため、Animate Cross-fading プロパティを有効にした場合はプロパティを設定する必要はありません。クロスフェードの正確な持続時間はすべての LOD レベルで同じです。

または、各 LOD レベル内の遷移ゾーンをその位置によって手動で定義することもできます。各ゾーンは、次の LOD レベルのしきい値の前に開始して終了します。遷移ゾーンとして使用する各 LOD レベルの割合を定義します。つまり、次のレベルのしきい値のどのくらい前に遷移が始まるかを設定します。

遷移フェードの幅 (位置による)
遷移フェードの幅 (位置による)

Fade Transition Width プロパティを使用して、各 LOD レベルで遷移ゾーンを定義します。

  1. Animate Cross-fading オプションを無効にします。

  2. 設定したい特定の LOD レベルボックスをクリックします。

    Fade Transition Width プロパティは LOD グループ選択バーの下に表示されます。

    Fade Transition Width プロパティが表示される
    Fade Transition Width プロパティが表示される
  3. Fade Transition Width プロパティを設定して、クロスフェード遷移ゾーンの幅を現在の LOD レベルの全体の長さに対する割合 (0.0 から 1.0 の間) に設定します。例えば、ブレンディングの開始を遅らせる、より速い遷移を作成するには小さい値を指定します。

SpeedTree モデルの使用

SpeedTree ジオメトリは各頂点の次の LOD 位置を格納します。その後、すべての頂点は現在の LOD 位置と次の LOD 位置の間の補間方法を確認します。Unity が SpeedTree で作成したモデルをインポートすると、自動的に Speed Tree モードに設定されます。

SpeedTree モデルの Speed Tree Fade Mode
SpeedTree モデルの Speed Tree Fade Mode

Unity は、現在の LOD ジオメトリをレンダリングし、0 から 1 の値を各頂点に渡して、各頂点が次の LOD 位置に徐々に移動するように指示するだけです。遷移の終了時に、現在の LOD と次の LOD のジオメトリは完全に一致します。

2 つの LOD レベルのブレンドは 0 から始まり 1 で終了します。このゾーンに沿った任意のポイントはブレンド係数で、現在の LOD レベルと次の LOD レベルの間の重み付けを表します。

SpeedTree モデルのブレンド
SpeedTree モデルのブレンド

Speed Tree モードではブレンド係数を使用して、現在の__メッシュ LOD レベル__と次のメッシュ LOD レベル間で頂点位置を補間し、その位置にジオメトリをレンダリングします。

注意Speed Tree モードは 2 つのメッシュ LOD レベル間のブレンドにのみ使用されます。つまり、現在の LOD レベルと次の LOD レベルの両方にメッシュレンダラーがある場合です。ビルボードの LOD レベルに遷移するとき、または完全にフェードアウトするとき、Unity はクロスフェードスタイルのブレンドを実行します。

シェーダーコードのブレンド係数

Unity には、LOD ジオメトリをブレンドするためのデフォルトのビルトインの技術がありません。ゲームの種類とアセット作成パイプラインに応じて、独自のものを実装する必要があります。

Unity はゲームオブジェクトの画面サイズからブレンド係数を計算し、unity_LODFade.x uniform 変数でシェーダーに渡します。選択した Fade Mode (フェードモード) に応じて、LOD フェードでレンダリングされたゲームオブジェクトに LOD_FADE_PERCENTAGE または LOD_FADE_CROSSFADE のいずれかのキーワードを使用してください。

時間ベースの (アニメーションの) 遷移の場合、LODGroup.crossFadeAnimationDuration メンバーを使用して、すべての LOD レベルで遷移の正確な継続時間をグローバルに設定できます。

LOD の命名規則については、LOD 設定のメッシュのインポートを参照してください。

LODGroup

LOD を設定したメッシュをインポートする
低 LOD の 2D 画像