WEBVTT 00:00:02.635 --> 00:00:06.218 今 Unity のライティング機能はかつてないほど充実しています 00:00:07.635 --> 00:00:11.786 ライティングパイプラインには従来のベイクライトマッピング手法の 00:00:11.786 --> 00:00:15.109 他にリアルタイムグローバルイルミネーションも加わりました 00:00:16.621 --> 00:00:19.710 これらを物理ベースレンダリングと Standard シェーダーと 00:00:19.710 --> 00:00:21.297 組み合わせることで 00:00:21.297 --> 00:00:25.421 複雑なシーンのライティングをより強力かつ汎用性の高い形で実現できるようになったのです 00:00:28.492 --> 00:00:32.688 Unity では物理ベースレンダリング略してPBR を使うことで 00:00:32.688 --> 00:00:35.699 各種ライティング状況におけるマテリアルの見た目に 00:00:35.699 --> 00:00:39.956 一貫性と説得力を手軽に持たせることができます 00:00:39.956 --> 00:00:44.764 これを実現するため Unity ではライトの実際の振る舞いをモデルし 00:00:44.764 --> 00:00:46.764 マテリアルに対するライトの干渉が物理法則に 00:00:46.764 --> 00:00:48.764 沿ったものになるようにしています 00:00:49.612 --> 00:00:53.704 これらマテリアルは通常 Standard シェーダーを用いて作成されます 00:00:53.704 --> 00:00:55.704 Standard シェーダーは物理ベースレンダリングを 00:00:55.704 --> 00:00:58.749 簡単で扱いやすくします 00:01:01.322 --> 00:01:03.322 Unity のパイプラインでもトップクラスの強力を 00:01:03.322 --> 00:01:07.195 持つのがリアルタイムグローバルイルミネーション 00:01:07.195 --> 00:01:08.948 略して GI です 00:01:08.948 --> 00:01:12.404 GI ではシーン内の全ライトが 00:01:12.404 --> 00:01:14.923 範囲内のオブジェクトに直接光と 00:01:14.923 --> 00:01:17.928 間接光を投射できます 00:01:17.928 --> 00:01:19.928 直接光とはシーン内のオブジェクトに 00:01:19.928 --> 00:01:23.564 直接光を当てるライトから来るものですが 00:01:23.564 --> 00:01:25.564 他方の間接光は 00:01:25.564 --> 00:01:28.780 シーン内のサーフェイスに反射・跳ね返ってきた 00:01:28.780 --> 00:01:30.780 光を示します 00:01:31.364 --> 00:01:33.364 跳ね返った間接光は 00:01:33.364 --> 00:01:35.364 近くのオブジェクトを照らし 00:01:35.364 --> 00:01:38.694 現実世界の光の振る舞いを模倣します 00:01:38.694 --> 00:01:40.694 この間接光は跳ね返る 00:01:40.694 --> 00:01:43.551 サーフェイスの色に影響され 00:01:43.551 --> 00:01:47.375 投射先にその色の影響を伝えます 00:01:47.375 --> 00:01:49.375 直接光と間接光は 00:01:49.375 --> 00:01:52.971 混ぜ合わさることでよりリアルな外観を作り出します 00:01:56.368 --> 00:01:58.368 Unity の新シーンにはデフォルトのメインカメラの他 00:01:58.368 --> 00:02:00.368 デフォルトのスカイボックスが 00:02:00.368 --> 00:02:02.368 含まれるようになりました 00:02:02.368 --> 00:02:04.368 このスカイボックスにはデフォルトのディレクショナルライトが 00:02:04.368 --> 00:02:06.368 付いてきます 00:02:09.609 --> 00:02:11.609 各シーンにはまた環境光(Ambient Light)の 00:02:11.609 --> 00:02:13.609 デフォルト値が設定されています 00:02:14.683 --> 00:02:17.974 環境光はシーン内の全サーフェイスを照らします 00:02:19.435 --> 00:02:22.015 この環境光の設定は Lighting パネル > 00:02:22.015 --> 00:02:24.523 Environment Lighting タブで指定できます 00:02:27.783 --> 00:02:29.783 環境光は 00:02:29.783 --> 00:02:31.783 Skybox の他にも 00:02:32.650 --> 00:02:35.917 ユーザー指定の 3 色グラデーションや 00:02:44.208 --> 00:02:46.208 単色でも作成できます 00:02:54.593 --> 00:02:56.593 基本的にシーン内の全オブジェクトは 00:02:56.593 --> 00:02:58.499 環境光を受けますが 00:02:58.499 --> 00:03:01.881 Ambient Intensity 値を 0 にしたり 00:03:02.898 --> 00:03:06.265 環境光のカラー値を黒にしたりすると受けなくなります 00:03:08.093 --> 00:03:10.093 現実世界のマテリアルが 00:03:10.093 --> 00:03:12.093 反射率を持たないということは 00:03:12.093 --> 00:03:15.638 基本的にあり得ません 00:03:15.638 --> 00:03:18.676 デフォルトではシーン内の全オブジェクトが 00:03:18.676 --> 00:03:21.433 反射情報を受け取ります 00:03:22.055 --> 00:03:25.630 なのでこの例ではスフィア・キューブ・プレーンのいずれも 00:03:25.630 --> 00:03:28.970 ライトを受けず また環境光も無いにも関わらず 00:03:28.970 --> 00:03:30.970 ライティング情報は反射というかたちで 00:03:30.970 --> 00:03:33.631 受け取られているわけです 00:03:33.631 --> 00:03:37.015 デフォルトの Reflection Source(反射ソース)は Skybox です 00:03:37.015 --> 00:03:40.034 これはカスタムキューブマップに変更も可能です 00:03:40.034 --> 00:03:42.352 デフォルトの反射を無くすには 00:03:42.352 --> 00:03:44.352 カスタムキューブマップを無しにするか 00:03:47.084 --> 00:03:49.084 スカイボックスを削除します 00:03:52.024 --> 00:03:54.024 なおデフォルトのスカイボックスはプロシージャルに 00:03:54.024 --> 00:03:56.494 生成されますが プロシージャルな 00:03:56.494 --> 00:03:58.494 スカイボックスはアセットとして 00:03:58.494 --> 00:04:00.494 新規作成・保存が可能です 00:04:13.646 --> 00:04:15.646 Unity 上でシーンにライティングを加える場合には 00:04:15.646 --> 00:04:17.646 Realtime ライティングと 00:04:18.475 --> 00:04:19.881 Baked ライティング 00:04:20.475 --> 00:04:22.053 およびその両方(Mixed)を使うことができます 00:04:22.607 --> 00:04:26.129 Realtime ライティングは実行時に容易に変更が可能ですが 00:04:26.129 --> 00:04:28.129 パフォーマンスとの兼ね合いが重要になります 00:04:29.429 --> 00:04:31.562 一方の Baked はより詳細なライティング情報を 00:04:31.562 --> 00:04:34.004 事前に演算してライトマップテクスチャとして 00:04:34.004 --> 00:04:36.961 ディスクに保存しておくことが可能です 00:04:37.470 --> 00:04:39.470 このライトマップ情報はその後実行時に 00:04:39.470 --> 00:04:41.470 テクスチャから読み込まれるので 00:04:41.470 --> 00:04:43.470 プロジェクトの実行時には 00:04:43.470 --> 00:04:45.470 ライティングの演算が不要になります 00:04:46.450 --> 00:04:48.450 パフォーマンス上は良いことずくめですが 00:04:48.450 --> 00:04:51.846 その代償としてシーンの動的な変更には対応できません 00:04:51.846 --> 00:04:54.722 Baked ライトマップは実行時に更新されないからです 00:04:55.363 --> 00:04:58.975 ライトを Realtime / baked / Mixed の 00:04:58.975 --> 00:05:00.975 いずれにするかはライト単位で指定できます 00:05:02.256 --> 00:05:04.256 Baked ライティングだけを使うケースとしては 00:05:04.256 --> 00:05:07.020 ハードウェア性能の低いモバイルデバイスなど 00:05:07.020 --> 00:05:10.844 特定のプラットフォーム向けに作る場合が考えられます 00:05:13.674 --> 00:05:16.011 ライトマッピングシステムは継続的にも 00:05:16.011 --> 00:05:18.011 オンデマンドにも機能させられます 00:05:19.575 --> 00:05:22.081 Continuous Baking をオンにすると 00:05:22.081 --> 00:05:25.019 ライティングの変更が編集中にバックグラウンドでベイクされます 00:05:25.754 --> 00:05:27.754 これはインスペクターでプロパティを変更したり 00:05:27.754 --> 00:05:29.242 シーン内でオブジェクトを 00:05:29.242 --> 00:05:31.926 変更したりした場合に反映されます 00:05:43.058 --> 00:05:45.343 Continuous Baking をオフにした場合には 00:05:46.189 --> 00:05:48.686 変更内容のプレビューはオンデマンドになり 00:05:50.137 --> 00:05:53.426 Lighting パネルの Build ボタンを選択した時に反映されます 00:06:00.360 --> 00:06:02.360 さてこのシーンには天井から差し込む 00:06:02.360 --> 00:06:05.004 ディレクショナルライトがあります 00:06:05.607 --> 00:06:09.488 このライトはシーン全体の証明に影響を与えています 00:06:09.488 --> 00:06:11.488 まず直接あたったサーフェイスからの 00:06:11.488 --> 00:06:13.127 跳ね返りによる影響があり 00:06:13.127 --> 00:06:16.096 そしてその跳ね返った光が間接的に近くのサーフェスに与える影響があるためです 00:06:17.445 --> 00:06:19.445 この間接的な光は 00:06:19.445 --> 00:06:21.445 光の強度(Intensity)が落ちて 00:06:21.445 --> 00:06:23.445 跳ね返らなくなるまで繰り返し跳ね返って 00:06:23.445 --> 00:06:24.993 近くのサーフェイスを間接的に照らします 00:06:25.860 --> 00:06:27.594 ここで光の強度(Intensity)を落とせば 00:06:28.048 --> 00:06:31.132 シーン内の照明もそれに応じて暗くなります 00:06:34.693 --> 00:06:36.693 同様にディレクショナルライトを 00:06:36.693 --> 00:06:38.693 シーン内の別の箇所を 00:06:38.693 --> 00:06:40.562 照らすように移動すると 00:06:40.562 --> 00:06:43.349 シーン内の照明結果も直接光・間接光共に 00:06:43.349 --> 00:06:45.971 それに応じて変化します 00:06:49.306 --> 00:06:51.948 Standard シェーダーで作られたマテリアルは実にさまざまな 00:06:51.948 --> 00:06:55.297 物理的なサーフェイスを模倣できますが 00:06:55.297 --> 00:06:57.297 マテリアルはそれぞれ反射率が異なるため 00:06:57.297 --> 00:06:59.030 使用するマテリアルに応じて 00:06:59.030 --> 00:07:01.030 シーン内でのライティング結果に影響が生じます 00:07:01.690 --> 00:07:05.475 これを調整するため Bounce Intensity(バウンス強度)設定は 00:07:05.475 --> 00:07:07.832 ライト単位で調整する他 00:07:07.832 --> 00:07:09.832 Lighting パネルからグローバルにも 00:07:09.832 --> 00:07:11.832 調整できるようになっています 00:07:12.981 --> 00:07:15.338 ここでは照らされたサーフェイスの跳ね返りを 00:07:15.338 --> 00:07:18.705 人工的に調整することができるわけです 00:07:20.307 --> 00:07:22.307 この他にもシーンの Indirect Intensity(間接光強度)を 00:07:22.307 --> 00:07:24.307 調整することなども可能です 00:07:26.982 --> 00:07:28.982 また照明においてはライトの他にも 00:07:28.982 --> 00:07:32.328 エミッシブ(Emissive / 自己発光)サーフェイスを使うことができます 00:07:33.421 --> 00:07:35.421 このシーンにはさまざまなライトとライトタイプが使われていますが 00:07:35.421 --> 00:07:39.297 そのうちのひとつがこのエミッシブサーフェイスです 00:07:39.297 --> 00:07:42.550 エミッシブサーフェイスは光源のひとつですが 00:07:42.550 --> 00:07:46.836 跳ね返った間接光のように振る舞います 00:07:46.836 --> 00:07:48.836 このシーン内で最も大きなエミッシブサーフェイスは 00:07:48.836 --> 00:07:50.836 メイン通路のジャンクション部分ですが 00:07:51.194 --> 00:07:54.044 この他にもパネルが多数配置されています 00:07:56.644 --> 00:07:58.644 これらエミッシブサーフェイスは 00:07:58.644 --> 00:08:00.872 Standard シェーダーの Emission プロパティで 00:08:01.814 --> 00:08:04.255 スケール調節して使用されています 00:08:04.255 --> 00:08:07.382 ここで Emission プロパティの横に表示される float 値と 00:08:07.382 --> 00:08:09.229 さらに隣になる色を指定すると 00:08:09.229 --> 00:08:11.229 シーンの雰囲気は大きく変わります 00:08:13.697 --> 00:08:16.996 これらのライトもリアルタイムライトマッピングの一部であるため 00:08:16.996 --> 00:08:18.996 コードやアニメーションを利用して 00:08:18.996 --> 00:08:20.996 プロジェクトの実行中に 00:08:20.996 --> 00:08:22.996 シーンの雰囲気を変えるのに 00:08:22.996 --> 00:08:24.996 使うことができます 00:08:28.200 --> 00:08:30.200 Unity におけるライティングの構成要素として 00:08:30.200 --> 00:08:32.200 ここで最後に紹介するのがプローブです 00:08:32.822 --> 00:08:34.822 Unity には 2 種類のプローブがあります 00:08:35.425 --> 00:08:36.931 ライトプローブと 00:08:37.915 --> 00:08:39.915 リフレクションプローブです 00:08:41.121 --> 00:08:43.121 ライトプローブはシーン内のライティングのサンプルを 00:08:43.121 --> 00:08:45.121 ワールドのさまざまな位置で取得します 00:08:46.892 --> 00:08:49.568 プローブの情報を活用するとパフォーマンス負荷を 00:08:49.568 --> 00:08:51.568 抑えたまま シーン内の動的な要素 00:08:52.944 --> 00:08:55.912 たとえばキャラクターや移動するオブジェクトの 00:08:55.912 --> 00:08:57.912 ライティングに活用できます 00:09:02.492 --> 00:09:04.492 もう一方のリフレクションプローブは 00:09:04.492 --> 00:09:06.492 反射元の計算に使用する 00:09:06.492 --> 00:09:08.492 単一の参照ポイントとして作用します 00:09:09.114 --> 00:09:11.114 リフレクションプローブは 00:09:11.114 --> 00:09:13.114 反射に含まれるべき内容を 00:09:13.114 --> 00:09:15.618 指定する立方骨に囲まれています 00:09:16.522 --> 00:09:19.840 そして各プローブは ボックス投影を使用して 00:09:19.840 --> 00:09:21.840 周辺の要素からサンプルを取得し 00:09:21.840 --> 00:09:23.840 情報をキューブマップに格納します 00:09:26.779 --> 00:09:28.779 そして反射サーフェイスマテリアルを含むオブジェクトが 00:09:28.779 --> 00:09:32.656 リフレクションプローブのボリューム内にある場合に 00:09:32.656 --> 00:09:34.656 このキューブマップを参照して 00:09:34.656 --> 00:09:36.352 反射サーフェイスを作成するのです 00:09:36.939 --> 00:09:38.939 デフォルトでは各シーンにひとつビルトインの 00:09:38.939 --> 00:09:41.070 リフレクションプローブが配置されます 00:09:41.070 --> 00:09:43.070 このデフォルトリフレクションプローブは 00:09:43.070 --> 00:09:46.486 スカイボックスを反射して基本的な反射を生み出します 00:09:46.486 --> 00:09:48.486 より細やかなリフレクションが必要な場合には 00:09:48.486 --> 00:09:50.486 リフレクションプローブを追加して 00:09:50.486 --> 00:09:52.486 関係するオブジェクトに対して適切に 00:09:52.486 --> 00:09:54.486 配置する必要があります 00:09:57.124 --> 00:09:59.919 物理ベースレンダリングは 00:09:59.919 --> 00:10:01.919 リニアカラースペースでその真価を発揮します 00:10:02.484 --> 00:10:04.484 リニアカラースペースでは 00:10:04.484 --> 00:10:07.621 よりリアルで数学的にも正しい結果が得られます 00:10:09.788 --> 00:10:11.788 最適な結果を得るには 00:10:11.788 --> 00:10:13.788 Color Space 設定を Linear に設定します 00:10:13.788 --> 00:10:15.788 これはプロジェクトの 00:10:15.788 --> 00:10:17.788 Player Settings ウィンドウで指定します 00:10:18.919 --> 00:10:22.065 なお Linear は Color Space のデフォルト設定です 00:10:22.988 --> 00:10:24.988 なお一部のプラットフォームでは 00:10:24.988 --> 00:10:26.988 リニアカラースペースがサポートされておらず 00:10:26.988 --> 00:10:28.988 現時点では大半のモバイルプラットフォームで 00:10:28.988 --> 00:10:31.964 Gamma が必須カラースペースであることを記憶しておいてください 00:10:35.280 --> 00:10:37.280 これまでカバーしてきた要素を振り返ると 00:10:37.280 --> 00:10:39.280 Unity でシーンのライティングを 00:10:39.280 --> 00:10:41.906 効果的に行なう上での重要な要素は 00:10:41.906 --> 00:10:44.210 次のようにまとめられます 00:10:46.544 --> 00:10:47.914 環境光(Ambient Light) 00:10:48.762 --> 00:10:50.762 リフレクション(Reflection / 反射) 00:10:50.762 --> 00:10:52.762 そして光源です 00:10:53.271 --> 00:10:55.271 Standard シェーダーで作られたマテリアルを 00:10:55.271 --> 00:10:57.271 物理ベースレンダリングで描画し 00:10:57.271 --> 00:11:00.182 グローバルイルミネーションで 00:11:00.182 --> 00:11:02.182 間接光を計算し 00:11:02.182 --> 00:11:04.182 より複雑でもっとリアルな 00:11:04.182 --> 00:11:07.308 シーンを作ってみてください