I’ve recently had this problem and the solution is surprisingly simple. It makes use of Roblox’s RunContext.
First, create a Script and change the RunContext to Client this will allow us to be able to run client scripts in other spaces that local scripts could not. In this case, the workspace where our character NPC is.
Then, we will simply copy the Animate script to our new script. You can do this by creating a new rig and taking the Animate script from there.
After copying the code, we will just take the children of the animate script and place it in our new script.
Then, in your NPC model, we will just delete the old Animate script and place down our new one.
Hope this helps