見出し画像

VRChat。アバターアップロードを初めてやってみた。課題は盛沢山。

VRChatをVRゴーグルで楽しむにはデスクトップアプリOculusを通して遊ぶのがいいと思った前回。今回はオリジナルのアバターをアップロードしてVRChatの世界を歩き回れるようにしたいと思います。


VRChatではトラストレベルというものが存在しこのレベルが「New User」にならないとアバターのアップロードができません。


レベルは以下、ザックリ解説。

LV1 Visitor (灰色)
・初めましての方
・アバター、ワールドのアップ不可

Lv2 New User (青色) 
・Visitorでしばらく遊んでいると自動でこのレベルへ
・アバター、ワールドのアップ可
・ワールド公開申請不可

Lv3 User (緑色) 
・New Userでしばらく遊んでいると自動でこのレベルへ
・アバター、ワールドアップロード可

さらに上のレベルもありますが、ここでは割愛。


レベルアップ条件は非公開のため何が基準でレベルが上がるかは分かりませんが、僕は数回アクセスして、いろんな方とおしゃべりしているうちにNew Userへ上がりました。遊んでいればそのうち上がっていくようです。


ということでアバターアップロードに初挑戦。


なお、この詳しい説明はネット上に素晴らしい記事が沢山上がっていますのでこちらも割愛します。ここでは要点と作業時に困ったことなどを書いていきたいと思います。


まずはアバターの用意ですが、以前Clusterのために作ったものがあるのでこちらを使用します。

VRoidStudioというデスクトップアプリで作ったアバター。

このアプリは直感的にアバターが作れて非常に便利です。しかも無料ときた。すごい。これを作っているのはピクシブ株式会社。みんなたくさん作ってBOOTHで販売しよう!ってことだろうか…。それにしても便利。


アップロードのために必要なもの以下4つ。

Unity Hub
・Unityのバージョン管理が出来るアプリ

Unity
・Unity本体(先にUnity Hubをインストールしておく)
・VRChat用にはUnity 2019.4.33f1を使用(2022年8月現在)
・使用バージョンはこちらで確認。

VRChat Avatars用 SDK
(VRChatにログイン後ダウンロードから入手)
・VRChatのアバター開発キット
・Unityにインポートする

VRM_Converter_for_VRChat
・VRM形式のアバターをVRChat用アバターへ変換してくれるツール
・無料・有料あり。ここでは無料を使用。
・Unityにインポートする

Unityとはゲーム開発用の統合開発環境を搭載した3DCGソフトのようなもので、これまた無料で使えるのがすごい。(有料版もあります)



インストールがすべて終わったらアバター取り込み環境を整えます。


なお、この辺りの技術も日進月歩で進化しているはずなので、今回書いている内容もいずれやり方は変わることでしょう。あくまで現バージョンのやり方。


Unityのプロジェクトを立ち上げ、AssetsにVRChat Avatars用 SDKをドラッグアンドドロップでインポート。

VRC SDKを取り込んだ後の画面

続いてVRM_Converter_for_VRChatをインポート。

VRM_Converter_for_VRChatを取り込んだ後の画面

以上、準備完了。


いよいよVRoidStudioからVRM形式で書きだしたアバターを取り込んでみます。とりあえず、細かい設定は気にせず取りこむとどうなるんだろう…。

メニューのVRM0よりインポート。

インポートが終わったら、さらに上記メニューのVRM0内にある「Duplicate and Convert for VRChat」を適用。VRChat用に複製ってことですね。

VRMをインポート後、アバターを選択しておく。
Duplicate and Convert for VRChat適用。アバターが2つになりました。

Duplicate and Convert for VRChatを適用する際に保存するファイル「.prefab」の場所はAssetsフォルダーにする必要があるみたいです。


色々調べる中でそのままアップロードではなく調整を施す方が良いのは理解できましたが、今回はあえて何の調整もせずアップロードしてみます。

VRChat SDKのShow Control PnaerからVRChatへログイン。

ログインに成功しBuilderタブを押すと最下部に「Build & Publish for Windows」のボタンがあるのでクリック。と、その前に…、なんだかエラーが沢山あるっぽいぞ…。

