そういう、モデルなんです。

ビジネスモデル、3Dモデル、設計図、模型などの現状と動向を考察、関連書籍の紹介

CC4 フォトリアル系 ActorBUILD 人物モデルを VRM アバターに変換(失敗)

CC4 のフォトリアル系人物モデルを VRM アバターに変換しようとすると、理科室の人体解剖モデルのように透明になってしまうという謎の事象が発生していた。

睫毛・頭皮・頭髪だけをアルファハッシュに設定して、その他は不透明 Opaque に設定することで透明問題は解決した。

しかし頭髪は標準の髪群の1つである古典的な短髪 Classic short を被せており、アルファハッシュ Hashed に設定しているのにもかかわらず、うまく透明にならなかった。

今回は頭部撮影 Headshot プラグインで生成させた CC3+ Base キャラクターを一旦 ActorBUILD に軽量&最適化して ActorBUILD モデルに変更してから Blender でインポートし、VRM 出力する方法で試した。

マテリアルを統合してはいけない

睫毛・頭皮・頭髪にアルファハッシュ Hashed、それ以外に不透明 Opaque を設定する必要があるので、Blender 向け FBX エクスポートを行うさいに instaLOD は使用せず、マテリアルは全て個別に出力させる。

InstaLOD でのマテリアル統合は行わない

睫毛・頭皮・頭髪のみアルファハッシュとする

すべてのテクスチャを一つ一つ確認し、睫毛・頭皮・頭髪にアルファハッシュ、それ以外に不透明を設定する。

Blender : 3Dビューポートでの表示は正常

頭髪はアルファハッシュに設定しても透明にならなかった

頭皮メッシュが頭に密着しておらず、浮いているように見える。

なぜか透明にならず、イカの頭のように半透明

オブジェクトモードと編集モードで位置がズレているが大丈夫か

Blender で頭髪メッシュを選択してオブジェクトモードから編集モードに切り替えてメッシュを調べてみた。すると、頭髪メッシュの位置がオブジェクトモードの時と、編集モードの時でズレていた。

Blender のモードを変更すると位置がズレる

当初、頭髪がズレていると思いこんでしまったが、さらによく調べてみると、ズレているのは頭髪だけではなく、身体や靴など全てのメッシュだった。

他のモデルでも常にこのズレはあるので、これ自体は普通であるらしい

このモデルに固有の事象なのか、どのモデルでも発生するのか調べてみた。
別のモデルでも常にズレていたが、VRM 出力には影響はなかったので、この現象は気にしないでもよさそうだ。

別のモデルで同じ髪群 Classic Short が出力できていた事例と比較

先日作成した別の ActorBUILD 人物モデルでは、同じ髪群が特に問題なく出力されていたので比較してみた。

同じ髪型メッシュがうまく出力できている事例もある

シェーダーの構成に相違があるようだ

両方とも同じように

  • Headshot プラグインをプロ PRO モードで使って CC3+ Base モデルを生成
  • 服を着せたり髪を被せたりして人物モデルを制作
  • その後で ActorBUILD に変換
  • マテリアルは統合せず Blender 向けに FBX 出力

という作業をしていたつもりだったのだが、

  • なぜか Blender のシェーダー Shading ノードの構成が両者でかなり違っている
  • 遡って CC4 の CC3+ Base 時点でのシェーダーを確認してみると、うまくいっている事例の方では SSS というシェーダーが使われており、うまくいっていない今回の方では Digital Human Shader  というシェーダーが使われている
  • 真似したいのだが、SSS というシェーダーを指定する方法が見当たらない
  • actorBUILD 変換後の髪 Hair のシェーダーが片や Digital Human Hair、片や PBR となっており同じになっていない

など、どこでどう生じたのか不明な微妙な差異があった。

どうやら今回、何か手順が違っており、完全に同じ状態を再現できてはいないようだ。

後日、シェーダーの構成に相違の原因を特定した

しばらく差異の原因がつかめていなかったが、チュートリアル動画を見返した結果、相違の原因を特定することができた。

tombi-aburage.hatenablog.jp

うまくいったモデルでは、試行錯誤している最中に、無意識に正しい設定を選んでいたらしい。