見出し画像

1日で作る!VRChatアバター単眼化② ~表情作成からUnityでアップロード~

1. はじめに

こんにちは。ピアスバキバキゴスロリ単眼娘(@K4N1_VRC)と申します。

前回の記事の続きです.

この記事では
・シェイプキーの作成(流用)
・ウェイトペイント,諸々の微調整
・FBXの出力
・UnityでFBXデータの差し替え
・完成
といった形で進めていきます

2. シェイプキー(表情)作成,流用

前回はここまでやった

アバターの表情はBlenderのシェイプキーというものを使用して作られています.
早速シェイプキーを編集していきます.
編集モードで緑の逆三角形を選択し,たくさん用意されているシェイプキーを選択します.

試しにdummy1というシェイプキーを選択したところ

早速ぶっこわれてますね.これはここまで「Basis」(標準の状態)で編集した箇所が他のシェイプキーに反映されていないためです.

3. シェイプキーを丸ごとコピーする場合

 このdummy1はおそらく使われないシェイプキーのようが気がするので,「Basis」のシェイプキーを丸ごとコピーします.

「A」で全部選択し,「頂点」→「シェイプキーからブレンド」をクリックします.

「頂点」→「シェイプキーからブレンド」

左側に出てきた「シェイプキーからブレンド」のメニューでシェイプに「Basis」を選択し,ブレンドを「1.000」,追加にチェックを外すとこのように「Basis」のシェイプが丸ごとコピーされます.

「Basis」のシェイプがコピーされた


4. シェイプキーの一部コピーする場合

口周りのシェイプキーですが,元のシェイプキーと修正した目のシェイプキーを混ぜることで手っ取り早く作成します.

まず例として「Mouth_Open」のシェイプキーを選択します.
メッシュを透過表示し,正面から口の周りをいい感じに選択します.

口のシェイプキー(修正前)

上部のメニューから「選択」→「反転」を選んで口以外のメッシュが全て選択された状態にします.
その状態から「頂点」→「シェイプキーからブレンド」をクリックします.
そして上の手順と同じくブレンドするシェイプキーを選択すると,口のシェイプキーを維持しつつ手を加えた部分のシェイプキーが混ざっていい感じになります

シェイプキーをブレンドした結果


5. シェイプキーの頂点を弄くり回す場合

まばたきのシェイプキーなどは自力で作るしかありません.
また頂点を弄くり回すことになりますが頑張りましょう

これがまばたきのシェイプキー(未修正)の状態です.
ここから穴をふさいだりとやることが多そうですが,まつ毛を流用したことで意外とどうにかなりそうな気がしませんか?
まつ毛を自分で作った人はかなり大変だと思いますが頑張ってください

まつ毛がいい感じ移動しているのでこれを使わない手はない

とりあえず目と眉毛をこれまでのやり方であるべき場所に戻します

目と眉毛を他のシェイプキーからブレンド

その後は思い切ってめちゃめちゃ頂点を引き伸ばしたりしていい感じにやります
この記事と同じモデルで作っている場合,こちらも顔のメッシュが微妙にズレていて対称に編集出来ない可能性もあります.(特にそのままのまつ毛とか)その際は前の記事と同じように微調整してください.

そして出来たものがこちらです!!!!!!!!!!!!!!!!!!!
本当は眼球を覆うように膨らみを持たせて作りたかったのですが,面倒なのでまっすぐ下におろしてはみ出てしまう眼球は後ろに動かしてます...

スヤァ…

こんな感じで全てのシェイプキーを気合で修正します.
面倒だったら全部同じシェイプキーをブレンドしてしまうのもアリといえばアリですが,いいアバターにはたくさんシェイプキーがあると思うので頑張ってくださいとしか言えない...

ジト目とかは瞬きのシェイプキーを0.6くらいでブレンドするとそれっぽくなるのでそんな感じで労力を極力減らすようにしましょう

片目だけ瞑っているシェイプキーなどはありますが,ここも何かしらシェイプキーを設定しておきましょう
面倒なので全部似たようなシェイプキーにしちゃってますが...

ここまでくれば顔のモデリングは終わりです!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

6.シェイプキーおまけ 目の特殊な表情のやつとか

完全に存在を忘れていたのですが,目をハートにしたり照れ顔の時に出すやつとかが残っていました.

