How Can I make a mouth that moves around the face( simular to sonic's mouth)?

I was wondering if any could help me with making a mouth tah can move side to side simular to sonic’s mouth. If anyone can help it will be greatly epreciated.

I have an idea for this, but I just want to check with you first: is the mouth flat? Are you talking about the old school Sonic, or the latest movie version?

If it’s 3D, with a hole for the mouth, you could create the mouth behind the face, teeth and tongue included, but the teeth and tongue should be separate objects.
Then you use a Boolean modifier on his face, with an object to create the mouth shape. The boolean object can be parented to an empty, or rig, or just offset from the head bone. Then you give it some shapekeys and just rotate it around the face.

Here’s a quick (very quick and rough) example…

Then just make sure to uncheck the boolean object from renders.