Integrating Meta Avatars with Application Spacewarp
I am working on an application that requires the use of Application Spacewarp and Meta Avatars 2 SDK. In testing, I have determined that the shaders for the Meta Avatars are not creating Motion Vectors for Application Spacewarp to use to correctly render its faked frame. The rendering artifact that clued me into the issue was seeing the opaque Meta Avatars stuttering. According to the information from Meta's Application Spacewarp sample git repo (https://github.com/oculus-samples/unity-appspacewarp), this is a sign that the Meta Avatar shader is not generating Motion Vectors. Has anyone worked with Application Spacewarp and the Meta Avatar SDK2 as of yet who could advise me in how to address this issue? Any and all help would greatly be appreciated! I do have a possible initial lead in that in the Meta Avatar SDK2, there is a Recommended folder with a sub folder of "app_specific" which has 2 files; app-declarations and app_functions. These seem to be here for the purpose of adding app specific functionality to the Meta Avatar shader code. I am going to try and mess with them, but I don't have much experience in doing this kind of thing so again if the right people find this, any and all guidance on this point would also be appreciated!617Views0likes0CommentsMeta Avatar Joint Transforms Are In Incorrect Position After Calling LoadUser() Again.
I think I've found a bug in the meta avatars sdk version 17.2. After calling LoadUser() on an avatar entity that has already been loaded before(which may happen if you'd want to update an avatar's look), the transforms Joint Head, Joint LeftHandWrist and Joint RightHandWrist stop being in the correct positions and simply fix themselves at 0, 0, 0. Here are the steps to reproduce it: In a blank scene add a AvatarSdkManagerHorizon object and a empty gameobject with a SampleAvatarEntity component. Set the SampleAvatarEntity's BodyTracking input to be the AvatarSdkManagerHorizon's SampleInputManager. Add some code in the SampleAvatarEntity which will enable you to call LoadUser() in runtime. Ensure you have UseStandalonePlatform checked in your OculusPlatformSettings so that your own avatar loads. Connect your headset with Quest Link and run the scene to let your avatar load. In the hierachy see how the Joint Head is in the correct place. Now manually call LoadUser() and see how Joint Head is no longer in the correct place.1.5KViews3likes1CommentMeta Avatar Critical Joint Transforms go to zero position after calling LoadUser()
Our application depends upon attaching objects to each avatars hands and head. Unfortunately this means we can't use LoadUser() to update an avatar's appearance if they changed it because there seems to be a bug where the critical joint transforms just fall to the local zero position when LoadUser() is called. ot know where the users wrists and head are now Here are the steps to reproduce:1.7KViews2likes1CommentOptimizing avatar instantiation. High cost of creating & uploading textures to GPU.
Hello, I am trying to optimize instantiating avatars at runtime using Unity 2021.3.5f1. I am using the GPU Skinning for improved runtime performance. When I create a new avatar currently, there is a few frames where the frame time spikes while textures are created. There are 3 textures created over 3 frames. The three functions that run are: OvrAvatarGpuSkinnedPrimitive.CreateMorphTargetSourceTex OvrAvatarGpuSkinnedPrimitive.CreateJointsTex OvrAvatarGpuSkinnedPrimitive.CreateNeutralPoseTex I have tried reducing the texture precision to reduce memory created but this has little affect. I also looked into pooling the textures but their dimensions are based entirely on the specific avatar being loaded so this was not possible since I do not know the avatars ahead of time. Does anyone have any insights or tips on how I can reduce or mitigate this cost? Thank you858Views0likes0CommentsHow to detect if a user doesn't have a Meta Avatar or if they have been assigned a default avatar?
I am working with the Meta Avatars SDK and can't find any way to detect if a user doesn't already have a Meta Avatar, and as part of this I can't find a way to detect if the user has simply been assigned a default avatar. I have the ability to let the user open the customise avatar menu via a deeplink call, but no way to detect if I should tell the user to create an avatar first time if they don't have one?Solved1.5KViews0likes1CommentCustom Meta Avatars - finding the configuration ID for custom made ones
Hi all, I need to create and export a large number of meta avatars for a project. There is no web or meta tool I know of to do this, let me know if I am incorrect. I would like to: - headset in Q2, create a meta avatar - save avatar as my avatar - get that avatar id (where can it be found) - use that id in Unity to recreate the avatar for the project The goal is to create and export a large set WITHOUT having to create new Oculus accounts. Any insight is appreciated.1.1KViews2likes0CommentsUnable to network meta avatars using Photon
I was able to successfully use the ApplyStreamData(bytes []) method locally to transfer body and lipsync tracking data from one avatar to another. Thererfore I thought it would be simple to repeat this process using Photon as a means to transfer the data to an avatar remotely. For some reason it's not working. I've followed the data being received and passed through ApplyStreamData(bytes []). After that all the right functions within the SDK seem to be getting called and I get no errors. However, the arms and lips of my avatar are still not moving! Has anyone else ran into this problem? For context I'm testing with an Oculus Quest 2 and the UnityEditor. Here is the receiving side of my code for reference: List<byte[]> m_streamedDataList = new List<byte[]>(); //Tracking Data bytes are recieved here [PunRPC] public void RecieveStreamData(byte [] bytes) { m_streamedDataList.Add(bytes); } //Runs through data list every frame applying streamed data private void Update() { if (m_streamedDataList.Count > 0) { if (IsLocal == false) { byte[] firstBytesInList = m_streamedDataList[0]; if (firstBytesInList != null) { ApplyStreamData(firstBytesInList); } m_streamedDataList.RemoveAt(0); } } }999Views0likes0CommentsOculus Avatar Sdk for Unity
Hi. Im trying to figure out how Oculus Avatar SDK works. For testing im using Oculus Quest. The problem is - I cant get user ID, which i need to load his/her own avatar of Oculus account. Here is part of code: Oculus.Platform.Users.GetLoggedInUser().OnComplete(OnGetLoggedIdUser); private void OnGetLoggedIdUser(Message<User> message) { if (!message.IsError) { Debug.Log("========ID of User========"+message.Data.ID.ToString()); } } But message has error, which says "The user isn't signed in or their account state wasn't in a recoverable state." What i should do to fix this?898Views0likes2CommentsOculus Avatars in Unity - Poor performance
We're working on a 21 player app in Unity 2018.2.4f1. We've implemented Oculus Avatar SDK 1.26. The Avatar's performance however made the app's frame rate unbearable with more than four in one multiplayer room while running on an Oculus Go. Upon inspection the Avatar SDK scripts inside Unity are poorly optimised. Has anyone had any successful experiences implementing Oculus Avatars?1.1KViews0likes2Comments