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

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

CC4 フォトリアル系 CC3+ Base 人物モデルを VRM アバターに変換(成功)

これまでに一人月位を無駄にしたが、ついに Charater Creator 4 の最高品質人物モデル CC3+ Base での VRM アバター出力に成功した。所詮 PBR シェーダー品質だけども。ほとんどの手順は ActorBUILD の場合と同様だが、無駄だと分かった手順は省いている。

頭部撮影プラグイン Headshot のプロ PRO モードで顔写真からキャラクター素体モデルを生成

AI に生成させた適当な顔写真から、髪の毛ナシ*1で頭部を生成させた。ボクサーパンツ一丁の男性キャラが生成された。

HEADSHOT: PRO モードにて顔面を生成

ビューの表示を見やすいように調整

やや暗くて見づらいので、ステージ Stage のライティングを変更しておく。

ライティングを適用

Content : All > Stage > Light Room > Average

姿勢をTポーズに変更

見かけ上の姿勢をTポーズに変更する。

  • CC3+ Base のレストポーズ Bind Pose はあくまでも Aポーズであり、レストポーズを Tポーズにすることはできない。
  • しかし Tポーズにしておき現在のポーズで出力するなどすれば、見かけ上は Tポーズで Blender に出力することはできる。

Animation Player : Motion - Pose - T-Pose

Blender のオブジェクト Object モードではメッシュが Tポーズに見えても、編集 Edit モードにするとたちまち Aポーズに戻ってしまうのには困った。

これについては、公式のフォーラムに苦情が投稿されており回答されていた。

モディファイアープロパティにあるボタンを押せば、アーマチュアの姿勢(Tポーズ)に見かけ上、合わせるて表示させることができるようだ。

モディファイアープロパティ : ケージで、編集モードをオン

モデルの実寸を表示させる

欧米人風の大男・大女が自動生成されているが、背丈を実寸に合わせたい場合、実寸 Object Height をビューに表示させておくと調整しやすい。

Edit - Preference > Display - Info にチェックを入れる

髪群 HairGroup を適用する

古典的な短髪 Content : All > Hair > HairGroup > Hair > Classic Short  を載せた。

これは最新の髪モデル仕様 Smart Hair で作られており、CC4 上では最新の Digital Human Shader でレンダリングされる。

モデルの寸法を調整する

髪を載せると身長が少し変化する。

先ほど表示させた Object Height を参照しながら、電卓で割り算して Scale X の比率を変更し、実寸に合わせる。

Modify : Proportion Bone Type : Full Body, Lock Scale XYZ

衣服・靴を着脱し、衣服で見えなくなる素体メッシュ部分は隠す

衣服・靴に覆われる素体メッシュについては、メッシュ頂点だけは残し、面 Face は削除する手口で、見かけ上のメッシュはみだしを防ぐことが有効となる。

ボクサーパンツを脱がす

上着 Shirts とズボン Pants で隠れてしまうので、余計なメッシュ。必要ない。

Scene : Character > Boxers の行を選択して [DEL] 押下して削除

上着 Shirts を着せる

とりあえず、3色のTシャツでも着せておく。

Content : All > Cloth> Shirts > Basic T-Shirts_A1

ズボン Pants  を穿かせる

デニムのズボン Content : All > Cloth> Pants > Slim Jeans_A3 を穿かせた。

靴 Shoes を履かせる

派手な赤いスニーカー Content : All > Cloth> Shoes > Canvas Shoes_A3 を履かせた。

手動でメッシュを隠す

自動的にメッシュを隠す Auto Hide Mesh を使った場合、中途半端になりがちだ。

Scene : Character > 衣服・靴の各行を選択してぎょろ目ボタンをクリックし、衣服・靴の表示を見かけ上消すと素体のメッシュが透明にされていることが分かる。

自動にした場合、素体のメッシュが中途半端に透明にされている

但し自動だと中途半端なので、結局のところ最初から手動で隠していった方がマシだったりする。

  • 衣服/靴がズレている場合には、着衣の当てはめ Conform を行う
    衣服が重なった状態で何度も当てはめをやると余計にズレるので、もう一度着せ直す/履かせ直すハメになることもけっこう多い。

    Modify - Conform : Calculate Collision
  • 手動で詳細に隠したいメッシュの身体部位を指定する方法を使う

    Modify - Hide Body Mesh Tool

    右のダミー人形の身体部位をクリックすると、その部位のメッシュは隠される。

    基本 Basic と応用 Advanced の2つのモードがあり、応用の方が小まめな指定ができるようになっている。

    隠されるといっても、メッシュが削除されるわけではない。見かけ上、透明になるだけである。

    Modify - Hide Body Mesh Tool : Basic の胴体部分をクリック

    Scene : Character > Basic T-shirts の行を選択してぎょろ目ボタンをクリックすると、メッシュが非表示になっていることが分かる。

    Scene : Character > Basic T-shirts の行を選択してぎょろ目ボタンをクリック

    もう一度、フルボディ体操をさせてみたが、今度は問題なさそうだ。
    しかし見かけ上、透明になっているだけのようなので、この後に Blender にインポートした後や、VRM に出力した後に事故になるかもしれない。

  • 手首/足首/首元ではギリギリを攻めないこと
    アニメーションしたさいに穴が開いたり、透けたりして、素体メッシュが無いことがバレることがある。

