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

顔 SDF と Face SDF Studio

このページは 顔SDF影を使用をはじめてオンにする方のためのものです。 光源が回るとき、顔の影がアニメのように切り替わるようにします。約 7 分かかります。

これは何ですか​

SDF は、顔の影が動く順番をあらかじめ描いておいた画像です。 光源が横に回ると、鼻の脇から順番に覆われていきます。 顔の凹凸をそのまま使うより、はるかにきれいな遷移になります。

光源を横に回したとき、SDF をオフにした顔とオンにした顔の比較

まず 3 つを区別してください。

機能やること必要なもの
フェイスシェーディングモジュール顔の領域を体とは違うルールで処理顔マスクまたはプロキシ
顔SDF影を使用光源方向に応じて覆われる順番を制御顔 SDF マップ
Face SDF Studioマップを作る別アドオン未リリース。このページには不要

いつ使いますか​

  • VRChat のワールドを歩き回り、照明方向が予測できないとき。
  • Warudo の配信で照明方向を変えながら使うとき。
  • 鼻の影が正面では大丈夫でも、側面で崩れるとき。

30 秒で試す​

  1. 顔のマテリアルを選び、フェイスシェーディングモジュールをオンにします。
  2. 顔SDF影を使用をオンにします。
  3. 顔SDFマップに用意したテクスチャを入れます。
  4. 境界の柔らかさを 0.04 にします。

光源を左右に回したとき、影が順番に切り替われば成功です。 何も変わらない場合はトラブルシューティングへ進んでください。

マップはどこで手に入りますか​

MingToon はマップを作ってくれません。3 つの経路があります。

経路説明
外部制作顔正面のグレースケールマップを自分で描くか、外注で作ります
既存の SDF を流用他のトゥーンシェーダー用の単一チャンネル SDF をそのまま持ってきます
Face SDF Studio別途の未リリースアドオンです。出るまでは上の 2 つの経路を使ってください

SDF マップの形式​

マップ形式で 2 つの方式から 1 つを選びます。既定値は Packed RGBA です。

形式チャンネル推奨される状況
Packed RGBAR は左、G は右、B は上、A は下上下の照明まで使う基本の方式
Single Channel Mirrored UR の 1 枚。反対側は左右を反転して使います既存の単一チャンネル SDF を持ってくるとき

Single Channel Mirrored U は上下方向を使いません。 上下の照明変化まで必要なら Packed RGBA を選んでください。

用意したマップを Inspector に接続する​

  1. フェイスシェーディングモジュールをオンにします。
  2. 顔SDF影を使用をオンにします。
  3. マップ形式を用意したマップに合わせて選びます。
  4. 顔SDFマップにテクスチャを割り当てます。
  5. SDF座標を選びます。UV7 を別途用意していない場合は Base Texture UV (Legacy) です。
  6. 左右の影響 · 上下の影響 · SDF影の量を調整します。
  7. 境界オフセットと境界の柔らかさを、実際のアバターの照明で合わせます。
SDF座標の既定値は Baked Front UV7 です

マップと一緒に正面投影データを用意していない場合、この値は座標を誤って読みます。 そのときは Base Texture UV (Legacy) に変えてください。

4 方向で確認する​

マップの向きが逆になると、影が反対に動きます。 照明を 4 方向に動かしながら、1 回ずつ確認してください。

  1. 光源を顔の左に置きます。右から暗くなるはずです。
  2. 光源を顔の右に置きます。左から暗くなるはずです。
  3. 光源を上に上げます。顎の下から暗くなるはずです。
  4. 光源を下に下げます。額から暗くなるはずです。

SDFテスト表示をオンにすると、照明を無視してマップ自体を白黒で見られます。 テスト表示チャンネルの Maximum が、4 チャンネルの整列を一度に見せてくれます。

よく触る値​

インスペクターのラベル何が変わるか推奨の開始値上げると / 下げると
境界の柔らかさ明部と影が切り替わる幅既定値のまま(0.04)上げると柔らかく、下げすぎると圧縮ノイズが見えます
境界オフセット影が始まる時点既定値のまま(0)上げると早く暗くなり、下げると遅く暗くなります
左右の影響左右の照明に反応する量既定値のまま(1)0 だと左右の変化がなくなります
上下の影響上下の照明に反応する量既定値のまま(1)単一チャンネル形式では使われません
SDF影の量SDF の暗い領域の最終的な強度既定値のまま(1)0 だと SDF の影が隠れます
共通横スケールマップの横方向の大きさ既定値のまま(0.5)目と鼻の左右の幅を合わせるときに使います
SDFマスク強度耳・後頭部を除外する度合い既定値のまま(1)0 だとマスクを無視します

よくある問題​

左右が逆に動きます​

Packed RGBA の R と G の配置を確認してください。R が左、G が右です。 **顔の正面方向(オブジェクト空間)**がアバターと合っているかも確認してください。

タイリングのように同じ顔が繰り返されます​

マップテクスチャの Wrap Mode が Repeat です。 インポート設定で Clamp に変えてください。

UV7 を選んだら座標が崩れました​

同じ Renderer の UV7 は 1 つしか使えません。 顔 SDF が UV7 を使うと、顔ノーマルのベイクはその Renderer を飛ばします。 以前のデータが残っている場合は、MingToon マネージャーのベイク顔ノーマルを解除を実行してください。

もっと詳しく​