🦇 7. キャラクター影設定 - ASP Character Panel で影の投射と受け取りを設定する(1.3 更新 / 2025年11月)
このページでは、ASP Character Panel を使ってキャラクターの影の投射と受け取りを設定する方法を紹介します。
1. 事前準備
- まず、2️⃣ 2. ASP Character Panel の設定(重要) の手順に従って、
ASPCharacterPanelコンポーネントをキャラクターの root GameObject に追加します。

- ASP Render Feature Check List の Required Pass がすべて
Activeになっていることを確認します。Required Pass は ASP Material Pass と ASP Depth-Offset Shadow です。inactiveまたはmissingと表示されている場合は、1️⃣ 1. インストール手順・事前設定(重要) を参照して、URP Asset と URP Renderer Data を正しく設定してください。
💡 ASP ShadowMap は Required Pass ではありません。Unity 2022.3、6.0、6.3 では、この Renderer Feature が存在して有効な場合に限り
ASP ShadowMap (Legacy)と表示されます。未追加でもmissingとは表示されません。Unity 6.5 にはこの機能は含まれません。

- キャラクターのマテリアルが
ASP/CharacterまたはASP/Eyeを使用していることを確認します。ASP Character Panel は、Cube Proxy の有効状態、中心、サイズをこれらのマテリアルへ同期します。Legacy ASP ShadowMap ワークフローを使用する場合に限り、Renderer は Character-Only Shadow Map にも描画されます。

2. 影の設定
現在のキャラクターの ASP Character Panel に戻り、Shadow Behaviours までスクロールします。このカテゴリには、展開できる項目が全部で 5 つあります。
| 項目名 | 説明 |
|---|---|
| Rendering Layer Information | 現在のキャラクター配下にあるすべてのrendererの Layer と Rendering Layer Mask を確認、設定します。 |
| Built-In Shadow Casting Behaviour | 現在のキャラクター配下にあるすべてのrendererが Unity 標準 Shadow Map に影を描画するかどうかを確認、設定します。 |
| Built-In Shadow Receive Behaviour | 現在のキャラクター配下にあるすべてのmaterialが Unity 標準 Shadow Map からの影を受け取るかどうかを確認、設定します。 |
| ASP Extra Shadow Behaviour | Depth Offset Shadow の受け取りを設定する。ASP ShadowMap が残っている旧リリースラインでは、Legacy Character-Only Shadow Map の受け取りも設定可能。 |
| Simple AABB Cube to Remove Self-Shadowing | 推奨される Cube Proxy の有効状態、中心、サイズを設定する。 |
💡 新規設定では Cube Proxy を使用してください。Legacy Character-Only Shadow Map と異なり、追加の shadow texture、cascade、キャラクターの ShadowCaster draw call は不要です。Unity 6.5 ではこの方法のみを提供します。
2-1 Cube Proxy を有効にして影の受け取り / 投射を設定する
ASP Character Panel が追加されているキャラクターの Inspector で、ASP Character Panel 内の Shadow Behaviours を開きます。
Simple AABB Cube to Remove Self-ShadowingのEnableをtrueにします。Shadow Behaviours内の他の項目で、キャラクターが確実に Built-In Shadow を投射していることを確認します(すべて緑表示になっているはずです)。
2-2 Gizmos を有効にして Cube Proxy の中心とサイズを調整する
Editor の
GizmosToggle を有効にします。Character Center Position Offsetを調整して、Cube Proxy の中心位置を合わせます。Self Shadow Cutoff AABB Sizeを調整して、Cube Proxy の大きさを決めます。
💡 立方体はキャラクター全体を包める大きさにしつつ、大きすぎないようにしてください。キャラクターは、この立方体の内側にある物体から投影される影は受け取らない点に注意してください。


2-3 ASP ShadowMap (Legacy) が有効な場合は無効にする
- Cube Proxy は追加の Character-Only Shadow Map なしで self-shadow を防ぎます。Renderer Data で ASP ShadowMap が有効な場合は無効にしてください。Unity 6.5 にはこの Renderer Feature はなく、Check List に不足項目も表示されません。

3. Legacy ASP ShadowMap の設定(Unity 2022.3、6.0、6.3 のみ)
⚠️ 以下のワークフローは、ASP ShadowMap Renderer Feature を含むリリースラインにのみ適用されます。Cube Proxy と同時に使用しないでください。Unity 6.5 ではサポートしていません。
3-1 キャラクターの Built-In Shadow Map への影描画を無効にする
まず Built-In Shadow Casting Behaviour を開き、キャラクター配下の各 Renderer が Built-In Shadow Map に描画しているかどうかを確認します。
各項目の Toggle を個別に切り替えることも、下部の Apply All で一括切り替えすることもできます。ここでは、すべての Built-In Shadow Cast を OFF にします。

3-2 シーン内の他の Static オブジェクトにキャラクター影を表示する
対象 Shader が ASP/Character または ASP/Eye のマテリアルは、ASP の Character-Only Shadow Map に描画されます。シーン内の標準 PBR マテリアルなど、ASP 以外のマテリアルでもこの影を受け取れるようにするには、
もともとの Universal Render Pipeline/Lit を ASP/UniversalPBRLit に置き換える必要があります。
ASP/UniversalPBRLit は、マテリアル UI も機能も標準 PBR と同じで、唯一の違いはコード側で ASP の Character-Only Shadow Map を追加サンプリングする点です。

3-3 特定マテリアルだけにキャラクター影を受け取らせる
ASP Extra Shadow Behaviours の左側にある Character-Only Shadow Map 項目では、見た目を壊しにくい部位だけキャラクター影の受け取りを有効にできます。たとえば脚や衣服などです。
多くの場合は、すべて Not received のままでも問題ありません。

4. 特定部位に Depth-Offset Shadow の投射 / 受け取りを設定する
まず、プロジェクト側の Rendering Layer Mask 設定と Depth Offset Shadow Renderer Feature を確認します。
1. プロジェクトの Rendering Layer Mask と Depth Offset Shadow Renderer Feature を設定する

まず、URP Global Setting で Rendering Layer Mask を設定します。 Edit > Project Settings > URP Global Setting を開き、Rendering Layer Mask(Rendering Layers (3D))を 1 つ追加してください。名前は
DepthOffsetShadowCasterなど分かりやすいものにします。次に
ASP Depth-Offset Shadowを設定します。Project ウィンドウで Renderer Feature を保存している URP Renderer Data を探し、Renderer Features の一覧から ASP Depth-Offset Shadow を開きます。このパネルでは、対象となる Layer と Rendering Layer Mask を指定できます。
💡 Layer は 1 つしか選べませんが、Rendering Layer Mask は複数選択できます。

Rendering Layer Information を展開すると、以下のような画面が表示されます。

| 項目名 | 説明 |
|---|---|
| Layer | Editor 上では各 GameObject の右上から設定できます。各 GameObject は 1 種類の Layer しか持てず、Physics システムとも共有するため柔軟性は低めです。 |
| Rendering Layer Mask | 各rendererごとに個別設定でき、複数選択も可能なので柔軟性が高いです。 |
まず、上部にある Depth Offset Shadow の対象 Layer と Rendering Layer Mask を確認します。
次に、各 Renderer ごとに Layer 値と Rendering Layer Mask 値を設定します。
対象の Layer が一致し、かつその Renderer の Rendering Layer Mask が Depth Offset Shadow 側で指定した値を含んでいる場合、その Renderer は Depth Offset Shadow を投射します。

⏭️ 次のページへ 3️⃣ 3. キャラクターレンダリング例 - セルシェーディング