残ってるやつら

これらに関しても,初期状態である「Basis」のシェイプでいい感じに縮めてしまっておきましょう.

シェイプキー「Basis」の時に格納してやる

そして任意のシェイプキーの時に引っ張りだしてやれば完了です

ハートのテクスチャが付いたメッシュをいい感じに配置


7.オブジェクトの結合(統合)

本記事では最初に頭部を切り離しているので結合します.
他のアバターで頭とその他パーツが元々別れている場合は飛ばしてください.
要は手を加える前の元のモデルの構造に戻そうってワケです.

オブジェクトモードで結合するオブジェクトを選びます.
この時選択する順番は【くっつけたいオブジェクト】→【くっつける先のオブジェクト】の順で行います.
今回は顔(Body.001)→全身(Body)の順に選択します
そして「オブジェクト」→「統合」を押すと一体化します.
また,Ctrl+Jでも結合出来ます

オブジェクトの統合
くっついた

8.ウェイトペイント

アーマチュア(Armature)にあるボーンに追従してメッシュが動くことでアバターは動きを実現しています.
その動きの量を決めるのがウェイトペイントです.
髪を揺らす時とかは結構気合入れてやる箇所ですが,今回は目を動かすだけなのでサクッとやります.

その前にポーズを動かすポーズモードを軽く説明します
人のマーク(画像では"Armature")となっているところの目アイコンを押してボーンを表示させます.
オブジェクトモードでボーンを選択後,
左側上でポーズモードを選択するとポーズを弄れる画面になります.
透過表示にすると見やすいです.

ポーズモードに入った状態

この画面で任意のボーンを選択し,「R」キーでグリグリ動かすことが出来ます.もちろん「R」→「X,Y,Z」で任意の軸に回転可能です.
ポーズを初期状態に戻す場合は,ポーズモードで「A」でボーンを全選択(ボーンが青っぽくなるはず),「ポーズ」→「トランスフォームをクリア」で元に戻せます.

「ポーズ」→「トランスフォームをクリア」

首や胴体のボーンを弄ると分かると思いますが,新しく作った眼球はこの時点では追従しません.

よくある

というわけでウェイトペイントをやっていきます
オブジェクトモードの時に「動かすボーン(ここでは"Armature")」,「ウェイトペイントをするオブジェクト」の順に””Shiftキー””を押しながらクリックします.
こうすることでボーンとオブジェクトが両方選択された状態になります.
そしたら左上のモード選択で「ウェイトペイント」が出てくるのでそれをクリックします.

ウェイトペイントのモードに切り替え

ウェイトペイントモードに入ります
ここで重要なのは,ウェイトペイントは左上の赤く囲った部分を選択するかしないかで選択出来るものが変わるということです.
まず,下の写真のように赤く囲った部分が非選択(青くなっていない)時は「Shift + クリック」でボーンが選択可能です.
ボーンを選択するとそのボーンに関係するウェイトが表示されます.

Headボーンを選択したところ(目はウェイトペイントしていないので青や紫になるはず…)

Shiftを押しながら他のボーンを選択すると,最後にクリックしたボーンのウェイトが表示されます.
Shiftは複数選択も兼ねているため紛らわしいと思ったら「Alt+A」でボーンの全選択解除が出来ます.

今回は上の画像にある通り,「Head」ボーンを選択します.
ここで目玉の上で左クリックしながらドラッグすると文字通りウェイトがペイント出来るのですが,
・細かいところが塗れない
・裏面も塗りづらい
・関係ないところも塗ってしまう
などいいことが無いので,塗る範囲を指定出来るようにします.

ます,ウェイトペイントモードから編集モードに切り替えます.
そして塗りたいメッシュとして,眼球と虹彩の球を選択します.

一旦編集モードで目を選択

編集モードで選択したらウェイトペイントモードに戻ります.
そして赤丸で囲った「頂点で選択」のアイコンをクリックします.
すると,メッシュ上に頂点が表示され,先程選んだ頂点だけが白くなります.
この白い部分がウェイトペイント出来る箇所になります.

ここで気をつけて欲しいのですが,この頂点を表示させている場合,ボーンの選択が出来なくなります.
別のボーンを選択する場合は頂点で選択を一旦オフにすることで選択可能になります.
また,この画面ではボーンの代わりにShift+左クリックで頂点が選択出来ます.間違って余計な頂点も選択しないように気をつけましょう

