Nanite(ナナイト)

【概要】

 :数億ポリゴンにおよぶ複雑なモデルをリアルタイムで扱うための仮想化ジオメトリシステムのこと。

 :非常に高いレベルのディテールを持つ3Dモデルを効率的にレンダリングする。

【詳細】

 ・仮想化ジオメトリ
 (Virtualized Geometry)
  :ジオメトリデータを仮想化し、必要な部分だけを動的にロードする。

 ・LOD(Level of Detail)
  の自動管理
  :Nanite では距離に応じて自動的に適切なディテールレベルを選択する。

  ・マイクロポリゴン
   レンダリング
   :非常に小さなポリゴンを使用したレンダリングのこと。詳細なサーフェスディテールを保持しながら効率的に高解像度を実現する。

【設定方法】

 1.プロジェクト設定
  :プロジェクト設定で、Nanite が有効になっていることを確認する。

 2.マテリアル設定
  :高度なシェーダーやエフェクトをサポートするように設定する。

  :特に、ディスプレイスメントや詳細なノーマルマップなどが効果的に機能する。

 3.Nanite対応アセットの
   インポート
  :高解像度の3Dモデル(例えば、ZBrushで作成した高ポリゴンモデルなど)を用意する。
  
  :用意したモデルをコンテンツブラウザ「Import」からインポートする。(インポート時、「Nanite Support」を有効にする。)
     
 4.Nanite対応メッシュの確認
  :Static Mesh エディタを開き、Nanite対応メッシュとして設定されていることを確認する。

 5.Naniteのパフォーマンス設定
  :「Screen Space Error」設定を調整して、レンダリング品質とパフォーマンスのバランスを最適化する。

  :この設定は、ディテールレベルとレンダリングコストのトレードオフを管理する。

 6.デバッグツールの使用
  :Nanite のパフォーマンスをモニターするためのデバッグツールを使用する。

  :デバックツールで Nanite メッシュのパフォーマンスを確認し、必要に応じて調整する。

DLSS(Deep Learning Super Sampling)

【概要】

 :NVIDIAが開発したディープラーニング技術を利用したスーパーサンプリング手法のこと。

 :ゲームのパフォーマンス向上と、高解像度のビジュアル提供を目的としている。

【詳細】

 ・ディープラーニング
  :ディープラーニングアルゴリズムにより、低解像度の画像から高解像度の画像を生成する。

  :ネイティブ解像度に近い視覚品質を維持しつつ、レンダリング負荷を軽減する。

 ・スーパーサンプリング
  :アンチエイリアシング効果を得る技術。

  :画像の解像度を一時的に上げ、ダウンサンプリングをするプロセスをディープラーニングで最適化している。

 ・パフォーマンス向上
  :低解像度でレンダリング後、ディープラーニングアルゴリズムで高解像度にアップスケールされる。

  :フレームレートが向上し、パフォーマンスが改善される。

【設定方法】

 1.プロジェクト設定
  :「Edit」>「Project Settings」>「Platforms」>「Windows」セクションで、「Default RHI」を「DirectX 12」に設定する。

 2.DLSSの有効化
  :「Rendering」セクションで「Anti-Aliasing Method」を「Temporal Anti-Aliasing」から「DLSS」に変更する。

 3.DLSS品質の設定
  :「DLSS Quality Mode」を選択する。
     
 4.結果の確認
  :DLSSを有効にした状態でゲームを実行し、パフォーマンスとビジュアル品質の向上を確認する。

  :必要に応じてDLSSの品質モードや他のレンダリング設定を調整する。

【例】

 1.高フレームレートの維持
  :ゲームを低解像度(例:1080p)でレンダリングし、DLSSを使用して高解像度(例:4K)にアップスケールする。

  :フレームレートを高く維持しながら、高品質なビジュアルを提供する。

 2.高品質なビジュアルの実現
  :DLSSのQualityモードを使用して、ネイティブ解像度に近い視覚品質を実現する。

HDRI(High Dynamic Range Imaging、ハイダイナミックレンジイメージング)

【概要】

 :光と色の情報を広範なダイナミックレンジでキャプチャし、表示する技術のこと。

 :HDRIを使用してリアルなライティングや反射効果を実現し、ビジュアル品質を向上させることができる。

