VRChat用のアバターを一からセットアップする際、結局どうするのが正解かわからなくなりがちなのが、この2つの設定です。
Blend Shape Normalsは、Blenderなどの3Dモデリングソフトで法線をいじったものをUnity・VRChat上に適切に反映させるための設定。Anchor Override周りは、VRChat上でライトを受けた際に基準にする位置の設定です。
この2つは、設定項目の内容自体が難解なため、調べても結局最適解は何なのかを見失いがちなので、手元のメモを見返して現状の環境での最適解を整理した結果をこの記事にまとめておきます。
Blend Shape Normals 最適設定編
Blend Shape Normalsは、結論としては、momoma/ナルさんがFanbox記事にまとめてくれている「アバターの最適化チェックリスト」の記事が端的に最適解を書いてくれていました。
・Legacy Blend Shape Normals : チェックを入れない。Warningが出たりするため避ける。そもそもLegacyなので避ける
・Blend Shape Normals : Noneにする。これで容量の膨大化や法線の破綻を防げる
https://momoma.fanbox.cc/posts/1061159
この設定でどういう挙動になるのか、別の設定だとどういう意味になるのかは、みそこさんとがとーしょこらさんがドキュメントを参照しながら読み解いていたので、参考としてそのスレッドのリンクを載せておきます。
VRChatで利用するUnityが2018になり、その際の設定変更に起因した話でしたが、Blend Shape NormalsをCalculateにすると実行時に法線の計算に使うためのデータが含まれるため、アバターデータが肥大化してしまう問題があり、Legacy Blend Shape Normalsにチェックを入れることで、その問題自体は回避できましたが、こちらはUnityとしては非推奨の過去の方法(ただし、VRChat SDKのBuilder画面でAuto fixをクリックすると、過去との互換性のためか、こちらの方法で対処されてしまう)ということで、複数の方法が入り乱れてしまっていたようです。
【追記】みそこさんに設定比較をした際のツイートを紹介してもらいました。Calculateは、法線がきれいに出せるけど、VRChatで使うには重すぎるということがあるとのことです。あとは、このスレッドの中で参照されているフレアさんの記事には、基本はBlend Shape NormalsはNoneがいいけど、体系変更のS体形変更シェイプキーにはNormalsとBlend Shape NormalsをともにImportにするときれいに出るというテクニックがあるようです。
ちなみに、元のナルさんの記事は、これを含んだアバターをセットアップする上でのチェックリストになっているので、FBXからアバターをセットアップする人はチェックして損はないと思います。
Anchor Override周り最適設定編
「Anchor Overrideを設定したのに、顔だけ暗くなる!」みたいなツイートをたまに見かけます。
ライティングをすべて均一に見せるためには、実はこれだけでは不十分で、アバターの設定によっては場所によってライトの受け方や人からの見え方が違ってしまいます。すなおさんのこちらのツイートがこの問題で対応すべき設定項目リストになっています。
毎回この設定を忘れずにするのは大変だと思ったみなさん! なんと、昨年末にフレアさんからこの設定を自動でツールを出してくれていて、これを使えば、必要な設定が一度にできるようになりました。神ツールですね。
この現象については、フレアさんが詳細な解説記事も書いてくれています。
詳細気になる方は、この記事まで読めば完璧ですね!
まとめ
毎回FBXからモデルをインポートして、アバターをセットアップするたびに何が正しいか悩んでしまうこの設定ですが、現状の最適解を把握しておけば、それをやるだけで終わりです!(それでもややこしいことには変わりませんが)
この記事は、これだけ見れば十分な内容を目指しているので、もし誤解やさらなる最適解があれば、随時直していこうと思うので、どしどしツッコミよろしくお願いします!