How To Upload Multiple Avatars With One Scene
Setting up a cantankerous-platform world or avatar is really quite straightforward! In short, all you have to do is apply a duplicate projection to build an Android version of the asset, and upload it to the same content ID as the VRChat PC asset. The customer volition manage which version it needs to download.
If you lot need a bit more detail on how to exercise this properly (and easily), here'south a short guide.
We'll be making the assumption that you lot already accept a VRChat PC project set with your earth or avatar. If this isn't the instance, you'll need to set up and create your project for PC first. You could also build for Android/Quest first, but that's your telephone call.
After you lot've got your project at the bespeak where you lot want to build and upload for VRChat PC, go alee and exercise so. This process is identical to our standard setup.
Once you've got your VRChat PC build up, y'all'll demand to duplicate the project for the Quest (Android) version. To practice this, close Unity, copy your project binder, and paste the re-create elsewhere. Basically, you're duplicating your project. The location doesn't affair much, equally long equally they are carve up and singled-out projects. You lot might want to name the project something like MyVRChatProject-Quest
merely to continue organized.
Keep in mind that any changes you make to one project, you should make to both. If it is something simple like moving an object, you lot can simply move the object in one project, then copy/paste the transform values to the 2d project.
For more complex or wider-reaching changes, you may have to re-duplicate the project, or be very careful with how duplicate the changes.
Open your Quest project in Unity. Since it is a duplicate, yous shouldn't take whatever changes. Withal, we're well-nigh to alter that. Let'southward swap your build target to Android. Here'southward how to exercise that:
There'southward some important notes hither:
- You demand to install Unity'due south Android SDK. Otherwise the option won't pop up.
- Although you tin can swap dorsum and along between Windows and Android, you lot probably don't want to practise this. It changes files effectually, y'all probably want to maintain a scaled-back version of your earth for Quest, and...
- It can have a significant amount of fourth dimension to swap to the Android platform. Thankfully, if you maintain two carve up projects, you only practice this once. If your project is huge or has dozens of avatars, you'll probably want to simply export the content you desire equally Prefabs or UnityPackages, and so create an empty Android project from scratch.
Local Cache Server
You can reduce the time it takes to swap platforms by using Unity's Cache Server, which you tin run locally. Read more than nigh the cache server here. Keep in mind this can take upwards a significant amount of disk space.
At present that you've got two separate projects set upwards appropriately, you'll demand to beginning optimizing. You cannot skip this. Quest is a powerful headset, but not nearly as powerful equally a typical VR-ready PC. You'll need to cheque out our Quest Content Optimization page to run into what you need to practise. For worlds this means blistering lighting, lowering geometry complication, avoiding transparency, and lowering texture resolution. For avatars, this means removal of excess components, excess bones, lowering geometry complication, avoiding transparency, and reducing texture size.
This will take a while, and is expected to be challenging. Optimizing for mobile hardware is difficult! Thankfully, at that place's a ton of resources out at that place, and even a cursory YouTube search for "optimizing Unity for mobile" reveals a ton of good content.
You tin also check out some of our documentation on optimizing content for Oculus Quest.
- Quest Content Optimization
- Quest Content Limitations
- Avatar Performance Ranking System
In order for VRC_Triggers to work across both Quest and PC builds of your world, the hierarchy of the trigger component must exist the identical across both projects. This must be synchronized because in Unity, the bureaucracy is the definer of which objects are which. Since both Quest and PC users can exist in the aforementioned world at the same time, that hierarchy will be used to determine which item is manipulated for both platforms.
SyncVideoStream and SyncVideoPlayer Components
Currently, neither SyncVideoStream nor SyncVideoPlayer is supported on Quest. Putting these into a Quest globe will crusade severe bug! Simply remove them from the Quest version. Nonetheless, having a video role player only in the PC version can crusade problems equally well. If the Master of the instance is a Quest user, you'll see further bug.
Although getting synced video playback working on Quest is an eventual goal, nosotros suggest not using them until we have official back up on the platform.
Once your world or avatar is ready, you can upload! This upload process is identical to the VRChat PC upload process, although the SDK will be a lot more aggressive with warning you about operation issues.
You need to upload your world or avatar to the same pattern ID as you have for the VRChat PC version of the content. Blueprint ID is defined by a Pipeline Manager component on a Game Object, which commonly accompanies a VRC Scene Descriptor, typically on your VRCWorld prefab. Printing the "Detach" button to edit the pattern ID, and paste in the ID from the first version that you uploaded (you can as well find this in the "Content Manager" tab of the VRChat SDK control panel).
The version yous're uploading depends on the originating project's build target. If y'all're on a project ready for Android, information technology'll upload for Quest. If the build target is Windows, then yous're uploading a PC version. That's basically it-- one time you've uploaded, any customer that views your content volition talk to our servers a bit like this:
"Hey, I'm an Oculus Quest and I desire this content."
"Ok, here's a Quest version."
"Hey I'thou a VRChat PC user and I desire this content."
"Ok, hither'southward the VRChat PC version."
If an avatar isn't available for the platform you're on, you'll encounter a placeholder avatar indicating what platform that user is on.
If a globe isn't available for the platform you're on, you'll be unable to enter portals to that earth or join information technology through the UI.
However, if you join a world that has both Quest and PC versions, and the people in the instance have both Quest and PC versions of their avatars, you'll view the globe appropriately for your platform and be able to hang out with everyone, with no issues!
Armatures MUST be identical!
For avatars to work properly cross-platform, the armature path MUST be identical between the PC and Quest versions to essential bones like the head, hands, and anxiety. Additionally, the scale and rotation of the "root os" (the first bone in the hierarchy) MUST be identical between versions.
The rigging (armatures) betwixt Quest and PC avatars must be mostly identical. If yous want to remove non-essential bones like skirt/pilus/etc bones for the Quest version, that's fine-- but do non change the base structure of the armature layout. Doing so will result in strange behavior when viewed across platforms.
Almost importantly, the "root bone" (equally in, Hips) should be the get-go bone in the bureaucracy later on the Armature GameObject. To be specific, every bit long equally the setup (scale, rotation) of the "root bones" is identical, you should have no problems.
We know that maintaining two "separately optimized, merely identical in content" projects for PC and Quest isn't platonic, and the process is a flake of an practise in repetition. However, this process gives you a massive amount of command, and lets you be quite creative with the dissimilar platforms while sticking to the appropriate level of optimization for whichever platform you lot're targeting.
We'll be looking into ways to improve this process over time, but go along in mind many of these limitations are due to the way projects are managed in Unity.
- Your VRChat PC avatar can have all kinds of bells and whistles that the VRChat Quest avatar can't have. Depending on the platform, users will see whatever version is appropriate for their client.
- You can be a scrap artistic with this as well-- you could have a high-poly world or avatar for PC users, and and so a low-fi (just nonetheless stylish) version for Quest users.
- Define a set of box colliders or a depression-poly mesh collider for both the PC and Quest versions of the world and utilise that instead of a mesh collider. Parent the colliders to an empty GameObject at a specific coordinate, and if you update one project, you lot tin copy/paste that object to the other projection easily. That fashion you lot'll never see users on unlike platforms "bladder", and yous won't accept issues with expensive and circuitous high vertex count mesh colliders.
- Remember, avoid transparency at all costs! It is quite expensive.
- As an aside, yeah, "alpha cutout" counts as transparency.
Updated over 1 year ago
Source: https://docs.vrchat.com/docs/cross-platform-setup
Posted by: ishambouselt.blogspot.com
0 Response to "How To Upload Multiple Avatars With One Scene"
Post a Comment