上から順に一つずつエラーと警告を確認していきます。

A Material on this avatar has custom shader keywords. please consider optimizing it using the Shader Keywords Utility.

このアバターのマテリアルにはカスタムシェーダーキーワードがあります。Shader Kwyowrds Utilityを使用して最適化してください。

Shader Kwyowrds Utilityってなんでしょう…。次。


The angle between pelvis and thigh bones should be close to 180 degrees(this avatar's angle is 0.0). Your avatar may not work well with full-body IK and Tracking.

骨盤と大腿骨の間の角度は 180 度に近くなければなりません (このアバターの角度は 0.0 です)。 フルボディ IK とトラッキングでは、アバターがうまく機能しない場合があります。

フルボディIKって何でしょう…。次。


Overall Performance: Very Poor - This avatar does not meet minimum performance requirements for VRChat. It may be blocked by users depending on their Performance settings. See additional warnings for suggestions on how to improve performance.Click 'Avatar Optimization Tips' below for more information.

全体パフォーマンス: 非常に悪い
このアバターはVRChat の最小パフォーマンス要件を満たしていません。 パフォーマンスの設定によっては、ユーザーによってブロックされる場合があります。 パフォーマンスを改善する方法に関する提案については、追加の警告を参照してください。詳細については、下の「アバター最適化のヒント」をクリックしてください。

これはまずい。パフォーマンス改善必須です。


Phys Bone Collision Check Count:560(Maximum:512,Recommended:32) - This avatar has too many VRCPhysBoneColleders. Reduce number of VRCPhysBoneColliders for better performance.

Phys Bone Collision Check Count:560(最大:512、推奨:32) - このアバターには VRCPhysBoneColleders が多すぎます。 パフォーマンスを向上させるために、VRCPhysBoneCollider の数を減らします。

同上、改善必須。これ以降もいくつか注意事項がありましたがいずれも減らしてよ!っていう注意書きでした。


ということで、アップロードは一旦やめておき、VRoidStudioでポリゴン数等の再調整を行うことにしました。調べてみたところVRChat公式にアバタークオリティに関する記載があったのでこれを参考にします。(こちらより)


今までのUnityプロジェクトは削除して再びVRoidStudioへ。

今度はポリゴン数31950、マテリアル数6、ボーン数81です。アバタークオリティ上ではExcellentのレベルがそれぞれ32000、4、75となるので、その次のレベルのGoodには該当しそうです。(他にも評価項目は沢山あります。)


この状態でUnityに取り込みます。

その後、メニューのVRM0内にある「Duplicate and Convert for VRChat」を適用しますが、その際、揺れ物設定を下記「Remove Swaying Objects」にして、この部分をいったんまっさら状態にしました。

取り込み完了。先ほどと比べて全く変化は感じられません。


この後、「Remove Swaying Objects」でまっさらにした設定を一から設定し直します。しかし、そもそも自分のUnity能力が低すぎて、思うように調整が進みません。オリジナルアバターのアップロードはUnityの慣れが必要だということをこの時点で強く認識することになりました。


とりあえずインポート状態でアップロードを試みます。

警告は残ってますがエラーメッセージは消えました…。

気にせず「Build & Publish fo Windows」

Avatar NameとDescription(説明書き)を入力して、いざ「Upload」!!

Complete!!


VRChatを立ち上げてみました。

アップされてる!!
うっひょーい!!


なんとかVRChat上にアバターをアップロードすることができました。


なんだかんだ初めての作業で、ずいぶん時間がかかりましたけども、細かい設定を気にしなければ数分で完了できそうな作業でした。


それもこれも有志のおかげ。様々です。


これでVRChatと同類のサービスClusterでも使っていたこのアバターが使えるようになりました。そう思うと、この先アバター使用の標準化なんて進めばサービス間での行き来も楽に出来るようになるのかもな~と、そんな夢も膨らんでしまいますね。


といいながらも、今回の様々な課題が頭をよぎりUnityとVRChatAvatarの深い理解をもっと進めねばと課題だらけの現状に夢から引き戻されるのでした。


無事アップロードできてよかった。



アップロードとUnity上での微調整等々に関して下記ページを参考にさせていただきました。


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