概要
VRChatのWorldでは、アップロードしたくないオブジェクトをアクティブ状態のままTagだけをEditorOnlyに設定しても、そのオブジェクトで使用されているメッシュデータが除外されるだけで、テクスチャなどはアップロードされてしまうようです。
アップロードしたくないオブジェクトは、EditorOnlyに設定するだけでなく、非アクティブにすることで、アップロードされなくなります。
Avatarプロジェクトでは、アップロードしたくないオブジェクトがアクティブ状態のままでも、TagだけをEditorOnlyに設定すればアップロードされません。
環境
- Unity 2022.3.22f1
- VRChat SDK - Base 3.10.4
- VRChat SDK - Worlds 3.10.4
検証
1. 素の状態
新規でワールドを作成しただけの状態です。
Webで確認するとワールド容量は118.51kBです。

2. フォトグラメトリのオブジェクトを追加
ポン置きした状態のまま、アクティブ状態かつTagはUntaggedです。
もちろん普通にアップロードされ、ワールド容量は380.36MBになりました。

3. TagをEditorOnlyにしてみる
アクティブ状態のまま、TagをEditorOnlyにしてアップロードしてみます。
フォトグラメトリのオブジェクトは一切アップロードされないかと思いきや、ワールド容量は297.37MBになりました。何かデータがアップロードされてしまったようです。

Web上でのワールド容量表記が間違っているだけかもしれないので、実際にワールドに入ってみます。すると、ちゃんと290MB相当のデータがダウンロードされました。

しかしフォトグラメトリのオブジェクトは見当たりません...
何のデータがダウンロードされたんだろう?

4. 非アクティブ状態にしてみる
TagはEditorOnlyのまま、次は非アクティブ状態にしてアップロードしてみます。
すると、ワールド容量は素の状態と同じ118.51kBとなり、フォトグラメトリのオブジェクトはちゃんとアップロードから除外されたようです。よかったよかった。
アクティブ状態のままTagをEditorOnlyにした際に何がアップロードされていたのか検証
うろ覚えですが、AvatarプロジェクトだとQuadやCubeなどのUnityのデフォルトメッシュはアップロードデータに含まれなかった気がします。
(アバターランクにも計上されなかったはず。間違ってたらごめんなさい)
Worldプロジェクトでも同様だと予想し、試しにフォトグラメトリのオブジェクトで使用していたマテリアルをQuadに適用してアップロードしてみます。
これで、フォトグラメトリオブジェクトからメッシュデータを除外した場合のワールド容量がわかるはず。
すると、ワールド容量は297.37MBとなり、フォトグラメトリオブジェクトをアクティブ状態のままTagをEditorOnlyにした場合と同じワールド容量になりました。
どうやら、アクティブ状態のままTagをEditorOnlyにするだけでは、メッシュはアップロードされなくなりますが、テクスチャなどはそのままアップロードされてしまうようです。
おわりに
WorldとAvatarでアップロード時のEditorOnlyの挙動が異なるため、ワールドの容量削減を行う際には注意が必要かもしれません。
特に、WorldをQuest対応させる際にはテクスチャ容量が支配的になりやすいため、今回の挙動には気を付けたいです。