頂点選択モード

髪の毛とかを塗る時は塗り塗りしたりAlt+トラッグでグラデーションにしたりするのですが,今回は丸ごと塗りつぶします.

周りの肌と同じぶんだけ追従させるため,ウェイトを「1.000」(最大)に設定
頂点が正しく選択されている状態で「Shift + K」を押すと...

はい,ウェイトの塗りつぶし完了です

塗りつぶし完了

オブジェクトモードに戻ってボーンを選択し,ポーズモードで体や首の動きとともに眼球も動けば完了です!


9.単眼のボーン(研究中)

アイトラッキングや各種アニメーションで目が動くようにしてみます.
ただし筆者がいまいち目をグリグリ動かす使い方をしていないため,ベストなやり方かは分かりません

オブジェクトモードでボーン(Armature)を選択し,編集モードに変更します.
片目のボーンを「G」でいい感じの場所に動かします.
いわゆるボーンの"テール"を目の中心かつ後ろのほうに持ってきたんですけどこれでいいんですかね?有識者~~~~~!!!!!

とりあえずボーンを中心に

最終的にこの辺にした

虹彩の後ろあたり

ウェイトペイントもする
上で説明したやり方で0.8くらいで塗りつぶした

塗る

10.その他微調整

顔のモデリングに関してはこれで完了ですが,
前髪が目に入って痛そうなので多少軽減してあげます.

■メッシュを動かす場合
 メリット
  簡単
 デメリット
  元に戻しにくい
  一部を選んで調整とかしようとすると面倒

前髪を「S→Z」で縦に少し潰して...

上に持ち上げたり「R→X」で回転させたら完了

■ボーンを動かしてレストポーズにする場合
 メリット
  操作は簡単
  元に戻しやすい
 デメリット
  ウェイトペイントをちゃんとやる必要がある
  シェイプキーがあるオブジェクトで適用出来ない

やり方はこのへんを参考にしてください.

https://twitter.com/0ne_chan/status/1217388179109494791

今のモデルではシェイプキーがあるのでやりません.
(シェイプキーを維持しながらレストポーズを適用する方法もあるみたいですが...)


11.FBX(モデルデータ)出力

いよいよ完成したモデルデータを出力します.

まず,出力するオブジェクト(余計なものを追加していなければ基本全部)を選択し,「ファイル」→「エクスポート」→「FBX」を選択します

出力するアーマチュア,オブジェクトを選択した状態で
下記の設定にしてFBXをエクスポートします.

.FBXファイルが出力されたらBlenderでの作業はおしまいです!!!!!!!!!!!!!!!!

12.UnityプロジェクトにFBXをインポート

ようやくUnityに取り込んでいきます.

一番最初に作成したUnityプロジェクトの任意の場所に.FBXファイルを入れます
わかりやすいので「Assets」のフォルダにドラッグ&ドロップで投げ込みました 途中で移動させたりすることは無いのでお好みで

赤丸が放り込んだFBXファイル

FBXファイルの設定を変更します.
取り込んだFBXファイルをクリックして「Inspector」の「Model」で下記の設定にします.
Read/Write Enableにチェック,Blend Shape NormalsをNoneにして
右下の「Apply」をクリックします.

続いて同じInspectorの「Rig」をクリックします.
Unityにこれは人型のモデルですって言うために,Animation Typeを「Humanoid」にして「Apply」をクリックします.
すると赤丸で囲った「Configure…」が選択出来るようになるのでクリック

「Configure…」をクリックすると下記の画面になるはずです.
この画面では人型の骨格のどこがどのボーンになるのかを設定します.
基本的はボーンの名前から自動的に割り当ててくれる(アバターの制作者がうまいこと名前を付けている)のですが,「Head」の「Jaw」に変なボーンが割当たっていることが多いです.
その際は右の二重丸◎を押して「None」(無し)を選択します
Noneを選択したら右下にある「Apply」で反映,「Done」でこの設定画面から抜けます.

13.マテリアルの設定

