I’ve seen some technical demos here, but there isn’t any relevant code available yet. Could I get more information in advance, such as the specific code files?
I would like to know the implementation scheme for managing multiple SKM ticks in MASS.
Hi, sorry for the delay following up on this. I had to talk with the dev team to see what info we could talk about.
In general, the Mass approach we’re currently looking at, which is similar to the one used in The Witcher demo, uses Mover as initial input (via a translator) to obtain the actor’s previous position and velocity. That’s then used by various mass navigation processors to generate the desired movement (FMassDesiredMovementFragment). We then have another processor which generates a trajectory from the desired movement. Then we have the last set of processors, one which writes the trajectory data directly to the UAF component (via SetVariable), and the other that writes the desired velocity and rotation back out to Mover.
Within the UAF graph, we then have the motion matching trait setup to take the trajectory data as an input to then generate a pose.
The current plan is that we’ll show some of this in sample content on or shortly after the 5.8 release, but that won’t include any UAF-related functionality since it’s still too early in development.
Not sure whether that info helps particularly or not, so I’m happy to discuss this further if you have specific questions.
That part of the presentation is a little misleading. We don’t actually tick the SKM components at all in the UAF pipeline; it’s one of the reasons that we’re able to get a significant amount of game thread performance back. All that’s needed is that the LOD is calculated for the mesh, and that can be done independently from the tick. Then the LOD is set onto the mesh component and passed to the UAF graph when you call RunGraph. At the end of the UAF graph, you then use WritePose or WriteOutput, which does all the work of updating the mesh that’s required for the renderer.