VRM形式のアバターをVRChat対応した話

最初にこの記事は「How to VRM形式のアバターをVRChat対応!」 という目的で書いた記事ではありません。convertした後は自己流で模索しながらやったので、確立した方法をまとめられているというわけではないため解説ではありません。一応やり方は書いておきますが、書いてあることを解釈した通りにやって思った通りの動作をしなくても僕は知りません。

前書き

さて、時は7月のことです。ひょんなことからVRM形式のアバターをVRChat対応させようとなり、ネットでやり方を調べて…といった感じでやろうとしましたが……何というか、詳細や補足情報を記してくださるのは大変ありがたいのですが回りくどすぎるし、別の立派にメタバース云々謳ってるサイトはBOOTHで配信されているツールの使い方しか解説してないし、肝心なハンドサインや表情設定の仕方も書いてないっていう。
ですので、仕方なく手探りと経験で自力で対応させたました。
これは同じ様な人が困った時に読める様に残した備忘録です。
(VRC対応するのに必要な文章は太字で記してあります。あくまでも備忘録程度ですので悪しからず。)
ちなみに、かなり上級者向けです。ツールを使用しても問題ないところは使用して簡略化しましたが、それでもアバターの、特にAnimationを充分に理解していないと詰む可能性があります。

では、本編です。

やったこと

まず、VRMからVRC対応させるためにはツールが必要になります。

BOOTHの説明欄に使い方が載っていますが多分、この記事を読んでる人は先ほどの某メタバース云々も見たことあると思うのでそちらも参考に使ってみてください。

ここからはscene内にツールで返還したアバターがある前提での話になります。
変換が終わってアップロードに最低限必要な項目を設定して、いざアップロード!とすると、表情はおろか喋っても口(LipSync)は動かないし、目(Eye Lock)も動かない。
これらを動かすにはVRCSDK3のAvatar Descriptorを設定します。
Avatar DescriptorにはPlayable Layersという項目があり、そこからFXとGesture等を設定します。僕は大雑把にFX=表情。Gesture=ハンドサインといった解釈をしています。ばななぁ。
つまり、FXには表情を設定したControllerを入れて、Gestureにはハンドサインを設定したControllerをいれるということですね。

View Positionの設定

これをちゃんと設定しないと視点が変になったり腕がばんざーいしたままになっちゃいます
座標の目安としては、アバターの目と目の間くらいが良いと思います。

Eye Lockの設定

Eye Lockとはアバターの目の動きを設定する項目です。
Eye Lockが設定されていると、アバターが自動で目を合わせたり、カメラに対してカメラ目線を向けてくれたりします。
EyeMovementsはそこまで重要ではないので任意で詳細を設定します。
設定が必要なのはEyesのTransformsとRotation Statesです
Transformsは左右の目のボーンを指定する欄となっています。大体HeadのChildrenとして両方入っているのでそれらを入れればOKでした
Rotation Statesは目の動き、つまり眼球の動きに相当する部分になります。
この設定はアバターによって違ってくるので、プレビューを確認しつつ設定します
最後にEyelidesという欄がありますが、こちらはNoneの状態で大丈夫でした。

LipSyncの設定

超簡単!
Modeをdefaultにして、Auto Detect!をクリックするだけ!終了!やった!

ハンドサインの設定

ハンドサインに関してはVRCSDK3Avatarをimportすると、Packages>VRCSDK-Avatars>Samples>AV Demo Assets>Animation>Controllersの中に「vrc_AvatarV3HandsLayer」が入っているのでそちらを入れてしまえば問題ないはずです
BOOTH等で販売、配布されているハンドサインにしたい場合はReadme等を参考に導入するのが良いと思います。

イベントで使うから見せられないよぅ

表情(FX)の設定

正直ここが一番大変でめんどくさかった!!
作業する前にどうやって表情作るかとかも考えたりして、時間もすごいかかりました。
表情はVRCAvatarEditor betaを使って設定することにしました

こちらのツールの使い方を解説するつもりはないですし、わかりやすくまとめてくださっているサイトがあるのでそちらをご覧ください。↓↓↓

FXLayerは何でもいいと思います。その場で新しく作っても既存のものを使っても

これで基本的なAvatar Descriptorの設定は完了です。不具合や不都合がなければ。

これでハンドサイン、表情、目、口はきちんと動くようになりました。
シェーダー?なにそれ、おいしいの?てか、僕、Quest単体でやってるからあんま縁ないし。

質問があれば…と言いたいところですが、これに関してはわからないこと聞かれてもめんどくさいのでClusterの技術厨とかに聞いて下さい。VRMは彼らの分野ですから。

では、また今度。

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