Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

XPU Animation XPU is a system introduced in AtomsUnreal 3. It consists of dividing the simulation of agents between CPU and GPU. The CPU continues to simulate simulates the movement of the root bone and calculate calculates the time and weight of each clip the agent is using at every tick. This information is passed to the GPU , which then uses this information it to blend the various animations and calculate the final pose. The full pose of each agent is saved only on the GPU and is then passed directly to the skeletal mesh instanced components for drawing. This increases performance and reduces CPU memory usage dramatically. The memory used on the GPU is only occupied by a single buffer containing all the animated sequences contained in the state machine, two buffers that contain containing the pose of the agents and another buffer containing root bone data and visibility data of the agents.

Since the root bone is simulated on the CPU, it is still possible to use the ground adaptation, navigation meshes and capsule collision. One of the limitations is not being able the inability to access the bone transforms from the CPU, the blueprint or agent methods like (i.e. get/setJointMatrix/Transform) can’t be used. For The XPU equivalent exists for components or behaviour tasks like joint transform/aim/align exists the XPU equivalent. These components/tasks use compute-shader to do joint transformation directly on the pose buffers on the GPU.

...

For secondary animations, it’s possible to use the PlayAnimationXPU behaviour tree task node or the agent group actor playAnimationXPU method.

It is essential to note the anim sequence Please note, any anim sequences used by the PlayAnimationXPU node is using must be used included somewhere inside the state machine asset. Even in an independent state is enough, even inside an detached state. Since the XPU Animation XPU load loads on the GPU all the animation clips used inside the state machine, if the playAnimationXPU uses a clip not used inside the state machine, the XPU system is not able to play it.

It is still possible to export Atoms and USD cache caches from a XPU simulation. The state machine XPU operator has a method that can build the full pose from the anim lips clip weight/time and from secondary motion data. So it uses this method to extract the full agent pose and save it inside the cache. Unfortunately, this method doesn’t consider the transformation done by jointTransform/Aim/AlignXPU task nodes.

...