【詳細】

 ・ハイダイナミックレンジ
 (High Dynamic Range)
  :通常の画像(SDR、スタンダードダイナミックレンジ)の輝度範囲より広い輝度範囲を持つ。

 ・イメージベースライティング
 (Image-Based Lighting, IBL)
  :HDRIを環境マップとして使用し、ライティングを行う技術のこと。

  :自然光やスタジオライティングのようなリアルな照明効果を実現できる。

 ・リフレクション(Reflection)
  :HDRIを使用してオブジェクトにリアルな反射を適用する。

  :例えば、金属やガラスなどの反射性の高い素材が自然に見える。

【使用方法】

 1.HDRIの準備
  :高品質なHDRI画像をオンラインで取得するか、自分で撮影する。

  :一般的な形式はHDR(.hdr)やEXR(.exr)。

 2.インポート
  :コンテンツブラウザ「Import」から、HDRI画像ファイルをインポートする。

 3.適用例
  :HDRIをSky Sphereに適用

   1)レベルに「Sky Sphere Blueprint」または「Sky Light」を追加する。

   2)「Sky Light」の「Details」パネルで「Source Type」を「SLS Specified Cubemap」に設定する。

   3)「Cubemap」フィールドにインポートしたHDRI画像を指定する。

 4.ライティングの調整
  :「Intensity」値を調整して、シーンの明るさを最適化する。

  ;必要に応じて「Directional Light」を追加し、太陽光や主要な光源をシミュレートする。

 5.ポストプロセス
   エフェクトの調整
  :レベルに「Post Process Volume」を追加し、ポストプロセスエフェクトを適用する。

  :「Auto Exposure」や「Bloom」などのエフェクトを調整して、見た目を最適化する。

Reflection Capture(リフレクションキャプチャ)

【概要】

 :リフレクション(反射)効果を実現するための機能のこと。

 :光の反射をキャプチャし、オブジェクトに適用するとリアルな反射効果が生まれる。

【詳細1】

 ・Reflection Capture Actor
  :特定のアクターを使用してレベル内の反射情報をキャプチャする。

 ・Reflection Environment
  :レベル内の環境をキャプチャし、リフレクションマップとして使用する。

 ・反射プローブ
 (Reflection Probe)
  :Reflection Captureアクターの別称で、特定の位置から環境をキャプチャする。

【詳細2】

 ・Sphere Reflection Capture
  :球状のキャプチャエリアを持ち、全方向からの反射をキャプチャする。

  :小さなエリアや局所的な反射に適している。

 ・Box Reflection Capture
  :直方体のキャプチャエリアを持ち、特定の領域内の反射をキャプチャする。

  :部屋や建物など、限定されたエリアの反射に適している。

【例】

 ・室内シーンの反射

  1)Box Reflection Capture
     の配置
   :室内の中心に Box Reflection Captureを配置し、部屋全体をカバーするように範囲を設定する。

  2)反射の確認
   :壁、床、家具などのオブジェクトに適用された反射を確認し、室内のリアルな環境反射を実現する。

 ・屋外シーンの反射

  1)Sphere Reflection Capture
    の配置
   :屋外シーンの重要なポイントにSphere Reflection Captureを配置し、広範囲の反射情報をキャプチャする。

  2)反射の確認
   :車、建物、樹木などのオブジェクトに適用された反射を確認し、屋外のリアルな環境反射を実現する。

Subsurface Scattering(SSS, サブサーフェス・スキャッタリング)

【概要】

 :半透明な物質を通過する光の挙動および技術の総称。

 :肌、蝋、ミルク、大理石などの素材をリアルに表現するために使用される。

 :光が表面下で散乱し、自然で柔らかな見た目を実現する。

【詳細】

 ■ スキャッタリングプロファイル
  (Scattering Profile)
  :SSSの挙動を制御するためのパラメータセットのこと。物質の密度や色の特性が含まれる。

  ・Scatter Radius
   :光の散乱の範囲を設定する。

  ・Subsurface Color
   :物質の内部色を設定する。
   :通常は肌の色。

  ・Falloff Color
   :光が散乱した後の減衰色を設定する。

  ・半透明性(Translucency)
   :物質が光をどれだけ透過するかを示す特性のこと。SSSは半透明性のある物質に対して適用される。

