「Zatools Convex Depth Wrapper」は、AO(アンビエントオクルージョン)が適用されているワールドで「白目が黒くなってしまうのを防ぐことができるNDMFプラグイン」です。
Zatools: kb10uy’s Various Tools
これは「雑なツール、雑ール」と呼ばれるNDMFに対応した便利なツールの詰め合わせです。
「Zatools Convex Depth Wrapper」はこのツール群の中のひとつとなります。他にも色々とありますが、今回はこちらだけを紹介します。

リポジトリを登録しよう
「kb10uy VRChat Package Repository」からALCOMまたはVCCに登録すると利用できます。
NDMFに依存するので当然ながらNDMFが使える状態にしておく必要がありますが、衣装着せ替えのためにMA(Modular Avatar)が使える状態になっていれば既に準備OKです。恐らく入ってると思いますので割愛します。
プロジェクトにパッケージをインストールしよう
利用したいアバターのプロジェクトにインストールしてみましょう。
インストール可能なパッケージ一覧から「Zatools: kb10uy’s Various Tools」を探して、インストールしてください。
使い方
簡単な使い方
アバターのBody(※顔のメッシュ)に「Zatools Convex Depth Wrapper」コンポーネントを追加してください。
以上です。設定はありません。
Body以外に入れたときは?(何かがおかしくなった場合に試せる方法)
ちなみに、顔のメッシュ(Body)ではなく「空のオブジェクト」にコンポーネントを追加したときはSkinned Mesh Rendererが設定されて、Zatools Convex Depth Wrapperには「生成対象」という項目が表示されます。ここに顔のメッシュ(Body)を設定してください。
顔のSubmeshではなく独立したMeshとして扱われるので、直接入れると何らかの問題が発生する場合はこちらの方法を試してみましょう。
範囲を確認する
どのような範囲になっているか確認したいのであれば、NDMF Previewを有効にすると顔を包み込む形(凸包状)の青いクロスハッチが表示されます。「プレビューを切り替える」ボタンを押してみましょう。
旧バージョンからアップデートした直後に何故かボタンが出てこない場合はConfigure Previewsでもオン・オフできますが、一旦Unityを立ち上げ直してみてください。どうしても改善しない場合はALCOM/VCCから消して入れ直した方が早いです。
ツール > NDM Framework > Configure Previews > kb10uy’s Various Tools > Convex Depth Wrapper
メッシュ生成時に無視したい部分を追加する
デフォルトでは、現在のシーン上に配置されている状態を基にして全体を覆うメッシュを生成しています。そのため、例えばまつげを長くするなどして顔から大きくはみ出す部分があると、必要以上に広い範囲を覆ってしまう事があります。
そのせいで何か不都合が起こるという場合に、「BlendShape オーバーライド」を指定することでそれらのBlendShapeをメッシュ生成時の計算対象から外すことが可能です。生成後のメッシュから無視したい部分を引いてくれるわけではありません。調整は難しいので上級者向けの機能です。
Exメニューからオン・オフできる状態で導入する
あえてAOの影が欲しいときや、特別な事情でオフにしたいときがあるかもしれません。Modular Avatarの「MA Menu Item」と組み合わせてオン・オフできるように設定できます。
※既に「Convex Depth Wrapper」を入れている場合は一旦削除してください。
顔のメッシュ(Body)を選択して、右クリックメニューから「(Advanced) Inverted Convex Depth Wrapper Setup with Toggle」を選びます。
Zatools: kb10uy’s Various Tools > (Advanced) Inverted Convex Depth Wrapper Setup with Toggle
「DepthWrapperToggle」がBodyの下に追加されて、「デフォルトで無効」の状態で切り替えギミックが導入されます。
この場合、AO対策を使いたいときにExメニューでオンにできます。
MA Menu Itemの「初期設定にする」にチェックを入れておくと、最初からオンの状態になります。
このままだとExメニュー直下に入ります。メニューの位置を変更したい場合や、既にMAで追加されたメニューがあって「MA Menu Installer」が重複して困るときは以下を参考にしてみてください。
どういう仕組み?
雑ーに説明すると、AO(アンビエントオクルージョン)は環境光が遮蔽されている場所を暗くする処理なので、顔や目の凹みが必要以上に暗くなってしまうことがあります。
それを軽減するために、「実際の顔形状よりも少し手前」に偽の深度を書き込むメッシュとマテリアルを用意して、AO側から見た凹みをなくす処理を行っています。
副作用として、深度情報を書き換える都合上、壁や地面などにおちる顔の影の形が若干変化したり、カメラのピントの合う位置が僅かに変わる場合があります。
カメラのピント位置については、前髪よりも少し奥ぐらいの位置になることが多いため、実際の使用ではあまり影響しないだろうとのことです。
また、青いクロスハッチで表示されている部分は実際には何も描画されず、影・深度生成の処理でしか使われません。そのため、RenderQueue絡みの半透明描画などの問題は心配はありません。
マテリアル入れ替え機能など、その他詳細な情報については公式ページをご確認ください。




















