アバターの変換
アバターをAndroid対応に変換します。
まず始めにPC用アバターをアップロードした後、アバターを変換してAndroid用にアップロードします。
VRChatではアバターはBlueprint IDで管理されており、同じBlueprint IDに対してプラットフォーム毎にアバターデータをアップロード できます。 そのためPCユーザーは元のアバターを、Androidユーザーは変換後のアバターを見ることになります。
VRoid Studioで作成されたアバターは透過表現を多用しており、Android用のシェーダーでは正しく表示できません。 VRCQuestToolsだけでは対応できず、別途作業が必要です。
必要な知識
- VRChat用の基本的なUnityの知識
- VRChatにアバターをアップロードする方法
アバターの変換設定の準備
アバターをAndroid対応に変換するための設定をします。
- ヒエラルキーからアバターを選択します。
- アバターを右クリックしてVRCQuestTools > Convert Avatar for Quest を選択します。
- Convert Avatar for Androidウィンドウが表示されます。
- ウィン ドウの変換の設定を始めるボタンをクリックします。
- アバターにVQT Avatar Converter Settingsコンポーネントが追加され、変換の設定が表示されます。
PhysBoneへのネットワークIDの割り当て
ネットワークIDはPhysBoneをプレイヤー間で同期するために使用されるIDです。 通常はVRChat SDKによって自動的に割り当てられており気にする必要はありません。 しかしPCとAndroidではPhysBoneの数が異なるため、ネットワークIDが変わってしまい正しく同期されないことがあります。
先ほどの手順5.ではVQT Network ID Assignerコンポーネントがアバターにアタッチされており、PCとAndroidの間での同期に必要なネットワークIDを割り当てることができます。 この状態で通常通りアバターをPC用にアップロードします。
推奨: アバターの自動最適化
近年のPC用アバターは多くのメッシュやシェイプキーを使用しており、VRCQuestToolsで変換するだけではAndroidプラットフォームの制限である非圧縮サイズ40MB,圧縮サイズ10MBを超えてしまうことがあります。 アバターをアップロードできるように、不要なメッシュやシェイプキーを削除してアバターのサイズを小さくする必要があります。
- Avatar Optimizerをプロジェクトに追加します。
- アバターのルートオブジェクト(VRC Avatar Descriptorがアタッチされているオブジェクト)を選択します。
- AAO Trance And Optimizeコンポーネントをアタッチします。
アバターの変換設定
以下の項目の設定をします。
Avatar Dynamicsコンポーネントの削減
AndroidアバターはAvatar Dynamics(PhysBone, Collider, Contact)に上限があります。アバターに多くのPhysBoneがある場合は、減らす必要があります。
https://docs.vrchat.com/docs/avatar-performance-ranking-system#quest-limits
- 8 PhysBone components
- 64 PhysBones affected transforms
- 16 PhysBones colliders
- 64 PhysBones collider checks
- 16 Avatar Dynamics Contacts
言い換えると、アバターのパフォーマンスランクが「Very Poor」であっても、Avatar Dynamicsカテゴリーでは「Poor」以内にする必要があります。
- 設定項目からAvatar Dynamics 設定を展開し、Avatar Dynamics 設定ボタンをクリックします。
- Avatar Dynamics Selectorウィンドウが表示されます。
- 残したいPhysBoneなどのチェックボックスを選択し、推定パフォーマンスランクをPoor以内にします。
- 適用ボタンをクリックします。
アバターの変換
Modular Avatar等のNDMF対応の非破壊ツールを使用している場合、VRCQuestToolsによるアバターの変換も非破壊的に行うことができます。 (参照: チュートリアル: 非破壊的な変換)。
Prefabワークフローを使用している場合、このタイミングでPrefab (またはPrefab Variant)を作成するとよいでしょう。 VRCQuestToolsはアバターの変換後もプレハブへの参照を保持します。 また、同じ変換設定を流用することができます。
- 設定項目を一番下までスクロールし、変換ボタンをクリックします。
- 変換が完了すると、同じシーンに変換後のアバターが作成されます。
- 名前には
(Android)
という接尾語が付きます。 - 生成されたアセットは
Assets/VRCQuestToolsOutput/<アバターのオブジェクト名>
に保存されます。
- 名前には
変換後、元のアバターは非アクティブになります。インスペクターから元に戻すことができます。
VRCQuestToolsはアバターのパフォーマンスを最適化しません。 そのためほとんどの場合、変換後のアバターはAndroidプラットフォームでパフォーマンスランクが「Very Poor」になります。
Androidでは、セーフティのMinimum Displayed Performance Rankは「Good」または「Poor」になります。 これは「Very Poor」のアバターは常にブロックされ、他の人が個別にAvatar Display設定(「Show Avatar」機能として知られています)を変更しない限り、フォールバックアバターまたはインポスターで置き換えられることを意味します。
参照: