Hi,
I am currently developing a multiplayer system in which each user is represented by an avatar. The avatars are animated by Live-Link and the Meta Quest. Unfortunately, the animation can only be seen locally, the other clients do not see the Live-Link animation. If I change the animation to a simple running movement, it is visible to everyone. Does anyone have an idea how to replicate the LiveLink data correctly so that it is visible to everyone?
Any updates ? We have something working but it’s complicated and involves broadcasting the final transform data of ALL the bones to each of the other players. Not ideal!
I’ve tried every quarter second and it runs decent, but obviously horrible. Getting it to run at even 60hz for me seems impossible, but VRChat does it, so I know its doable.
What is CMC? I am trying to maybe thinking of making a custom C++ Live Link Node?
Is replicating LiveLink’s internal UDP directly a lighter load to replicate than a PoseSnapshot struct or nearly the same?
Character Movement Component (CMC). It’s Epics movement for the First/Third person templates. It has built-in client-side prediction and server authority correction. Fully networked.
@RealAero You need to interpolate the movement changes snapshot to snapshot. Right now, based on what I see in the vid you are snapping to the new pose.
Personally I’d store Last Snap and compare to the next. Use margin of error (%) to determine what has changed enough to be relevant. Only send relevant. You’ll need to break a snap down to per bone data, send relevant, then build a new snap, then interpto.
Oh and Yeah, C++ will make this a hella lot more performant.
This sounds like the magic needed. I can granularly understand the concepts thanks to my blueprint knowledge, however I am unsure where to begin with C++ to do this on my own.
I’m dabbling in C++ to figure it out, using ChatGPT a ton haha.
Any chance this might be something you can help me program? Maybe as a project? If not, maybe know someone who could?
VRIK, especially Meta’s FBT is an extremely solid social presence feature, and it makes a world of a difference in my VR platform/game. I would love to have it in multiplayer and I am sure the Quest dev community is looking for a solution as well
Is there any update? I’m thinking about storing incoming Livelink Frame packet at 60Hz into a variable as a format of structure inside GameInstance class and replicate it to every client.