01-05-2023 08:36 AM
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.
The first time a user is loaded the critical joints are in the correct place as shown by the red cubes.
However after calling LoadUser() again the transforms get zeroed. We cannot know where the users wrists and head are now
Here are the steps to reproduce:
Create a barebones scene with a single SampleAvatarEntity. Also add a Sample avatar Attachment component to the entity.
Add the joints that you want to track. In my case I need to know where the head and hands are.
Add a Tracked Pose Driver to the Camera.
Add this snippet to the Sample Avatar Entity code to allow you to manually reload the user.
Run. As you can see the joint transforms are in the right place. Now click the 3 dots on your SampleAvatarEntity to open the context menu. Now trigger the LoadUser call.
As you can see, the critical joint transforms just snap to zero. Although the avatar will still track my movements fine, it makes it impossible to add attachments to the joints if I'm going to be calling LoadUser() regularly.
04-30-2023 09:59 AM
Were you ever able to resolve this?