Unity前回はリアルタイムライティングについて調べてみました。今回は事前計算によるライティングを調べてみたいと思います。事前計算によるライティングの環境光と間接光まずは準備として基本形状のCubeを組み合わせた部屋のシーンを用意します。これは前回の紹介したものと同じものです。確認として、環境光と環境反射光の影響を無しにしてみます。Settingsを選択。[Game]ビューでみると光の当たらない部分は真っ暗になりますね。[Hierarchy]ウィンドウでCubeオブジェクトのグループをすべて選択します。>オブジェクト名の右側にある”Static”のチェックを入れます。すると次のようなダイアログが表示されます。childlen]ボタンをクリック。すると、[Inspector]ウィンドウ下に進行バーが表示され、計算処理が始まります。計算処理が終わったら[Game]ビューを見てみましょう。ゲームプレイ中にオブジェクトが移動できるかどうかを知ることによって、多くの処理の最適化を行うことができます。(動かない)オブジェクトは多くの場合、位置が変わらないので、エディターの段階で事前に計算することが可能です。呼ばれる静的なオブジェクトを大きなオブジェクトとして1つにまとめることで最適化を行うことができます。言うと、オブジェクトを「静的ゲームオブジェクト」に変更したので「事前計算ライティング」が有効になったということです。」にある「ライトマップのベイク」の項目を読んでみます。静的で複雑なライティング効果を計算することができます(グローバルイルミネーションやGIと呼ばれる技法を使います)。計算結果は、ライトマップと呼ばれる参照用テクスチャマップに保存されます。この計算のプロセスをベイク(焼き付け)と言います。ライティングをベイクして生成されたライトマップには、ゲーム中に変更を加えることができません。リアルタイムライトは、ライトマップされたシーンの上から加算的にオーバーライドして使うことはできますが、ライトマップ自体を変化させることはありません。理解した感じでは、静的ゲームオブジェクトでは直接光や間接光の複雑なライティングの計算してライトマップという画像に保存してオブジェクトに上書きできるよ。ややこしくなるのが「事前計算されたリアルタイムグローバルイルミネーション」というの別のライティング方法が存在することです。Settingsを選択。チェックを外してみましょう。なんと![Game]ビューを見ると。影の部分が真っ暗になってしまいます。いうこと?では先ほど影の部分が明るくなったのは「事前計算されたリアルタイムグローバルイルミネーション」だったのか?ということになりますがどういうことでしょうか?今度はライトの設定をちょっと変えてみます。[Baked]に変更します。[Game]ビューをみると。お!また影の部分が明るくなっています。これが完全な「事前計算ライティング」または「事前計算グローバルイルミネーション」ということのようです。実際は他にも設定が色々あるようですが現状理解できた範囲で事前計算処理の切り替えについてまとめると次のような形になります。Litingのチェックのオン/オフ「事前計算されたリアルタイムグローバルイルミネーション」は太陽の動きのようなオブジェクトは動かないけどライトは動くよ、というような場合に効果的だそうです。試してみたいと思います。最後に試したのが次の設定。これを[Game]ビューでみると真っ暗闇になりました。[Baked]に変更した静的ライトで、Staticのチェックをオフにした動的オブジェクトを照らすことはできないということでした。今回はUnityの公式サイトに掲載されているチュートリアルの2Dシューティングに挑戦。自機の移動と弾の発射処理までのステップを行いました。前進方向について分からなかったところを調べてみました。関数を使ってプレイヤーキャラクターが近づくと追いかけてきて、一定の距離で停止する敵キャラクターオブジェクトの処理を試してみました。ゲームの表示の改良をやってみました。Creator:三人称視点と一人称視点のカメラの切り替えご意見ご感想お待ちしています。コメントデータの処理方法の詳細はこちらをご覧ください。ただいまゲーム制作中.。