フルボディ体操でテスト

衣服・靴、髪群の適用まで終わったので、おかしな点がないか、アニメーションで目視確認テストを行う。

Blender 向けに FBX で出力する

特に異状がないなら、CC4 のプロジェクトファイルを一旦保存しておき、Blender 向けに出力する。

チュートリアル動画によると、

  • テクスチャ埋め込み Embed Textures はオフにすべき
  • このダイアログ最下部にある、隠れた面の削除 Delete Hidden Faces というチェックボックスなどをオンにすべき

FBX > Clothed Character で Export FBX を起動し Blender 向けに出力

Blender へ確実に見かけ上 Tポーズで出力したい場合には、

  • Tポーズにした状態で現在の姿勢 Current Pose を選択

すること。

Blender へ FBX のモデルをインポート

チュートリアル動画によると、Blender の Import メニューではなく、Blender Auto Setup Add-on にある Import Characer を使うことが望ましい。

CC/iC Pipeline - Import Character

Blender 標準の FBX インポート機能だとトラブル続出らしいので、公式サイトやチュートリアルで紹介されている Blender 自動設定アドオン を GitHub からダウンロードし、Blender にインストールして常にそれを使用すべき。

youtube.com

インポートした直後に、先ほどエクスポート時に設定したとおりに出力されていることは確認しておく

Blender と CC4 のプロジェクトファイルを両方とも一旦保存しておく。

  • Tポーズでインポートされていることを確認
  • 服を非表示にして隠れた面が削除されていることを確認

基本マテリアルの再構築 Rebuild Basic Materials を行い、デジタルヒューマンシェーダーをPBRシェーダーに変更する

CC4 ご自慢の Digital Human Shader では、アルファ(半透明/透明)をふんだんに使っており高品質だが、残念ながら VRM に出力する場合には、普通の PBR シェーダーに格下げしないと、VRM アバターへの出力がうまくいかないことが多い。

チュートリアル動画によれば、「詳細設定」になっているとシェーダーが Digital Human Shader になり、「基本」にするとシェーダーが PBR になるようだった。

youtu.be

マテリアル再構築 Rebuild Materials で「基本」を選択して、基本マテリアル再構築 Rebuild Basic Materials をクリックする。

CC/iC Pipeline - Character Build Settings > Rebuild Materials

シェーダーが PBR になり簡単になる

シェーダー Shading のノード構成が簡単になり、Digital Human Shader は存在せず、PBR シェーダーが出力するような構成になれば成功だ。

Shading ワークスペース : 髪のサーフェス Pbr Shader の初期状態

マテリアルの透明(アルファ)設定は手作業で変更する

基本マテリアル再構築を行うと、マテリアルのブレンドモード/影のモードが一律、不透明に統一される。その結果、Blender での表示においても、本来は透明であるべき身体部位も透明でなくなり、例えば睫毛や頭髪が黒い板ポリになったりする。

別のチュートリアル動画では、睫毛を不透明からアルファハッシュに変更し直していたので、同じように設定を変更する。

Blender のプロジェクトを一旦保存、マテリアルを修正していく

この後、Blender 側の設定を試行錯誤する予定なので、やり直しに備えて、インポート直後の状態を保存しておく。

マテリアルの修正手順はチュートリアル動画に解説ががあるが、Blender Auto Setup Add-ons のマテリアル設定と、Blender 標準のマテリアルプロパティが連動しているので、両方を見比べながら地道に1つずつ直していく。

オブジェクトモードに変更し、各メッシュのマテリアルプロパティの設定を確認

マテリアルを直す作業はけっこう面倒くさいので、作業しやすいように準備しておく。

Blender ではマテリアルプロパティ > 設定 > ブレンドモード/影のモードで確認できるが、メッシュに複数のマテリアルが割り当てられている場合には、マテリアルプロパティの一番上に一覧表示されるため、うっかり見落とす可能性がある。

マテリアルプロパティ > 設定 > ブレンドモード/影のモード

Blender Auto Setup Add-on の CC/iC Pipeline の方でも Character Build Setting 配下の Object & Material Setup で同じ情報を分かりやすく確認できるので、そちらも併用する方がよい。チュートリアル動画でも併用が前提となっている。

CC/iC Pipeline - Character Build Setting - Object & Material Setup

初期状態だとマテリアルの表示が一行分になっているので、8つの点々があるボタンを下にドラッグして縦幅を拡げておくと分かりやすい。

縦幅を拡げると分かりやすい

