Meta Avatars 2 Lipsync - PUN 2 & Photon Voice issue!
Dear Devs, I'm struggling with problem since a week. I use PUN 2 and Photon Voice to bring Meta Avatars 2 in a multiplayer environment. Below are my issues, 1. When there is no Photon Voice setup in the scene, the Meta Avatars lipsync works perfect in the Photon multiplayer room. 2. When I add the Photon Voice to the prefab and setup the scene with Photon Voice Network, only the voice is there the Meta Avatars lipsync does not work. I understand there is a race condition happening between these two plugins. Please kindly help me resolve if anyone has already resolved such problem. This thread can help other devs as well in the future. Thanks!Solved12KViews1like29CommentsAdd animation to Avatar in Unity
I want to use avatars from Meta SDK as NPCs in an experience that I'm developing, using some Mixamo animations to make them look more alive. However I can't find a way to add an Animator controller to the OVRAvatarEntities. Has anyone done this?4.5KViews2likes6CommentsFailed Entitlement check 7 - user doesn't have app in library
Other oculus users cannot load their avatar in my apps. they already have a developer account and joined as admin in the app dashboard. There is an error something like this 'entitlement check failed. user doesn't have the app in the library, they are installing the app from ODH. Does anyone know what happens to this issue?3.9KViews1like3CommentsOther players avatars not showing up in Rift Application.
Dear Devs, My app has Rift and Quest support. I've created two applications in dashboard, one for Rift and one of Quest. I've also pasted the app IDs in the Platform and Avatars Settings file in Unity. Added a sample build to Rift application and Quest application and uploaded the build, added test users oculus email ID. The same oculus email ID is being used for the login inside Unity as well. I'm getting the blue default avatar instead of the user's avatar in the Rift Application. Please let me know how to resolve this. I've also added the Data Usage Checkup => Avatars, User Profile and User ID. Please let me know if anybody has resolved this issue.Solved3.9KViews1like11CommentsLocal Meta Avatars T-posing in front of Camera
Hi so I've tried implementing networked avatars (using PUN) in a unity VR app but no matter what I try to do, my local avatar always ends up t-posing sideways without any animations in front of the main camera rig. Everything is as its supposed to be, entitlement checks working, deploying on alpha channel, adding test users. I ended up getting this unity asset to cross-reference and see what I was doing wrong, but even in their implementation, the local avatar is t-posing outside first-person view, same problem as mine https://assetstore.unity.com/packages/tools/network/meta-avatars-pun2-vr-multiplayer-template-211918 Any insight would be appreciated!Solved2.7KViews0likes3CommentsMeta Avatars Loading Black and White without any textures
I am trying to load Meta avatars as local and remote players in a Multiplayer environment established by photon. I am able to load the meta avatars as local and remote players in one room but my meta avatars are displayed white and black.(i.e with out any shaders or textures). I am trying to instantiate the meta avatar as player when player joins the room using the user id. Below is my code: using System.Collections; using System.Collections.Generic; using UnityEngine; using Oculus.Avatar2; using Oculus.Platform; using Photon.Pun; using System; public class RemotePlayer : OvrAvatarEntity { [SerializeField] int m_avatarToUseInZipFolder = 2; PhotonView m_photonView; List<byte[]> m_streamedDataList = new List<byte[]>(); int m_maxBytesToLog = 15; [SerializeField] ulong m_instantiationData; float m_cycleStartTime = 0; float m_intervalToSendData = 0.08f; protected override void Awake() { ConfigureAvatarEntity(); base.Awake(); } private void Start() { m_instantiationData = GetUserIdFromPhotonInstantiationData(); _userId = m_instantiationData; StartCoroutine(TryToLoadUser()); } void ConfigureAvatarEntity() { m_photonView = GetComponent<PhotonView>(); if (m_photonView.IsMine) { SetIsLocal(true); _creationInfo.features = Oculus.Avatar2.CAPI.ovrAvatar2EntityFeatures.Preset_Default; //setting body tracking input SampleInputManager sampleInputManager = OvrAvatarManager.Instance.gameObject.GetComponent<SampleInputManager>(); SetBodyTracking(sampleInputManager); //setting lip sync input OvrAvatarLipSyncContext lipSyncInput = GameObject.FindObjectOfType<OvrAvatarLipSyncContext>(); SetLipSync(lipSyncInput); //setting face pose driver SampleFacePoseBehavior sampleFacePoseBehaviour = OvrAvatarManager.Instance.gameObject.GetComponent<SampleFacePoseBehavior>(); SetFacePoseProvider(sampleFacePoseBehaviour); //setting eye pose driver SampleEyePoseBehavior sampleEyePoseBehavior = OvrAvatarManager.Instance.gameObject.GetComponent<SampleEyePoseBehavior>(); SetEyePoseProvider(sampleEyePoseBehavior); gameObject.name = "MyAvatar"; } else { SetIsLocal(false); _creationInfo.features = Oculus.Avatar2.CAPI.ovrAvatar2EntityFeatures.Preset_Remote; //setting body tracking input SampleInputManager sampleInputManager = OvrAvatarManager.Instance.gameObject.GetComponent<SampleInputManager>(); SetBodyTracking(sampleInputManager); //setting lip sync input OvrAvatarLipSyncContext lipSyncInput = GameObject.FindObjectOfType<OvrAvatarLipSyncContext>(); SetLipSync(lipSyncInput); //setting face pose driver SampleFacePoseBehavior sampleFacePoseBehaviour = OvrAvatarManager.Instance.gameObject.GetComponent<SampleFacePoseBehavior>(); SetFacePoseProvider(sampleFacePoseBehaviour); //setting eye pose driver SampleEyePoseBehavior sampleEyePoseBehavior = OvrAvatarManager.Instance.gameObject.GetComponent<SampleEyePoseBehavior>(); SetEyePoseProvider(sampleEyePoseBehavior); gameObject.name = "OtherAvatar"; } } IEnumerator TryToLoadUser() { var hasAvatarRequest = OvrAvatarManager.Instance.UserHasAvatarAsync(_userId); while (hasAvatarRequest.IsCompleted == false) { yield return null; } LoadUser(); } private void LateUpdate() { float elapsedTime = Time.time - m_cycleStartTime; if (elapsedTime > m_intervalToSendData) { RecordAndSendStreamDataIfMine(); m_cycleStartTime = Time.time; } } void RecordAndSendStreamDataIfMine() { if (m_photonView.IsMine) { byte[] bytes = RecordStreamData(activeStreamLod); m_photonView.RPC("RecieveStreamData", RpcTarget.Others, bytes); } } [PunRPC] public void RecieveStreamData(byte[] bytes) { m_streamedDataList.Add(bytes); } void LogFirstFewBytesOf(byte[] bytes) { for (int i = 0; i < m_maxBytesToLog; i++) { string bytesString = Convert.ToString(bytes[i], 2).PadLeft(8, '0'); } } 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); } } } ulong GetUserIdFromPhotonInstantiationData() { PhotonView photonView = GetComponent<PhotonView>(); object[] instantiationData = photonView.InstantiationData; Int64 data_as_int = (Int64)instantiationData[0]; return Convert.ToUInt64(data_as_int); } }2KViews0likes2CommentsUsing Meta avatar with none VR applications in third person view- IOS Andriod Windows and Webgl
Hi, We want to build a application which will work with oculus quest 2 and have a cross platform feature. Users can enter either with Windows, Android or IOS and can control their character in third person view controler. Can we use Meta avatars with all other platforms?1.9KViews3likes2CommentsProblem Importing Meta Avatars SDK 14.0 into Unity
When importing Meta Avatars SDK 14.0 into Unity, I get the following errors: Multiple precompiled assemblies with the same name Newtonsoft.Json.dll included on the current platform. Only one assembly with the same name is allowed per platform. (C:/Unity Projects/How to setup Meta Avatar in Unity - VR Tutorial/Library/PackageCache/com.unity.nuget.newtonsoft-json@3.0.2/Runtime/Newtonsoft.Json.dll) and Multiple precompiled assemblies with the same name Newtonsoft.Json.dll included on the current platform. Only one assembly with the same name is allowed per platform. (Assets/Oculus/Avatar2/Scripts/AvatarEditorDeeplink/Newtonsoft.Json.dll) I have attempted to delete each of the files and I have also tried not importing Newtonsoft.Json.dll when reimporting the file in a new project. When I tried reimporting without `Newtonsoft.Json.dll`, I just got a bunch of other errors, which made me believe that wasn't a good idea. Any ideas?1.9KViews1like2CommentsPhoton Voice And Meta Avatars 2
I'm wondering how anyone of you have managed to resolve a conflict between how PhotonVoice and the new Meta Avatars access the microphone. When the PhotonVoiceNetwork is initialised it will eventually call Microphone.Start() in order to get at the microphone's input. However in doing so it creates a new audio clip which makes the audio clip that the meta avatar's LipSyncInput was dependent on no longer equal to the audio coming through the microphone. If I then call LipSyncInput.StartMicrophone() it will also eventually call Microphone.Start() which creates a new AudioClip making the audio clip that Photon's recorder was dependent on no longer equal to the audio coming through the microphone. In short, I can either get lip syncing using my mic input OR photon using my mic input, but not both at the same time.1.7KViews0likes2CommentsRemote Meta Avatar Loading with Invalid Access Token Locally
Hi, when a local user has an invalid access token and wants to load a remote avatar, that avatar is broken (head, arms are stuck). That thing should not happen because the remote user has an avatar and has a valid token as well. Therefore, the network info should be fine. However, I found that if local user has an invalid access token, the remote avatar is not loaded, it is replaced by the default one (broken). I found a workaround, just sending through the network properties the remote access token, but it's not a correct solution. Has anyone faced this issue? Thanks in advace for any help.1.6KViews0likes2Comments