今回は、スタンダードアセットに含まれているプロジェクターを使ってキャラクターに影を設定したいと思います。
影を設定することで、キャラクターが移動したときの位置関係を把握出来るようになります。
基本はDirectional Lightを使ってステージを照らすことになりますが、アセットストアなどからインポートしてきたモデルの場合、マテリアルに設定されているシェーダーによって影を表示出来ないものもあります。
プロジェクターを使って影の設定を行う
今回使用するプロジェクターは、スタンダードアセットに含まれているので、インポートしていない場合は、アセットストアからインポートしておきましょう。
インポート完了したら「Standard Assets」→「Effects」→「Projectors」→「Prefabs」→「BlobShadowProjector」を影を付けたいキャラクターの子に設定します。
私は、Small Red Dragonに設定してみました。
設定すると分かりますが、丸い影が表示されるはずです。デフォルトの状態だと影が真下に表示されないので、RotationのX値を「90」にして真下に表示させましょう。
また、「Field Of View」の値を変更することで、影の範囲を変更することが出来ます。
ignoreレイヤーの設定
プロジェクターのオンオフを繰り返すと分かりますが、キャラクター自身にも影が投影されていますね。キャラクターが暗く映ってしまい良くないので、特定のオブジェクトの影を投影しないレイヤーの設定を行います。
「Edit」→「Project Settings」を開きます。
「Tags and Layers」を選択して空いているUser Layerに適当なレイヤー名を入力します。
キャラクターオブジェクトのインスペクターからLayerのドロップダウンメニューを開いて今作ったレイヤー名を指定します。
子のオブジェクトのレイヤーも変更するか確認ダイアログが表示されますが「Yes,change children」をクリックします。
最後に、BlobShadowProjectorの「Ignore Layers」を先ほど作成したレイヤー名に変更すれば、キャラクター自身の影が映らなくなります。
プロジェクターを設定した時点のSmall Dragonと比較すると分かりますが、キャラクター自身の影が消えてキャラクターそのものの色合いになっていますね。
複雑じゃなくカジュアルな設計のゲームの場合は、プロジェクターが便利だと思います。