Visualising NPC Animations on the Client

How do I animate NPCs solely on the client?

I’ve considered using Remote Events or Attributes to handle state changes (idle, walking, shooting, reloading, etc.) but I feel like this would be an inefficient method, especially when dealing with large amounts of characters. Is there a workaround for this I’m not seeing?