vive対応ゲーム『VRchat』のwikiです。ここでは基本説明と自作アバターの追加方法などを載せていきます。基本的な考え方としてunity(プログラム)はまとまっているデータを一括で処理する場合は処理が軽く、データが分割されるほど処理が重くなります。詳細はunityリファレンス:パフォーマンスと最適化を参考にしてください。具体的にどうするのかといいますと...・アバターのマテリアル数を減らす。(マテリアルを1つにする)・テクスチャサイズを小さくする。テクスチャはアルファ値を使わないようにする。・シェーダーを軽くする。(cubeシェーダー等を使用する)・不要なボーンを削除する。(MMDなら捩りボーン等)・別々に分かれている複数のメッシュを結合する。・処理の重いコンポーネントを外した軽量版のアバターを用意する。(パーティクルを外したバージョンのアバターも入れておく)などの方法があります。VRChatではポリゴン数が2万に制限されていますが、ポリゴン数を減らしても最適化にあまり貢献しません。方法とデメリットの説明マテリアル数を1つにする複数のマテリアルを1つにまとめるのは最適化に大きく貢献しますが、最適化の難易度が高いです。モデリングソフトとペイントソフトで再度UVマップとテクスチャを設定する必要があるからです。手動である場合はモデルの作成/設計の段階でやるのが現実的です。Bakerのような自動で結合処理をしてくれるプログラムを使用しましょう。この最適化によるデメリットは、マテリアル単位でのシェーダーの分割ができなくなる事。共通の部分と服装差分でマテリアルを分けるといった事ができなくなり、アバターの管理と作成が難しくなる事が挙げられます。テクスチャサイズを小さくする解像度が低くなるので、アンチエイリアスの影響を受けやすい細かい柄のテクスチャでは見た目に影響してしまう。グラデーションのようなぼわっとしたテクスチャであれば見た目の印象は大きく変わらない。暗いワールドでも光の影響を受けない為、明るく表示されてしまいコントラスト比を上げてしまいます。暗いと瞳孔を絞るので、より明るく感じてしまう為目に負担がかかります。ポストエフェクトのブルーム(発光させる画面効果)の影響を強く受ける為、なにかと眩しいという問題があります。切り替える等の対応がマストだと思われます。メッシュを結合する簡単にできる上に最適化の貢献度も大きいです。Blenderの場合はctrl+Jで別々のオブジェクトを1つに結合できます。【Blender】オブジェクトの分割と結合方法メッシュの管理が大変になりますが、完成しているモデルであれば再度手を加えたりする事は多くないのでデメリットもあまりありません。不要なボーンを削除する代表的な例はMMDをコンバートした際の捻じれボーンです。捻じれボーンとはMMDで腕を回転させた際に、不自然な変形を整える為のものなのでunity(VRChat)では必要ありません。MMDで動かした場合の見た目を整えるウェイトが設定されているだけなので、VRChatの場合は削除した事による弊害も特にありません。重いコンポーネントを外す代表的なのがCPUのリソースを使うパーティクルシステムです。パーティクルに関してはパーティクルを使用しない差分のアバターを推奨します。DynamicBoneも多くのプレイヤーが居て大量にアタッチされてる場合は負荷になります。DynamicBoneがアタッチされてない軽量版のアバターも用意すると最適化できます。優先順位としては最適化の効率がよく見た目に影響しないメッシュの結合や、不要ボーンの削除になります。DynamicBoneを切るのはその分見た目に与える影響も大きいのでトレードオフとなります。いうオプションがあるので、それにチェックを入れる事は推奨します。PLUGINを使用してみる。cats-blender-pluginこのプラグインはMMDをVRChat(unity)に合わせて最適化する為に作られた専用のプラグインです。概要に書いてあるような動作を自動で行います。Wikiからのお知らせどなたでも編集できますマイページ。