メインコンテンツまでスキップ

深度ベースエフェクト

このページは深度エフェクトをはじめてオンにする方のためのものです。 前髪の影と太さの均一な輪郭線を、画面の深度で描きます。約 10 分かかります。

これは何ですか​

深度テクスチャは、カメラが測る「何がどれだけ手前にあるか」の情報です。 この情報で描くエフェクトが 5 つ、スクリーン空間エフェクトグループにあります。

インスペクターのセクション何を描くか
デプスリムライトシルエット全体に太さが均一な光の線
デプスシャドウ前髪が額に落とす影
SSAO (画面空間遮蔽)折れ曲がる場所と接する場所の接触陰影
SSSSS(実験的)毛先・裾が光を含んだように見える透過光
インナーアウトラインInner Depth Edge。襟や顎のようなシルエット内側の境界線

いつ使いますか​

  • 前髪の影を、照明が変わっても揺れないようにしたいとき。
  • 服が体に触れる場所に接触陰影を入れたいとき。
値を触る前に、まず深度を確認してください

深度がなければ、幅や強度を上げても画面には何も出ません。 インスペクターがそのとき、何が足りないかを直接知らせます。

まず深度を確保してください​

環境やること
VRChatPhoto Camera をオンにするか、ワールドが Screen Camera depth をオンにします。マネージャーのビルド時に深度ライトを削除がオフかを確認してください
一般 Unity (BRP)シーンの MingToon マネージャーがエディターで自動的に供給します。追加するコンポーネントはありません
URP 12StudioRaming > MingToon > URP > Install Depth Effects Renderer Feature を実行します
WarudoDepth をオンにした Warudo カメラが必要です

URP では、使用中の Renderer Data で Depth Texture もオンにする必要があります。 VRChat の一般プレイヤーの画面では、アバターが深度を強制できません。 そのためリムとアウトラインで下地を敷いておいてください。

深度の可用性​

深度の可用性は、深度があるかどうかをどう判定するかを決めます。

  • Auto は既定値です。シェーダーが自分で探すので、このままにしてください。
  • Force On は、自動判定が届かないホストで作者が保証します。
  • Force Off は深度エフェクトを完全に遮断します。
  • Diagnostic は判定の状態を色で塗ります。バグ報告用です。
Force On はミラーをオンにしません

ミラーカメラは自分の深度を描かないのに、他人の深度バッファが付いています。 そのまま読むと、キャラクターが他人のシルエットを自分の影として使います。

Diagnostic — 報告するときだけ​

シェーダーがどの深度を見ていたかを単色で塗ってくれます。ルックが丸ごと変わります。 黒は深度なし、赤はこの画面のバッファではない、黄は正常です。

深度がない画面とある画面の Diagnostic の色の比較

30 秒で試す​

  1. 変換した顔のマテリアルを選びます。
  2. 深度エフェクトをオンにします。
  3. 全体幅が 1 かを確認します。
  4. デプスシャドウをオンにします。

額に前髪の影が出れば成功です。 何も変わらない場合はトラブルシューティングへ進んでください。

深度エフェクトのマスター​

5 つのモジュールを一度にオン・オフするスイッチと共通の値がまとまっています。

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
深度エフェクト5 モジュール全体のマスタースイッチオンオフにすると 5 モジュールがすべてオフになります
全体幅デプスリムライトとデプスシャドウの共通倍率既定値のまま(1)0 だと各モジュールの幅を上げても何も出ません
全体バイアス前後の境界と認める最小の深度差既定値のまま(0.02)下げると浅い凹凸にも線が付いて汚くなります
全体の柔らかさ深度の境界判定の遷移幅既定値のまま(0.08)下げると硬いインクの線、上げるとぼけた境界になります
幅モード太さの基準既定値のまま(Distance Stable)Screen Pixels は遠ざかるほど線が太くなります

デプスリムライト​

シルエットの外側に、太さが均一な光の線を描きます。

  1. 深度エフェクトがオンかを確認します。
  2. デプスリムライトをオンにします。
  3. リム強度を 1 にします。
  4. リム幅の倍率を 2 にします。

シルエットに沿って均一な光の線が出れば成功です。

デプスリムライトをオフにしたシルエットとオンにしたシルエットの比較

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
リム強度線の明るさ倍率既定値のまま(1)0 だと色と幅を変えても見えません
リム幅の倍率全体幅に掛ける専用の倍率既定値のまま(2)全体幅が 0 なら、ここを上げても意味がありません
360度リムシルエット全体を包むか10 だと光源側にだけ出て、1 だと全体を包みます
シーン照明の影響シーンの明るさに追従する度合い0.30 なら暗いワールドでも線がそのまま残ります
リムサンプル品質ピクセルごとに読む深度サンプル数既定値のまま(標準)低いと目・鼻・口までリムとして拾われます

デプスシャドウ​

手前のオブジェクトのシルエットを照明の反対側へ押し出し、影のバンドを描きます。

  1. 顔のマテリアルでデプスシャドウをオンにします。
  2. 影の幅を 3 にします。
  3. 影の強さを 1 にします。
  4. デプスシャドウバイアスを 0.03 にします。

