How to properly hide legs (Half Body) in Meta Avatars SDK v40 with Combined Mesh?
Hi everyone,
I am currently developing a VR application using Unity 6000.2.10f1 and Meta Avatars SDK v40 (Style 2).
My goal is to render the remote avatars as "Half Body" (hide the legs), similar to the old Horizon style.
The Problem:
Since the avatars are generated as a single Combined Mesh (LOD00_combined_geometry), I cannot simply disable a "Legs" GameObject.
What I have tried:
1. Modified Manifestation Flags:
I tried setting CAPI.ovrAvatar2EntityManifestationFlags.Half in the Render or Start methods of my OvrAvatarEntity. However, the avatar still renders with full legs.
2. Bone Scaling (Critical Joints):
I added LeftLegProximal and RightLegProximal to the Critical Joints list and set their local Scale to Vector3.zero via script upon the OnUserAvatarLoadedEvent.
- Result: In the Unity Inspector/Debugger, the bone scale is indeed (0, 0, 0). However, in the Game View, the legs are still fully visible.
- I suspect this is because the Native Plugin / GPU Skinning ignores the Unity Transform changes and renders the original mesh data directly.
My Questions:
1. Is there a native API or a specific setting in SDK v40 that officially supports "Half Body" rendering for Style 2 avatars?
2. If the Native GPU Skinning overrides Unity Transforms, is the only solution to modify the Shader to discard pixels below a certain height? (Clip the legs in the fragment shader)
Any advice or workarounds would be greatly appreciated.
Thanks!