ビルドとベイクの違い

ビルド(Build)

 :ライティングに関する全体の構築プロセスのこと。

 :具体的には、ライティング、シャドウ、ブループリントなどの様々なデータを計算して、エンジンがリアルタイムに、効率的に実行できる形式に変換する作業を指す。

ベイク(Bake)

 :光の計算結果を2Dテクスチャ(ライトマップ)として保存するプロセスのこと。

 :ベイクされたライティングは、リアルタイムで計算する必要がなくなり、描画コストが削減できる。

Lightmass(ライトマス)

【概要】

 :グローバルイルミネーション(GI)および静的ライティングの計算に使用されるベイク(焼き付け)システムのこと。

 :Lightmassを使用することで、ライティングやシャドウを高品質にレンダリングできる。

 :また、リアルな間接光や環境光の効果をシミュレートできる。

【詳細1】

 ・ベイク(Bake)
  :ライティングの情報を静的に計算して、ライトマップ(Lightmap)として保存するプロセスのこと。
  
  :ベイクをすると、リアルタイムレンダリング時のパフォーマンスが向上する。

 ・ライトマップ(Lightmap)
  :オブジェクトに適用される2Dテクスチャのこと。ライティング情報を格納するデータ。

  :各ピクセルは、ライティングとシャドウの情報を保持している。

 ・ポータル(Portal)
  :窓やドアなど、外部の光が入る箇所に配置すると、Lightmass のGI 計算が最適化される。
  
  :例えば、室内のライティングがより正確に計算される。

【詳細2】

 ■ Lightmassのワールド設定
  :「World Settings」>「Lightmass」セクションで基本設定をする。

  ・Static Lighting Level Scale
   :光のサンプリングのスケールを設定する。
   :値を小さくすると詳細なライティングが計算されるが、ビルド時間が増加する。

  ・Indirect Lighting Quality
   :間接光の品質を設定する。
   :値を大きくすると品質が向上するが、ビルド時間が増加する。

  ・Indirect Lighting
    Smoothness
   :間接光の滑らかさを設定。
   :値が大きいほどライティングが滑らかになるが、詳細が失われる可能性がある。

  ・Environment Color
   :環境光の色を設定する。

  ・Lightmassのライト設定
   :使用するライトを「Mobility」から「Static」に設定すると、ライティング情報がベイクされる。

【例】

 1.室内の高品質ライティング

  1)ポータルの配置
   :窓などに「Lightmass Portal」を配置して、外部からの光の計算を最適化する。

  2)ライトマップ解像度の設定
   :室内の重要なオブジェクトに対して、高いライトマップ解像度を設定して、詳細なライティング情報を保存する。

  3)ビルドと調整
   :ライティングをビルドし、結果を確認する。
   :結果が不良な場合、「Indirect Lighting Quality」や「Lightmap Resolution」を調整して再ビルドする。

 2.外のリアルな
   グローバルイルミネーション

  1)環境光の設定
   :「World Settings」で環境光の色と強度を設定する。

  2)ライトの設定
   :主要な光源(例:太陽光)を「Static」に設定し、光の方向と強度を決定する。

  3)ビルドと確認
   :ライティングをビルドし、ライティング効果を確認する。
   :必要に応じて、ポータルの追加や設定の調整を行う。

Ray Tracing(レイトレーシング)

【概要】

 :リアルなライティング、反射、屈折、影の表現を可能にするレンダリング技術のこと。光の挙動のシミュレーション。

【詳細1】

 ・光線の追跡(Ray Tracing)
  :光源からの光線を追跡して、光線がオブジェクトに当たる場所を計算する。
  :光の反射、屈折、影、グローバルイルミネーションなどの効果がリアルに表現される。

 ・反射(Reflection)
  :光がオブジェクトの表面に当たって反射する現象。
  :レイトレーシングによって、リアルタイムで正確な反射を計算し、鏡やガラスなどの表面に適用する。

 ・屈折(Refraction)
  :光が異なる媒介物(例:空気からガラス)を通過する際に屈折する現象。
  :レイトレーシングによって、屈折率に基づいて光の曲がり方をシミュレートする。

 ・影(Shadow)
  :光がオブジェクトによって遮られることで生じる。
  :レイトレーシングによって、影の輪郭を正確に計算し、ソフトシャドウやハードシャドウをリアルに描画する。

 ・グローバルイルミネーション
 (Global Illumination)
  :レベル内の光が複数回反射して拡散する現象。
  :間接光や環境光の影響がリアルに表現される。

