上の画像を見てください。
大きい葉っぱは裏側が見えているのに、小さい葉っぱは命を刈り取る形をして見えますね。
VRCで見かけるアバターやアクセサリーには、このように裏側が見えないことが良くあります。「スカートやロングヘアの内側が透明に見える」という経験がある人も多いかと思います。
この記事は、その現象をなんとか解決しようとして発見した、私なりの解決策を紹介するものです。また、ある程度unityとblenderの知識・操作感を把握している人向けの記事になります(裏側透明問題を解決したいという段階に来てる人は基本的なことはできると思いますので)。
まずは、問題の3Dモデルをblenderに放り込んで状態を見てみましょう。
今回は上記の葉っぱの傘をモデルケースとしてみていきます。
見えるかな?これ、メッシュが一層しかないんですよね。
より分かりやすいように、面の裏表を表示させてみます。(オーバーレイ→面の向き にチェック)
青が表、赤が裏です。
裏側から見ると真っ赤になっています。
通常3Dモデルは青いほうしか描画されないので、赤くなっている方向から見ると透明に見えます。
「シェーダーによっては見えるんだけど・・・」というケースは、シェーダーの「カリングoff」という機能を使って、テクスチャを裏側に透けるようにしているんだと思います。詳しくはカリングoffについて調べてみてね。
じゃあこれをどうするのかというと、裏側からも青い面が見えるようにしてあげればいいわけです。私のやり方は
1 裏側を描画したい面を選択
2 メッシュを複製
3 位置を調整
3 面の裏表を反転
4 (場合によって)隙間を埋めるなど微調整
やってることは非常に単純というか原始的というかアナログです。なにか素晴らしい技術を期待していた人、ごめんなさい。
では実際の手順を見ていきましょう。
1 面を選択します。(shift押しながら選択すると複数選択)
2 メッシュを複製します(複製したらマウスを動かさずに左クリックorEnterキー)。
3 位置を調整します(G+XとかYとかZ)。葉っぱの裏を描画したいので、少しだけ下にずらします。スカートの裏側に移動させたい場合などはスケールも少しだけ調整する必要があるかもしれません(Sキー)。
4 面を反転させます。
5 裏側も青くなりました。(気になる人は隙間を埋めるなどしましょう)
UVマップは複製元と同一(たぶん)なので適用されるテクスチャは元の部分と同じになります。スカートの裏側など見た目も変えたい場合は、まあ、別途調べてください…。
以上、裏側透明問題を力技で解決する解説でした。正直PCアバターはシェーダーで解決できるので、Quest対応しない場合はあまり関係ないかもしれません。ただ、PCアバターでもセーフティの関係で描画されないことがあるようなので、知ってて損はないかも?