- パフォーマンスの問題となる大きな環境オブジェクトを選択し、MeshRendererコンポーネントにある“Receive Shadows”のチェックを外します。(Unityのテレインオブジェクトはこのプロパティを持っていないので、テレインの場合はシャドウマップと一緒に使うことはできません)
- 以下のステップ3からステップ11までの手順を各シャドウキャスターオブジェクト毎に繰り返します。
- 空のゲームオブジェクトを作成し、“LightProjector”コンポーネントを追加します。このコンポーネントのスクリプトファイルは“FastShadowReceiver/Scripts/Projectors”フォルダの中にあります。
- 影を落とすメインライトをステップ3で作成したLightProjectorコンポーネントの“Light”プロパティーに割り当てます。
- LightProjectorコンポーネントの“Target”プロパティーにシャドウキャスターオブジェクトを割り当てます。
- LightProjectorコンポーネントの“Target Bounds”をバウンディングボックスがキャスターオブジェクト全体を内包するように設定します。
- 空のゲームオブジェクトを作成し、Shadow Receiverコンポーネントのいずれかを追加します。Shadow Receiverコンポーネントのスクリプトファイルは“FastShadowReceiver/Scripts/Receivers”フォルダの中にあります。
- ステップ3で作成したLightProjectorをステップ7で作成したShadow Receiverの“Projector”プロパティに割り当てます。
- “FastShadowReceiver/Materials”フォルダの中にある“MultiplyShadowMap”マテリアルまたは“BlendShadowMap”マテリアルをステップ7で作成したゲームオブジェクトのMeshRendererコンポーネントに割り当てます (Universal RP の場合は、こちらのシェーダーをお使いください)。
- ステップ1で選択した大きな環境オブジェクトを次のいずれかの方法でShadow Receiverに割り当てます:
- ステップ7でInfinitePlaneShadowReceiverを作成した場合は、“target”プロパティに環境オブジェクトをセットする。
- ステップ7でMeshShadowReceiverを作成した場合は、“MeshTransform”プロパティに環境オブジェクトのルートオブジェクトをセットする。
- ステップ7でRaycastPlaneShadowReceiverを作成した場合は、“Raycast Mask”プロパティに“Environment”レイヤー(環境オブジェクトと同じレイヤー)を割り当てます。
詳細については、Shadow Receiverのセットアップセクションを参照してください。
- もしステップ7でMeshShadowReceiverを作成した場合は、Mesh Treeを作成してMeshShadowReceiverコンポーネントの“Mesh Tree”プロパティに割り当てる必要があります。
まだ“Mesh Tree”プロパティに何もセットしていなくて、“Mesh Transform”プロパティにステップ10で環境オブジェクトのルートオブジェクトをセットしていれば、“Create a new MeshTree”ボタンがInspector Viewの下の方に現れます。
このボタンを押すと、下のイメージにあるようなMesh Treeを作成するためのWizardが表示されます。詳細についてはMesh Treeの作成を参照してください。