【詳細2】

 ・レイトレーシングの有効化
  :「Edit」>「Project Settings」>「Engine」>「Rendering」セクションで、「Ray Tracing」を有効にする。

  :「Support Compute Skincache」を有効にする。

  :「Platforms」>「Windows」セクションで、デフォルトのRHIを「DirectX 12」に設定する。

 ・反射の設定
  :「Post Process Volume」をレベルに追加し、反射の設定を有効にする。
  :「Ray Tracing Reflections」セクションで、反射の品質や最大バウンス数を設定する。

 ・影の設定
  :「Post Process Volume」>「Ray Tracing Shadows」セクションで設定する。

 ・グローバルイルミネーション
  の設定
  :「Post Process Volume」>「Ray Tracing Global Illumination」セクションを有効にする。

アピアランス(Appearance)

【概要】

 :オブジェクトやキャラクターの見た目や外観に関連する設定や機能のこと。

 :マテリアル、テクスチャ、シェーダー、ライティングなど。視覚的な要素を含む、様々な要素が含まれる。

【詳細】

 ・マテリアル(Material)
  :オブジェクトの表面に適用されるシェーダーやテクスチャの設定を含むもの。色、反射率、透明度、凹凸などの特性を制御する。

 ・テクスチャ(Texture)
  :マテリアルに適用される画像ファイルのこと。
  :ディフューズ(基本色)、ノーマル(凹凸)、スペキュラー(反射)などの種類がある。

 ・シェーダー(Shader)
  :マテリアルの見た目を計算するプログラムのこと。
  :ピクセルごとのライティング計算や、複雑な視覚効果の実現に使用される。

 ・ライティング(Lighting)
  :光の強度、色、影の有無などを含んだ設定のこと。
  :ポイントライト、スポットライト、ディレクショナルライトなどがある。

 ・ポストプロセスエフェクト
 (Post-Process Effects)
  :レベル全体に適用される視覚効果のこと。
  :ブルーム、レンズフレア、カラーグレーディング、被写界深度(DOF)などが含まれる。

World Partition(ワールドパーティション)

【概要】

 :新しいレベル管理およびストリーミングシステムのこと。

 :大規模なオープンワールドを効率的に作成および管理するための機能。

 :レベルストリーミングに代わるシステムで、シームレスなワールドストリーミングを提供する。

【詳細1】

 ・セル(Cell)
  :ワールド全体をグリッド状の小さなパーティションに分割したもの。
  :セルは個別にロードおよびアンロードされ、パフォーマンスを最適化する。

 ・ストリーミング
  :プレイヤーの位置に基づいて必要なセルを自動的にロード|アンロードする機能。

  :一度に大規模なロードが必要なくなり、メモリ使用量とロード時間が削減する。

 ・データ管理
  :アクタやコンテンツは、セルごとに保存される。

  :World Partition によって、チームでの共同作業やバージョン管理が容易になる。

【詳細2】

 ・ワールドパーティション
  の有効化
  :レベルの「World Settings」で「Enable World Partition」にチェックを入れる

 ・アクタの配置と管理
  :通常のレベル編集と同様に、ワールド内にアクタを配置する。
  :アクタは自動的に適切なセルに割り当てられる。

 ・セルの管理
  :「World Partition」を使用して、セルの状態を確認できる。
  :また、手動でセルをロードまたはアンロードできる。

  :通常、プレイヤーの視点に基づいてセルが自動的に管理されるが、開発中は手動管理も可能。

 ・ストリーミングの設定
  :各セルのストリーミング距離を設定すると、プレイヤーが特定の距離に近づいたときにセルがロードされる。

  :他にも、例えば、重要なイベントが発生したときに特定のセルを強制的にロードするなどのルールが設定できる。