2020年10月1日木曜日

普段使いしてるアバターをAvaters 3.0に移行した時の備忘録

 VR Chatに新しいアバターシステムAvaters 3.0が実装されて早くも2か月近く経とうとしています。

従来のアバターシステムに比べ出来ることが増えた半面それに伴って複雑化してしまい技術よくわからない勢(自分含む)は既存のアバターシステムが使えるのもあり現状維持をしてたりしたわけですが、ネイティブでAvaters 3.0(以下AV3と表記)に対応されたアバターも増えドキュメント類も充実してきたのもあり試しに対応をしてみることにしました。

最初は VRCAvatars3Tools の変換機能を利用して対応させてみようとしたもののSyntaxEroorで上手く行かず、結局VRCUnity勉強会主催の「最速で移行する Avaters3.0」

という講座を受け普段使いしてるアバターであるLelemyのAV3.0移行を実行しました。

とりあえずは今までのAvater2.0相当にするという事で対応するわけですが、ここで細かく書くよりは最速で移行する Avatars3.0の動画を見た方がサクッと対応できると思います。時間指定でSDK3を入れるところからにしてあるので、それでも1時間近い内容だったりしますけど…

この講座のおかげでとりあえずのAV3対応を果たしたわけですが、やっぱりAV3固有機能であるExpressionMenuを使いたいという事で、ExpressionMenuからアバターの表情を操作する機能を実装してみることにしました。indexコントローラーだと出しにくい表情があったり自分がどの表情してるのかわからなくなることがたまにあるので、使えるようになれば相当に便利であろうという事が理由です。

対応するに当たって

【Avatars 3.0】VRoidのモデルをVRChatに導入する

をかなり参考にしました。というか実装に関してはほぼ同じですが、今までのジェスチャーで表情変更をする方法との共存に少しだけ手間取りました。

どこで手間取ったかというと画像部分がほぼ全てでanime switchとなってるレイヤーと中央に出ているアニメーターの中身の設定になる訳ですが、anime switchのところで歯車を押して出てきたWeightのスライダーを一番右に持って行って1にすることとデフォルト部分に割り当てた表情アニメーションをSDK3付属のproxy_idleにするところでした。

Weightのスライダーを1にするのをわすれるとこのスイッチ機能が動きませんし、アニメーションをproxy_idleにするのを忘れるとスイッチでの表情変更は可能ですが、コントローラージェスチャーでの表情変更が出来なくなります。


そんなこんなで無事に実装出来ました。ExpressionMenuで表情を変えるとその表情で固定されるため使い方次第で結構便利です。ハンドジェスチャーで変えたいときはDefaultに戻せばそっちでの表情変更に戻ります。

そんなこんなでAvaters3.0に対応させてみたので、
拙い出来ですが、後続の方に参考?になるかはわかりませんが、作成したアニメーターコントローラーを配布します。対応するアバターは記事中で対応させるために使用した。
寺井カントリーさんのレレミーと同じく寺井カントリーさんのヨマです。
作者の寺井さん曰くAV3対応予定がない子という事とデータ配布の許可を頂いたので、この場に置いておきます。対応してくださってありがとうございました。
下のダウンロードからどうぞ

ダウンロード