試行錯誤にあたっては、基本マテリアル再構築を行う前のデジタルヒューマンシェーダーでの設定値が参考になるので、その状態を全て調査・記録したものを以下に示す。

マテリアルが1つしか割り当てられていないメッシュ

アウトライナーでメッシュをクリックして切り替えながら、マテリアルプロパティ > 設定 > ブレンドモード/影のモードの値を確認した。

  • 上着 Basic_T_shirts、靴 Canvas_shoes、ズボン Slim_Jeans の3つについては、すべて両方とも不透明となっていた。
  • 舌 CC_Game_Tongue は両方ともアルファハッシュとなっていた
マテリアルが複数割り当てられているメッシュ
  • 歯 CC_Base_Teeth は、2つマテリアルが割り当てられていたが、いずれも不透明となっていた。
  • 目 CC_Base_Eye は、4つマテリアルが割り当てられている。
    白目 Eye はブレンドモードはアルファブレンド、影のモードは不透明、背面を表示オン。
    黒目(角膜)Cornea はアルファブレンド、アルファクリップ、裏面を非表示/背面を表示の両方ともオン。

    3Dビューポートでの眼球の表示
  • 身体 CC_Game_Body は6つマテリアルが割り当てられている。
    睫毛 Eyelash のみ アルファハッシュ、アルファハッシュ。
    それ以外はアルファブレンド、不透明、背面を表示オン。
  • 髪 Classic_short  は2つマテリアルが割り当てられており、共にアルファハッシュ、アルファハッシュ。

かなり色々なパターンで使い分けがされており、ややこしい。だから事故る。

スケルトンリグのマッピングなど VRM 出力向けの設定を行う

かつての愚かな自分は、既存の CC3 Base+ のスケルトンリグを流用して、VRMアバターのボーンにマッピングが出来ることを知らなかったので、新たなスケルトンリグを生成して、手動で位置合わせをしていた。

しかしVRM アドオンを使って、VRM 必須/オプションボーンへマッピングする手順で十分である。

tombi-aburage.hatenablog.jp

目線ボーンについては既存の CC3 Base+ のボーンは使わず、自作する

VRM 0.0 では問題なかったのだが、VRM 1.1 では眼球が反転してしまい、黒目(瞳)が見かけ上、表示されないトラブルになった。

ひと手間かかってしまうが、目線ボーンについてはボーンを手作業で追加する必要がある。

tombi-aburage.hatenablog.jp

ボーンのマッピング

VRM 0.0 では、手作業でマッピングする必要がある。VRM 1.1 では、自動的にマッピングするボタンがある。

  • 必須ボーンと、視線ボーン・両肩・足首・手指のオプションボーンを指定する
  • 顎の付け根 Jawroot は指定しない
    指定すると口が開いた状態になる。口を閉じた姿勢を中立 Neutral にするなど、ブレンドシェイププロキシを設定するなら問題ないと思うが...

ブレンドシェイププロキシ

喜怒哀楽とかリップシンクの表情モーフ(頂点モーフ)を、ブレンドシェイプキーの組み合わせで定義することができる。

  • 左右まばたきについては、簡単なので、設定しておく

youtube.com

VMagicMirror で使える表情は10種類以上あるが、どう組み合わせるとどんな表情になるかを CC4 側であらかじめ調査しておけば、設定作業自体は力技で行えるはずなので、根性で全部やってしまってもいいかもしれない。

但し、Jaw_Open や V_Open などのシェイプキーは、頂点の変形でなく、顎の付け根 Jawroot ボーンを制御するドライバになっているので、顎のボーンを移行しない限り、中途半端な表情にとどまってしまうようだ。

youtube.com

 

歯を開かせたり、舌を引っ込ませたりする程度なら、Jaw_Open や V_Open などのシェイプキーを適用した結果の状態を、別のシェイプキーで保存して、歯と舌のメッシュに割り当てれば、ある程度はカバーできるが本質的な解決とはいえない。

youtube.com

どうやっても正しく出力できないメッシュは非表示とする

目玉の陰り CC_Base_EyeOcclusion のメッシュは、あらゆる透明(アルファ)の設定を試してみたが、どうしても正しく出力できなかった。もう諦める。

  • 目玉の陰り CC_Base_EyeOcclusion のメッシュは、VRM に出力すると、どうやっても、眼球が白目になるようだった。
  • 今のところ解決法が発見できておらず、出力されてなくても違いがあまりなく影響ないので、非表示にしておき、出力させないようにする

ここらでも一旦、Blender のプロジェクトファイルを保存しておく。

最期に VMagicMirror で動作確認を行う

人物モデルのメッシュ、まばたきのブレンドシェイププロキシ、両方とも特に問題なく動作した。

ただしファイルサイズは150MB近いため、VRoid Hub に登録することはできない。
サイズを小さくするには、CC4 から Blender に出力する前に、最適化&軽量化を行っておく必要がありそうだ。

 

 

 

*1:PROモードは髪を生成できない