インポートしたFBXファイルをSceneにドラッグ&ドロップします.
多分へんなとこに配置されると思うので,Positionをいい感じにします.
Unityの画面はBlenderより操作しづらいので,モデルを見失ったら左の画面で目的のモデルを選択し,「F」キーを押すと選択したモノにフォーカスされます.
元のモデルと並べるとわかりやすいです.


再びインポートしたFBXファイルを選択し,「Inspector」の「Materials」タブを選択します.
ここで元のアバターに設定されていたマテリアルを選択していきます.

目はBodyのマテリアルをそのまま設定しているため変になっていますが,それ以外を正しく設定すると同じ見た目になるはずです.

目専用のマテリアルを作ります.
見た目や質感を統一したいので,既にあるマテリアルをコピーして目専用のマテリアルを設定していきます.

今回は元のアバターの目をテクスチャを流用しているため,同じくBodyのマテリアルを複製して目のマテリアルにします.
画面下部でAsetts\Shapell\data\Materialsのフォルダを選択するとマテリアルがずらずら出てくると思います.
複製したい「shapell_body」で「Ctrl+D」のショートカットキーを押すとマテリアルがコピーされます.

コピーしたマテリアルを上記の同じく目に割り当てます.
今回のこのアバターはArktoonシェーダーという古いシェーダーが使われています.その際は「Outline」のチェックを外すと目が正しく表示されるはずです.
新しいテクスチャを使う場合はいい感じに画像を差し替えてください.

現在よく使われているシェーダーとして,UnityChanToonShader(UTS)があります.
その場合は目のマテリアルのShaderを「NoOutline」のものに変更し,
Culling Modeを「Back Culling」にすると期待通りになるはずです.

ピアスバキバキゴスロリ単眼娘

14.VRCアバター設定のコピー

左側で改変したほうのモデル「shapell_monoeye」を選択,
「Inspector」の下部の「Add Compornent」で「Pipeline Manager」を選択して追加します.

続いて元のアバターからコンポーネントをコピーします
左側で元アバターを選択,「Inspector」の「VRC Avater Descriptor」で右クリック,「Copy Component」をクリックします.

再び改変アバターのほうを選択し,既にコンポーネントの名前の上(Pipeline Managerとか)で右クリック,「Paste Compornent As New」をクリックすると色んなアバターの設定がまるっとコピーされます


Dynamic Boneのコピーは下記の記事を参考にしてください(丸投げ)
本記事のアバターでは使われてないので...でも最近のアバターには大抵使われる気がします

上記の記事の注意点として,「Dyn」と指定してDynamic Boneをコピーした際に自分の環境ではDynamic Boneの設定で参照しているボーンやColliderが元のアバターのものを参照していてうまく動かないとかがあったので一度見直すといいと思います.

15.アバターのアップロード

一度アバターをアップロードしたことある方はいつも通りにやってくださいVRChat SDKの画面を出してログイン

改変したモデルを選択,Build & Publishを押します
なんかエラーとか警告が出てたら「Auto Fix」を押すとどうにかなることがある

アップロードするぞ!!!!!!!!!!!!!の画面
いい感じにチェック入れてください
また,Gameウィンドウを外に出しておくとこの画面でアバターとかが弄れるのでポーズを付けたり予め用意した画像を入れたり(調べて),VRCamを動かしてサムネイルの映るアングルとか変えられます

うお~~~~~~!!

16.VRChat上で確認

うお~~~~~~~~~~~~~~~~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

うお~~~~~~!!

うお~~~~~~~~~~~~~~~~!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ということでうまくアップロード出来ていたら完了です

17.おまけ blenderデータ配布

CC0の,
・作品に含まれるデータを抽出し、拡布し、利用し、および再利用する権利
に基づき改変したBlenderのプロジェクトデータ(.blend)を配布します.

↓↓↓↓↓↓↓↓配布データ↓↓↓↓↓↓↓↓

本当に1日で作ったのでそんな感じのクオリティです.
Unitypackegeの作り方はよく分からなかったのでblenderのプロジェクトのみです.
テクスチャやVRChatアバターとしての設定はこちらで配布されているパッケージを利用してください.
ここまで読まれた方ならやり方は大丈夫だと思います

以上です.ここまでお読みくださりありがとうございました.

それではよき単眼ライフをお過ごしください!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

ツッコミや質問などありましたら(@K4N1_VRC)まで.

この記事が気に入ったらサポートをしてみませんか?