![Hero background image](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fb4e4124275c38259769d1e75368d702842a1df13-3840x2160.jpg&w=3840&q=100)
2020.1 の新機能
Discover some of the major updates for graphics in Unity 2020.1. For full details, check out the release notes.
ゲームの制作中、メインカメラのコンテキストの外側にレンダリングされる要素を追加する必要がある状況も数多く存在します。たとえば、一時停止メニューでキャラクターのあるバージョンを表示する場合や、メカが登場するゲームでコックピット用の特別なレンダリングセットアップが必要になる場合があります。
Camera Stacking を使用して、複数のカメラの出力をレイヤー化し、1 つの連結された出力を作成できるようになりました。これにより、2D ユーザーインターフェース(UI)内に 3D モデル、つまり乗物のコックピットなどのエフェクトを制作できます。現段階での制約については、ドキュメントを参照してください。
ライティング設定アセットを使用すると、複数のシーンで使用されている設定を同時に変更できます。これにより、複数のプロパティに対する変更をプロジェクト全体にわたってすばやく反映できます。これは、複数のシーンにわたってグローバルに変更することが求められる可能性がある、ライティングアーティストにとって理想的です。たとえば、プレビュー版のベイクから製品版のベイクに移動するときなどに、ライティング設定間のスワップをより短時間で行えるようになりました。
重要な注意事項:重要な注意点として、ライティング設定は Unity シーンファイルの一部ではなくなり、プリコンピュートされたグローバルイルミネーションに関連するすべての設定が格納される、そのプロジェクト内の独立したファイルの中に配置されるようになりました。
注意:注:上のビデオは、ICRC のために Nedd によって制作された『Enter the Room』プロジェクトからの抜粋です。
![オーバーラップのないパッキング](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fb0db29af7cdd6f3eba78fdb3c02b6d66468b204b-1267x634.jpg&w=3840&q=75)
ライトマッピング用のモデルのセットアップがはるかに簡単になりました。
オブジェクトにライトマップを設定するには、まずオブジェクトを「アンラップ」して、ジオメトリを 2D テクスチャー座標(UV)に平面化する必要があります。つまり、すべての面をライトマップの一意の部分にマップする必要があります。オーバーラップする領域は、レンダリングされる結果ににじみやその他不要なビジュアルアーティファクトをもたらすおそれがあります。
隣接する UV チャート間がにじまないようにするには、ジオメトリの領域にライティング値を拡張するのに十分なパディングが必要です。これは、テクスチャーフィルタリングのエフェクトが、UV 境界で期待されるライティング値に対応しない可能性がある、隣接するチャートからの値を平均化しないようにするのに役立ちます。
Unity の自動パッキングにより、この拡張を許容するライトマップ UV 間の最小のパックマージンが作成されます。これはインポート時に発生します。ただし、シーンに低テクセル密度を使用しているときや、オブジェクトをスケーリングするときでも、ライトマップ出力のパディングが不十分な場合があります。
インポート時に必要とされるパックマージンのサイズを見つけるプロセスを簡略化するために、Unity ではモデルインポーターにマージンの「計算」メソッドを追加しました。これにより、モデルが使用される最小限のライトマップ解像度や最小限のスケールを指定できます。この入力から、Unity のアンラッパーでライトマップのオーバーラップを発生させないために必要なパックマージンが計算されます。
![GPU および CPU ライトマッパー:改善されたサンプリング](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fa8139821436e3d8f6dd9c780ebbdc001370becad-1620x920.jpg&w=3840&q=75)
パストレーシングの相関とは、ライトマップされたシーン全体のランダムなサンプルが「ばらけている」もしくはノイズがあるように見える現象です。Unity では 2020.1 にて CPU および GPU ライトマッパー用のより優れた相関除去メソッドを実装しました。
これらの相関除去の改善はデフォルトで有効になっており、ユーザー入力は一切不要です。その結果、より短時間でライトマップがノイズのない結果に収束し、表示されるアーティファクトはより少なくなります。
また、ライトマッパーのサンプル数の上限を 10 万から 10 億に増やしました。これは、複雑なライティング条件によりノイズの多いライトマップ出力につながる可能性がある、建築物のビジュアライゼーションなどのプロジェクトで便利です。
![ライトマッピングの最適化](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F71e794cf053af98eadd04a51739d7eda9a143180-1620x920.png&w=3840&q=75)
ライトマッピングの際には、シーン内に表面を跳ね返るレイを発射することで、グローバルイルミネーションを計算するために使用されるライトパスを作成します。レイが跳ね返る回数が多いほど、パスは長くなり、サンプルの生成により多くの時間がかかります。これにより、シーンにライトマップを適用するのにかかる時間が跳ね上がります。
各レイの計算にかかる時間に上限を設けるには、ライトマッパーに各ライトレイのパスを終了する条件を設定する必要があります。これは、各レイで許可される跳ね返りの回数にハードリミットを設けることで行えます。このプロセスをさらに最適化するために、パスをランダムに選択して早く終わらせる、「ロシアンルーレット」として知られる手法を使用できます。
この手法では、あるパスがシーン内のグローバルイルミネーションにとってどれだけ意味があるかを考慮に入れます。あるレイが暗い表面に跳ね返るたびに、そのパスが早期に終了する確率が高まります。この方法でレイをカリングすることで、一般的にライティングの品質にほとんど影響することなく、全体としてベイクにかかる時間が短縮されます。
上の画像は、ICRC のために Nedd によって制作された『Enter the Room』プロジェクトからの抜粋です。
![ライトマッピングされたクッキーへの対応](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F39d2538cefa15cc7b2bcdb4983d5014a42def47e-1620x910.jpg&w=3840&q=75)
クッキーは、輝度の非均一分布によりライティングをモデリングするためにライトに適用できる、マップの一種です。これは、ライトの現実感を高め、その他複数のドラマチックなビジュアルエフェクトを作成するために使用できます。
以前はクッキーはリアルタイムライトでの使用のみに限定されていましたが、2020.1 より、Unity では CPU および GPU ライトマッパーのクッキーに対応するようになりました。これにより、ベイクされたライトでも混合モードのライトでも、直接光と間接光の両方を減衰させるために、クッキーの影響を考慮に入れることができます。
ライトマッピングされたクッキーへの対応は、将来のリリースにおいて建築業のお客様向けに IES ライトに対応する基盤として機能します。
![コントリビューター/レシーバーのシーンビューモード](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F123281a7abc23867ac3fcf88e60148d2776a980d-1620x910.jpg&w=3840&q=75)
コントリビューター/レシーバーのシーンビューにより、そのシーン内のグローバルイルミネーションに影響を及ぼしているオブジェクトを確認できるようになりました。また、GI がライトマップから受け取ったものか、ライトプローブから受け取ったものかも簡単に確認できます。
このシーンビューモードを使用することで、メッシュレンダラーが GI に貢献しているかどうか、それらが GI を受け取っているか、およびその方法によって、異なる色で描画されます。このシーンビューモードは、Unity の組み込みのレンダラーに加えて、あらゆるスクリプタブルレンダーパイプラインで機能します。
このモードはライトプローブを使用している場合に特に便利で、プローブの使用状況を正確に把握できます。色はアクセシビリティに対応するように「Preference」パネルでカスタマイズできます。
レイトレーシング(プレビュー)が、Skinned Mesh Renderer コンポーネントを介してアニメーションに対応するようになりました。Alembic Vertex Cache と動的コンテンツを備えたメッシュ(下の例を参照)が、「Renderers」メニューの「Dynamic Geometry Ray Tracing Mode」オプションを介して対応するようになりました。これらの機能を試すことに興味をお持ちの方は、HD レンダーパイプライン(HDRP)のレイトレーシングに関するフォーラムにご参加ください。また、特に HDRP のレイトレーシング機能についてフォーカスしたこちらの記事を参考にしてみてください。
![ストリーミング仮想テクスチャリング(プレビュー)](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F847eb219d78d43c51f8a00c0445718ce1d5f8f5b-1620x910.jpg&w=3840&q=75)
ストリーミング仮想テクスチャリングは、シーンに高解像度のテクスチャーが多数あるときに、GPU メモリ使用量とテクスチャーのロード時間を削減する機能です。テクスチャーをタイルに分割し、それらのタイルを必要なときに GPU メモリに徐々にアップロードすることで機能します。HD レンダーパイプライン(9.x プレビュー版以降)と、シェーダーグラフとの併用に対応するようになりました。
![今すぐ Unity 2020.1 をダウンロード](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2Fadfa7c5d4c767481d4da9f3ae8110d9d30ef3121-1024x576.jpg&w=3840&q=75)