楽しいVRoid VRMアバター導入手順 DOORNTT ( DOOR™ ) 編
前文
2022/08/24更新・DOOR NTTがVRM対応したため上記の記事を書きました。
バーチャルクラフ特区に入稿を済ませたREIRO_MCno151は、自作アバターの導入に勤しんでいました。
この度アバターの導入がうまくいきましたので、こうしてnoteに残しています。
このページはVRoid VRMユーザー向けに書いていますが、ほとんどBlender上の作業なのでFBXのアバターファイルにも応用できるはずです。
バーチャルクラフ特区について
DOORとは?
正しくは「DOOR™」ですが、「™」が環境依存文字なので便宜上「DOOR NTT」と表記しています。
内容はここのサイトを参考にしています。
あらかじめ用意するもの
blender (2.83推奨。筆者は2.91だが特に支障はなかった)
3Dモデルのアバター(ここではVRoid VRMモデルを想定)
テクスチャを編集できるペイントソフト
DOOR NTTのアバター制限(バーチャルクラフ特区出展者向けサイト下部、クラフ特区注意事項より引用。スマホからも入場できる仕様だから厳しめ)
VRoidでVRMを出力
後でマテリアルを統合してテクスチャをアトラス化したあとのUV再配置をしやすくするため、ここではマテリアルを8個にして出力しています。
使用アバターはMC_replicant 月縫兎翅 LightCustom。改変したりVRSNSに着て行ったりしているVRMアバターです。
Blenderにアドオンを入れる
VRM addon for blender(旧VRM IMPORTER for Blender)、cats blender plugin、material combinerを加えます。
download add-on とか download here とか、Download an addonと書かれている部分をクリックしてDL。
元となるボーン構造のファイルを入手する
ここからAvatarBot_base_for_export.blendをダウンロードしましょう。
(jyukoさんが紹介していたものですね。DOOR NTTはMozilla Hubsベースなので流用できます。)
DLしたblendファイルを開く
ロボットのアバターが出てきます。
編集モードでメッシュを全選択「Aキー」してボーンだけにしましょう。
VRMをインポート
各VRMの規約に同意してインポートしてください。
GLBファイル化する際にVRMメタデータ(権利情報、使用許諾、再配布可かどうかの情報)が失われるので注意。
cats blender pluginで簡単削減
右側に仕舞われているタブを開き、「モデル修正」した後「デシメーション」でポリゴン数を減らしましょう。
「良い」で70000、「優れた」で32000、「Quest」で5000に設定されます。
画像では8000にしていますが、10000以下なら良いです。「Quick Decimation」で削減実行します。
マテリアルも減らします。一つまで。
最適化より「アトラス」を選び、Update Material Listで全マテリアルを表示選択してSave Atlas to..でマテリアルを一つにします。
テクスチャ調整
アトラス化したテクスチャが出てきますが、これは使いません。
BlenderにVRMファイルをインポートした時点でテクスチャファイルが作成されています。
ので、そこから体と顔のテクスチャを抜き出し組み合わせた後、解像度72dpi、サイズを1024*1024に変更して上書きpng保存します。
(VRoidのマテリアル数を圧縮してVRMエクスポートすると、体のテクスチャがL字に配置されるので空いた場所に顔テクスチャを配置すればよいので大変楽ですね。)
2022/07/10追記:VRoidStudio正式版ですとVRoid内マテリアル圧縮方法が変更され、正方形に配置されるようになっています。
UV調整
マテリアルが一つになりましたが、UVは顔と体のものが重なりおかしくなっているはずです。
タブをUV editingに変更し、モデルを全選択してから顔のUVだけを部分選択(Lキー)してを合わせます。
肩のポリゴンメッシュを消す
DOOR NTTではアバターはブラウザ時には胴体のみ、VR時には両手付きで表示されます。
IK(手と胴体の位置関係を計算していい感じに手首・肘・肩を回転させる構造)が無いらしく、そのあたりが表現できないので削ってしまいましょう。
適当な箇所のメッシュを削除し、穴を辺ループ選択して面で塞ぎ、三角化。
アバター位置・スケールを調整
Vroidアバターのメッシュを「腰が原点にあたるように」調整しましょう。
でないとアバターが浮いてしまうようです。
切り離した両手はそれぞれの手のボーンに合わせて移動。
アバター自体の高さは1.7m(デフォルトアバターのサイズ)に拡大。
ボーンは「head」が首元に来るようにしてください。
ボーンとメッシュをペアレント化する
オブジェクトモードで「メッシュ」「ボーン」の順に選択し、
「オブジェクト」から「ペアレント」より「自動のウェイトで」を選びます。
マテリアル切り替え
DOOR NTTではVRM/mtoonを表示できません(左がVRM/mtoon、右がプリンシブルBSDF)。
そのため、プリンシブルBSDFというマテリアルに変更します。
サーフェスをプリンシブルBSDFに変更し、ベースカラーに先程作成したテクスチャを割り当てます。
shadingタブに移動して、シェーダーノードを以下のように変更します。要らないものは消してしまいましょう。
ウェイト調整
ペアレント化した際に「自動のウェイトで」を選択したのでおおまかにウェイトがついていると思います。このウェイトを振り直します。
「ウェイトペイント」に変更した後、
頭部を「head」
右目に「right eye」左目に「left eye」(無くてもよい)
胴体を「spine」
腰から下全部を「hip」
右手に「right hand」
左手に「left hand」
に全振りします。
また、「neck」のウェイトは完全に0にしましょう。
(前面のみ,のチェックを外して内側までウェイトを振ったり、Xミラーで左右対称にウェイト振りできます。)
GLBエクスポート
メッシュとボーンを選択し、エクスポートからglTF 2.0(glb./gltf.)を選択。
フォーマットをglTFバイナリ(.glb)にして出力します。
書き出す際にアニメーションの「常にアニメーションをサンプリング」のチェックを外しましょう。
DOOR NTTにアップロード
DOOR NTTにログインして「アバターを作成」から ↑glbファイル よりアップロード。
おかしいところがないか確認し、修正を加えましょう。
(メタリックなのはマテリアルの設定を変更したからですね。)
注意点
blenderでエクスポートしたGLBファイルをunityに入れると表示がおかしくなることについて。
マテリアル数やテクスチャ枚数を確認したり別媒体でGLBファイルを使用したい、なんてことがあるかもしれません(例えば、バーチャルキャストの背景モデルはGLBファイルを使用していますね)。
その場合、blenderではGLBではなくVRMやFBXでエクスポートし、UniVRMを導入したUnityに入れてから「VRM」タブの「UniGLTF」からエクスポートしましょう。
宣伝
私、REIRO_MCno151も出展予定のバーチャルクラフ特区
4/24-25 開催予定。このアバター含めたVRMファイルの販売を予定しています。
boothにリンクを繋いでいるのでそちらから購入可能です。
この記事が気に入ったらサポートをしてみませんか?