深度ベースエフェクト
このページは深度エフェクトをはじめてオンにする方のためのものです。 前髪の影と太さの均一な輪郭線を、画面の深度で描きます。約 10 分かかります。
これは何ですか
深度テクスチャは、カメラが測る「何がどれだけ手前にあるか」の情報です。 この情報で描くエフェクトが 5 つ、スクリーン空間エフェクトグループにあります。
| インスペクターのセクション | 何を描くか |
|---|---|
| デプスリムライト | シルエット全体に太さが均一な光の線 |
| デプスシャドウ | 前髪が額に落とす影 |
| SSAO (画面空間遮蔽) | 折れ曲がる場所と接する場所の接触陰影 |
| SSSSS(実験的) | 毛先・裾が光を含んだように見える透過光 |
| インナーアウトライン | Inner Depth Edge。襟や顎のようなシルエット内側の境界線 |
いつ使いますか
- 前髪の影を、照明が変わっても揺れないようにしたいとき。
- 服が体に触れる場所に接触陰影を入れたいとき。
深度がなければ、幅や強度を上げても画面には何も出ません。 インスペクターがそのとき、何が足りないかを直接知らせます。
まず深度を確保してください
| 環境 | やること |
|---|---|
| VRChat | Photo Camera をオンにするか、ワールドが Screen Camera depth をオンにします。マネージャーのビルド時に深度ライトを削除がオフかを確認してください |
| 一般 Unity (BRP) | シーンの MingToon マネージャーがエディターで自動的に供給します。追加するコンポーネントはありません |
| URP 12 | StudioRaming > MingToon > URP > Install Depth Effects Renderer Feature を実行します |
| Warudo | Depth をオンにした Warudo カメラが必要です |
URP では、使用中の Renderer Data で Depth Texture もオンにする必要があります。 VRChat の一般プレイヤーの画面では、アバターが深度を強制できません。 そのためリムとアウトラインで下地を敷いておいてください。
深度の可用性
深度の可用性は、深度があるかどうかをどう判定するかを決めます。
- Auto は既定値です。シェーダーが自分で探すので、このままにしてください。
- Force On は、自動判定が届かないホストで作者が保証します。
- Force Off は深度エフェクトを完全に遮断します。
- Diagnostic は判定の状態を色で塗ります。バグ報告用です。
ミラーカメラは自分の深度を描かないのに、他人の深度バッファが付いています。 そのまま読むと、キャラクターが他人のシルエットを自分の影として使います。
Diagnostic — 報告するときだけ
シェーダーがどの深度を見ていたかを単色で塗ってくれます。ルックが丸ごと変わります。 黒は深度なし、赤はこの画面のバッファではない、黄は正常です。
30 秒で試す
- 変換した顔のマテリアルを選びます。
- 深度エフェクトをオンにします。
- 全体幅が 1 かを確認します。
- デプスシャドウをオンにします。
額に前髪の影が出れば成功です。 何も変わらない場合はトラブルシューティングへ進んでください。
深度エフェクトのマスター
5 つのモジュールを一度にオン・オフするスイッチと共通の値がまとまっています。
| インスペクターのラベル | 何が変わるか | 推奨の開始値 | 上げると / 下げると |
|---|---|---|---|
| 深度エフェクト | 5 モジュール全体のマスタースイッチ | オン | オフにすると 5 モジュールがすべてオフになります |
| 全体幅 | デプスリムライトとデプスシャドウの共通倍率 | 既定値のまま(1) | 0 だと各モジュールの幅を上げても何も出ません |
| 全体バイアス | 前後の境界と認める最小の深度差 | 既定値のまま(0.02) | 下げると浅い凹凸にも線が付いて汚くなります |
| 全体の柔らかさ | 深度の境界判定の遷移幅 | 既定値のまま(0.08) | 下げると硬いインクの線、上げるとぼけた境界になります |
| 幅モード | 太さの基準 | 既定値のまま(Distance Stable) | Screen Pixels は遠ざかるほど線が太くなります |
デプスリムライト
シルエットの外側に、太さが均一な光の線を描きます。
- 深度エフェクトがオンかを確認します。
- デプスリムライトをオンにします。
- リム強度を 1 にします。
- リム幅の倍率を 2 にします。
シルエットに沿って均一な光の線が出れば成功です。
| インスペクターのラベル | 何が変わるか | 推奨の開始値 | 上げると / 下げると |
|---|---|---|---|
| リム強度 | 線の明るさ倍率 | 既定値のまま(1) | 0 だと色と幅を変えても見えません |
| リム幅の倍率 | 全体幅に掛ける専用の倍率 | 既定値のまま(2) | 全体幅が 0 なら、ここを上げても意味がありません |
| 360度リム | シルエット全体を包むか | 1 | 0 だと光源側にだけ出て、1 だと全体を包みます |
| シーン照明の影響 | シーンの明るさに追従する度合い | 0.3 | 0 なら暗いワールドでも線がそのまま残ります |
| リムサンプル品質 | ピクセルごとに読む深度サンプル数 | 既定値のまま(標準) | 低いと目・鼻・口までリムとして拾われます |
デプスシャドウ
手前のオブジェクトのシルエットを照明の反対側へ押し出し、影のバンドを描きます。
- 顔のマテリアルでデプスシャドウをオンにします。
- 影の幅を 3 にします。
- 影の強さを 1 にします。
- デプスシャドウバイアスを 0.03 にします。
額に前髪の形の影が出れば成功です。
| インスペクターのラベル | 何が変わるか | 推奨の開始値 | 上げると / 下げると |
|---|---|---|---|
| 影の幅 | 押し出して描いたバンドの厚み | 既定値のまま(3) | 上げると額の下まで伸び、下げるとメッシュに貼り付きます |
| 影の強さ | 影の最終的な適用量 | 既定値のまま(1) | 0 だと幅を上げても見えません |
| デプスシャドウバイアス | 手前のオブジェクトと受信面の最小間隔 | 既定値のまま(0.03) | 0.03 が 3mm です。下げると顔に影が貼り付きます |
| 深度伸び | 浮いている分だけ影を広げる量 | 既定値のまま(0.75) | 0 だと幅だけで影が決まります |
| 深度フェード | 奥の部位ほど薄くなる量 | 既定値のまま(0.5) | 1 だと最も奥の影が完全に消えます |
| ソフトネス | 境界が完全な影になるまでの幅 | 既定値のまま(0.05) | 下げるときっちり出て、上げると浅い接触が薄くなります |
| 深度カーブ | 幅・ブラー・フェードが共通で使う曲線 | 既定値のまま(0) | 0 だと深度に正比例し、上げると奥だけが大きく変わります |
焼き付きと減衰
影が自分の顔に焼き付く場合は、デプスシャドウバイアスを上げます。 それでも残る場合は、顔のマテリアルで受信面プッシュバックを上げます。バイアスのすぐ下にあります。 顔や体のように受ける側のマテリアルにだけ使い、髪や衣装は 0 にしておきます。
そのマテリアルが受ける投影影が自動でオフになります。 デプスシャドウをオフにするか、値を 0 に戻せば元の設定に戻ります。
SSSSS(実験的)
薄い部分が光を含んだように見せます。まだ実験段階です。
- 髪のマテリアルで透過光を使うをオンにします。
- 透過強度を 1 にします。
- 計測幅を 6 にします。
- 光源をキャラクターの後ろへ移します。
毛先が赤く透けて見えれば成功です。
| インスペクターのラベル | 何が変わるか | 推奨の開始値 | 上げると / 下げると |
|---|---|---|---|
| 透過強度 | 透過光全体の明るさ倍率 | 既定値のまま(1) | 0 だと計算を飛ばします |
| 計測幅 | 光源方向へどれだけ遠くまで見るか | 既定値のまま(6) | 大きく取ると太い部位まで薄いと判定されます |
| シェル下限 | 中が空洞の服を薄いものとして扱う下限 | スカート・マントは 0.8 | 0 だと計測値をそのまま使います |
| 順光の下限 | 順光で残る透過光の比率 | 0.2 | 0 にすると肌が肌らしく見えません |
SSAO (画面空間遮蔽)
折れ曲がる場所と接する場所を、柔らかく暗くします。
- ボディのマテリアルで SSAOを使用をオンにします。
- SSAO 強度を 1 にします。
- SSAO 半径を 0.005 にします。
- SSAO コントラストを 1 にします。
服が体に触れる場所が暗くなれば成功です。
| インスペクターのラベル | 何が変わるか | 推奨の開始値 | 上げると / 下げると |
|---|---|---|---|
| SSAO 強度 | 効果の強さ | 既定値のまま(1) | 0 だと見えませんが、計算はそのまま回ります |
| SSAO 半径 | 遮蔽を探す距離 | 既定値のまま(0.005) | 大きくすると接触陰影が広く柔らかくなります |
| SSAO コントラスト | 遮蔽のコントラスト | 既定値のまま(1) | 上げると濃くえぐれた場所だけが残ります |
| 品質 | SSAO がピクセルごとに読む深度サンプル数 | 既定値のまま(Low) | Low 4 · Standard 8 · High 16 です |
| SSAO ティント | 遮蔽の場所だけに掛ける色 | 白 | 白なら既存の影の色をそのまま残します |
Inner Depth Edge
インナーアウトラインセクションにあります。シルエット内側の深度の段差に線を描きます。
- アウトラインマスターがオンかを確認します。
- Inner Depth Edgeを使用をオンにします。
- 幅を 0.3 にします。
- 内側エッジ色を暗めにします。
襟と顎の下に線が出れば成功です。
| インスペクターのラベル | 何が変わるか | 推奨の開始値 | 上げると / 下げると |
|---|---|---|---|
| 幅 | 内側の境界線の太さ | 既定値のまま(0.3) | ノーマルアウトラインより細くするのが一般的です |
| 深度バイアス | 境界と認める最小の深度差 | 既定値のまま(0.02) | 下げるとなだらかな凹凸にも線が付いて汚くなります |
| 内側エッジ色 | 内側の境界線の色 | ベースより暗い色 | 黒に近いほどマンガ風が強くなります |
| アウトラインマスター | ノーマルアウトラインと共用のゲート | オン | オフだと両方のタブとも描かれません |
よくある問題
深度エフェクトがまったく見えません
- 全エフェクトマスターと深度エフェクトがオンかを見ます。
- 全体幅が 0 でないかを見ます。
- 各モジュールの強度が 0 でないかを見ます。
- 上のまず深度を確保してくださいをもう一度見ます。
サーフェスモードを透明にすると全部消えます
透明 (3000) は深度を記録しません。 基本設定ガイドでサーフェスモードを半透明 (2499) に変えてください。 半透明 (2499) はアルファ合成をしながら深度も記録します。
ミラーの中で影が体に追従しません
ミラーでは、どの値を選んでも深度モジュールは下がります。
もっと詳しく
- 全項目と範囲: 深度ベースエフェクトのリファレンス
- 顔の影の方式を選ぶ: キャラクター表現
- 性能が気になるとき: トラブルシューティング