cancel
Showing results for 
Search instead for 
Did you mean: 

Assistance Needed with Meta Avatar SDK2 Body Tracking Issue ( T - Pose Error)

jinwoo629
Explorer

https://youtube.com/shorts/dXX3YpW6EX0?si=jLwY9WPcRr4T290f

jinwoo629_0-1735548636263.png

 

I am reaching out for assistance regarding an issue I encountered after upgrading from Avatar SDK1 to Avatar SDK2. While body tracking worked seamlessly in Avatar SDK1, after the upgrade, the avatar consistently assumes a T-pose.

I have followed the sample code and configuration settings provided in the SDK documentation, but unfortunately, I have not been able to resolve the issue.

To help you better understand the situation, I have attached the relevant code and environment settings. Your guidance on resolving this matter would be greatly appreciated.


private void ConfigureAvatar()
{
var isLocal = networkObject.HasInputAuthority;
SetIsLocal(isLocal);
gameObject.name = isLocal ? "LocalAvatar" : "RemoteAvatar";

if (isLocal)
{
//_creationInfo.features = CAPI.ovrAvatar2EntityFeatures.Preset_Default;

OvrAvatarInputManagerBehavior sampleInputManager = OvrAvatarManager.Instance.gameObject.GetComponent<OvrAvatarInputManagerBehavior>();
SetInputManager(sampleInputManager);

OvrAvatarLipSyncContext lipSyncInput = FindObjectOfType<OvrAvatarLipSyncContext>();
lipSyncInput.CaptureAudio = true;
SetLipSync(lipSyncInput);

AvatarLODManager.Instance.firstPersonAvatarLod = AvatarLOD;
AdjustAvatarLOD(streamLOD);

gameObject.name = "LocalAvatar";
}
else
{
_creationInfo.features = CAPI.ovrAvatar2EntityFeatures.Preset_Remote;
//_creationInfo.features &= ~CAPI.ovrAvatar2EntityFeatures.Animation;

SetInputManager(null);
SetFacePoseProvider(null);
SetEyePoseProvider(null);
SetLipSync(null);

var animationBehavior = GetComponent("OvrAvatarAnimationBehavior");
if (animationBehavior != null)
{
Destroy(animationBehavior);
}

gameObject.name = "RemoteAvatar";
}
}
private void UpdatePositionToCamera()
{
var cameraTransform = CameraRigRef.Instance.transform;
transform.SetPositionAndRotation(
cameraTransform.position,
cameraTransform.rotation);
}

private byte[] _streamedData;
private float _intervalToSendDataInSec = 0.08f;

private void Update()
{
if (!skeletonLoaded || _streamedData == null || IsLocal)
{
return;
}

if (_streamedData == null)
{
return;
}

//Apply the remote avatar state and smooth the animation
ApplyStreamData(_streamedData);
SetPlaybackTimeDelay(_intervalToSendDataInSec / 2);
_streamedData = null;
}

//If the skeleton is already loaded, we can start streaming the avatar state every "_intervalToSendData" seconds
private void LateUpdate()
{
if (!skeletonLoaded) return;
float elapsedTime = Time.time - _cycleStartTime;
if (elapsedTime > _intervalToSendData)
{
RecordAndSendStreamDataIfHasAuthority();
_cycleStartTime = Time.time;
}
}

//We "record" our avatar state and send it to other users, only if avatar is local (is ours)
private void RecordAndSendStreamDataIfHasAuthority()
{
if (!IsLocal) return;

var bytes = RecordStreamData(streamLOD);
networkBehaviour.ReceiveStreamDataTest(bytes);

//uint dataSize = RecordStreamData_AutoBuffer(streamLOD, ref dataBuffer);
/*if (dataSize > 0)
{
networkBehaviour.ReceiveStreamData(dataBuffer, (int)dataSize);
}*/
}

public void SetStreamData(byte[] bytes)
{
_streamedData = bytes;
}

 

0 REPLIES 0
Still need help?

Did this answer your question? If it didn’t, use our search to find other topics or create your own and other members of the community will help out.

If you need an agent to help with your Meta device, please contact our store support team here.

Having trouble with a Facebook or Instagram account? The best place to go for help with those accounts is the Facebook Help Center or the Instagram Help Center. This community can't help with those accounts.

Check out some popular posts here:

Getting Help from the Meta Quest Community

Tips and Tricks: Charging your Meta Quest Headset

Tips and Tricks: Help with Pairing your Meta Quest

Trouble With Facebook/Instagram Accounts?