額に前髪の形の影が出れば成功です。

デプスシャドウをオフにした額とオンにした額の比較

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
影の幅押し出して描いたバンドの厚み既定値のまま(3)上げると額の下まで伸び、下げるとメッシュに貼り付きます
影の強さ影の最終的な適用量既定値のまま(1)0 だと幅を上げても見えません
デプスシャドウバイアス手前のオブジェクトと受信面の最小間隔既定値のまま(0.03)0.03 が 3mm です。下げると顔に影が貼り付きます
深度伸び浮いている分だけ影を広げる量既定値のまま(0.75)0 だと幅だけで影が決まります
深度フェード奥の部位ほど薄くなる量既定値のまま(0.5)1 だと最も奥の影が完全に消えます
ソフトネス境界が完全な影になるまでの幅既定値のまま(0.05)下げるときっちり出て、上げると浅い接触が薄くなります
深度カーブ幅・ブラー・フェードが共通で使う曲線既定値のまま(0)0 だと深度に正比例し、上げると奥だけが大きく変わります

焼き付きと減衰​

影が自分の顔に焼き付く場合は、デプスシャドウバイアスを上げます。 それでも残る場合は、顔のマテリアルで受信面プッシュバックを上げます。バイアスのすぐ下にあります。 顔や体のように受ける側のマテリアルにだけ使い、髪や衣装は 0 にしておきます。

受信面プッシュバックが 0 より大きいと投影影を受けられません

そのマテリアルが受ける投影影が自動でオフになります。 デプスシャドウをオフにするか、値を 0 に戻せば元の設定に戻ります。

SSSSS(実験的)​

薄い部分が光を含んだように見せます。まだ実験段階です。

  1. 髪のマテリアルで透過光を使うをオンにします。
  2. 透過強度を 1 にします。
  3. 計測幅を 6 にします。
  4. 光源をキャラクターの後ろへ移します。

毛先が赤く透けて見えれば成功です。

逆光で透過光をオフにした毛先とオンにした毛先の比較

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
透過強度透過光全体の明るさ倍率既定値のまま(1)0 だと計算を飛ばします
計測幅光源方向へどれだけ遠くまで見るか既定値のまま(6)大きく取ると太い部位まで薄いと判定されます
シェル下限中が空洞の服を薄いものとして扱う下限スカート・マントは 0.80 だと計測値をそのまま使います
順光の下限順光で残る透過光の比率0.20 にすると肌が肌らしく見えません

SSAO (画面空間遮蔽)​

折れ曲がる場所と接する場所を、柔らかく暗くします。

  1. ボディのマテリアルで SSAOを使用をオンにします。
  2. SSAO 強度を 1 にします。
  3. SSAO 半径を 0.005 にします。
  4. SSAO コントラストを 1 にします。

服が体に触れる場所が暗くなれば成功です。

SSAO をオフにした襟とオンにした襟の比較

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
SSAO 強度効果の強さ既定値のまま(1)0 だと見えませんが、計算はそのまま回ります
SSAO 半径遮蔽を探す距離既定値のまま(0.005)大きくすると接触陰影が広く柔らかくなります
SSAO コントラスト遮蔽のコントラスト既定値のまま(1)上げると濃くえぐれた場所だけが残ります
品質SSAO がピクセルごとに読む深度サンプル数既定値のまま(Low)Low 4 · Standard 8 · High 16 です
SSAO ティント遮蔽の場所だけに掛ける色白白なら既存の影の色をそのまま残します

Inner Depth Edge​

インナーアウトラインセクションにあります。シルエット内側の深度の段差に線を描きます。

  1. アウトラインマスターがオンかを確認します。
  2. Inner Depth Edgeを使用をオンにします。
  3. 幅を 0.3 にします。
  4. 内側エッジ色を暗めにします。

襟と顎の下に線が出れば成功です。

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
幅内側の境界線の太さ既定値のまま(0.3)ノーマルアウトラインより細くするのが一般的です
深度バイアス境界と認める最小の深度差既定値のまま(0.02)下げるとなだらかな凹凸にも線が付いて汚くなります
内側エッジ色内側の境界線の色ベースより暗い色黒に近いほどマンガ風が強くなります
アウトラインマスターノーマルアウトラインと共用のゲートオンオフだと両方のタブとも描かれません

よくある問題​

深度エフェクトがまったく見えません​

  1. 全エフェクトマスターと深度エフェクトがオンかを見ます。
  2. 全体幅が 0 でないかを見ます。
  3. 各モジュールの強度が 0 でないかを見ます。
  4. 上のまず深度を確保してくださいをもう一度見ます。

サーフェスモードを透明にすると全部消えます​

透明 (3000) は深度を記録しません。 基本設定ガイドでサーフェスモードを半透明 (2499) に変えてください。 半透明 (2499) はアルファ合成をしながら深度も記録します。

ミラーの中で影が体に追従しません​

ミラーでは、どの値を選んでも深度モジュールは下がります。

もっと詳しく​