11-15-2021 02:25 PM - edited 01-07-2022 02:27 PM
Do you have any feedback and/or issues in regards to the Meta Avatars SDK? Use this place to discuss, as we'll have members of the engineering team reviewing this thread!
Read the blog on the Meta Avatars SDK here: https://developer.oculus.com/blog/meta-avatars-sdk-now-available/
Refer to the Meta Avatars SDK documentation here: https://developer.oculus.com/documentation/unity/meta-avatars-overview/
06-14-2022 01:36 PM
The documentation shows how to get your userID, but not how to set the userID on a remote avatar. My work flow is currently:
What do I need to do in step 5?
06-14-2022 01:56 PM - edited 06-14-2022 01:57 PM
Hi cazforshort-
You don't really need to worry about the user ID of an Avatar once you have loaded it using LoadUser(). So it sounds like the way you need to apply the remote avatar's user ID is to call LoadUser() - but that only needs to be done once.
Please see: https://developer.oculus.com/documentation/unity/meta-avatars-load-avatars/
I hope this helps. Let me know if it doesn't.
-Mike
06-29-2022 11:58 AM
Hello! I've come across what I believe is a bug in the Meta Avatar SDK v13+
Bug: “Bones do not match bindpose” error appears when using UNITY skinning.
Unity Version 2021.3.3f1
Oculus Integration SDK v41
OVRPLugin: 1.73.0
Meta Avatar SDK v14.0.0.44.95
Explanation:
Currently setting the avatar skinner to UNITY will cause a “Bones do not match bindpose” error in Unity both in editor and on device (Quest 2).
Steps to Repro:
Note: This is reproducible in any scene with the avatar skinners forced to UNITY.
Results:
The following error will appear:
07-06-2022 06:31 PM
Hi there.
We have encountered an issue (or at least unexpected behavior) when loading a built-in avatar using either LoadAssetsFromZipSource or LoadAssetsFromStreamingAssets. It seems that if we are creating and loading multiple avatars using the same built-in avatar but with different desired LOD levels then we get a result of (UnmatchedLoadFilters) from OvrAvatarEntity_LoadUriWithFilters on subsequent calls. This behavior appeared after upgrading to Meta Avatars 12 from a much earlier version. This situation can arise when two player that have not configured their custom avatars enter multiplayer together. The local player uses higher LOD levels than the remote player (for performance reasons) but both players are using the first built-in avatar (avatar 0) by default.
The ideal behavior would be to have the ability to load different / additional LOD levels for a built-in avatar as needed rather than having to restrict all applications of a specific built-in avatar to certain LOD levels or having to load all levels in a worst case. I'll look forward to hearing more. Thanks!
07-13-2022 12:13 PM
It is needed if I want other users in the same room to see my avatar and me to see theirs?
Right now all the users just end up looking like me.
07-18-2022 04:31 PM
Hey Mike,
I have the user Id saved in the OVRAvatarEntity as _userId. When I then call LoadUser() I get error after error, but theyre all empty and have no details about what went wrong. Just a response code 400 and
"transfer failed...error: No error" a weird one for sure.
Not sure if the image is clear, but here are some of the console errors:
[ovrAvatar2 native] stats::url file transfer failed: http response code: 400
uri: https://graph.oculus.com/4990112214450051?fields=id,avatar_v3{model.profile(rift_v03).platform(pc).sdk_version(Avatar2%20runtime%20SDK%2012.0.0.24.280%20client%20SDK%2012.0.0.24.280).client_version(0.1%2B2020.3.33f1).client_name(Cazforshort.Normcore%20MetaQuest){url,id,creation_time,animation_set}}
error: No error
error details:
trace-id: AoNu4I+D9uV
UnityEngine.Debug:LogError (object,UnityEngine.Object)
Oculus.Avatar2.OvrAvatarLog:Log (Oculus.Avatar2.OvrAvatarLog/ELogLevel,string,string,UnityEngine.Object) (at Assets/Oculus/Avatar2/Scripts/OvrAvatarLog.cs:101)
Oculus.Avatar2.OvrAvatarLog:LogCallBack (Oculus.Avatar2.CAPI/ovrAvatar2LogLevel,string,intptr) (at Assets/Oculus/Avatar2/Scripts/OvrAvatarLog.cs:83)
[ovrAvatar2 native] stats::Timing: Avatar specification retrieval failed, 0 bytes took 0.084287 seconds, http response 400
UnityEngine.Debug:Log (object,UnityEngine.Object)
Oculus.Avatar2.OvrAvatarLog:Log (Oculus.Avatar2.OvrAvatarLog/ELogLevel,string,string,UnityEngine.Object) (at Assets/Oculus/Avatar2/Scripts/OvrAvatarLog.cs:109)
Oculus.Avatar2.OvrAvatarLog:LogCallBack (Oculus.Avatar2.CAPI/ovrAvatar2LogLevel,string,intptr) (at Assets/Oculus/Avatar2/Scripts/OvrAvatarLog.cs:83)
Oculus.Avatar2.CAPI:OvrAvatar_Update (single) (at Assets/Oculus/Avatar2/Scripts/CAPI/OvrAvatarAPI_Avatar.cs:256)
Oculus.Avatar2.OvrAvatarManager:Update () (at Assets/Oculus/Avatar2/Scripts/OvrAvatarManager.cs:510)
[ovrAvatar2 native] specification::Failed to retrieve Avatar Specification for user id 4990112214450051
UnityEngine.Debug:LogError (object,UnityEngine.Object)
Oculus.Avatar2.OvrAvatarLog:Log (Oculus.Avatar2.OvrAvatarLog/ELogLevel,string,string,UnityEngine.Object) (at Assets/Oculus/Avatar2/Scripts/OvrAvatarLog.cs:101)
Oculus.Avatar2.OvrAvatarLog:LogCallBack (Oculus.Avatar2.CAPI/ovrAvatar2LogLevel,string,intptr) (at Assets/Oculus/Avatar2/Scripts/OvrAvatarLog.cs:83)
Oculus.Avatar2.CAPI:OvrAvatar_Update (single) (at Assets/Oculus/Avatar2/Scripts/CAPI/OvrAvatarAPI_Avatar.cs:256)
Oculus.Avatar2.OvrAvatarManager:Update () (at Assets/Oculus/Avatar2/Scripts/OvrAvatarManager.cs:510)
07-25-2022 02:18 PM
@mikedurand Just checking in. I can't seem to find any info about this error in the documentation.
07-26-2022 09:37 PM
Mitigating The Changes In File Locations In SDK v14 And Newer
What Happened
In order to make our shaders easier to be used by apps integrating the Meta Avatars SDK we moved several files from the Examples folder in the Meta Avatars SDK to Assets/Oculus/Avatar2/Scripts/ShaderUtils in SDK version v14 and newer. Here are the files that were moved:
Assets/Oculus/Avatar2/Scripts/ShaderUtils/AvatarCustom.cginc
Assets/Oculus/Avatar2/Scripts/ShaderUtils/AvatarCustomTypes.cginc
Assets/Oculus/Avatar2/Scripts/ShaderUtils/AvatarSubmesh.cginc
Assets/Oculus/Avatar2/Scripts/ShaderUtils/OvrAvatarMotionVectorsCore.hlsl
Assets/Oculus/Avatar2/Scripts/ShaderUtils/OvrAvatarVertexFetch.hlsl
Assets/Oculus/Avatar2/Scripts/ShaderUtils/OvrDecodeFormats.cginc
Assets/Oculus/Avatar2/Scripts/ShaderUtils/OvrDecodeUtils.cginc
This had the unfortunate consequence of potentially breaking projects that were referring to these shaders and includes from the previous location.
Mitigation
When upgrading the SDK version from a version prior to v14 to v14+, please delete the files under Assets/Oculus/Avatar2 from your project before installing the new version of the Meta Avatars SDK. If this is your practice before taking an upgrade then you likely were not affected by this change.
If, however, you have added or modified files under the Avatar2 directory structure and cannot delete the entire directory structure safely, then please make sure to delete the following files after importing the newer version of the SDK:
Oculus/Avatar2/Scripts/Skinning/GpuSkinning/Shaders/OvrDecodeFormats.cginc
Oculus/Avatar2/Scripts/Skinning/GpuSkinning/Shaders/OvrDecodeUtils.cginc
We apologize for any inconvenience this has caused.
07-30-2022 01:46 PM
Hi @mikedurand ,
that still doesn’t seem to fix the 400 error I’m seeing with Normcore.
08-03-2022 11:46 AM
I have a question regarding using avatars cross-platform. I've managed to get the preset avatars loading in for other platforms (ex. SteamVR). However when it comes to networking, if a player on SteamVR joins a player on Quest, the player on SteamVR won't be able to load in the Quest player's user avatar. It uses a random preset for the Quest user, presumably because it's trying to use the CDN to load the Quest user's avatar with their user id, but there is no access token on SteamVR so the call fails.
So my question is: for cross-platform multiplayer, is there a way for an Oculus player's user-created avatar to load for other players who aren't on an Oculus platform? Thanks