As far as I know, there isn’t a way to change or make a basepart or meshpart “Flexible” like rubber or a mouth meaning this would take a lot of code. You could make an animated mouth that has an animation of it lipsyncing to the audio you have.
im guessing you mean a like manual mouth movement system with the lips in sync
this will take a lot of work
now dont complain that im like telling you to give up but you will probably have to do a table for every song with a list of numbers corresponding to every mouth move
you could do like
local song1 = {
--time (in ms probably) --number for mouth movement
{ 5217, 4}
}
So I had a recording system like this but it was not syncing up well.
local rVar = false
local Var = ""
function ClickTest()
game.ReplicatedStorage.AnimatronicEvents.Nerd:FireServer()
rVar = true
end
function UnClickTest()
game.ReplicatedStorage.AnimatronicEvents.NerdOff:FireServer()
rVar = false
end
local l__mouse__1 = game.Players.LocalPlayer:GetMouse();
l__mouse__1.KeyDown:connect(function(p20)
if p20 == "v" then
ClickTest();
end;
end);
l__mouse__1.KeyUp:connect(function(p21)
if p21 == "v" then
UnClickTest();
end;
end);
while true do
if script.Parent.Recording then
if rVar == true then
Var = Var .. "1"
else
Var = Var .. "0"
end
script.Parent.Var.Value = Var -- save the Var string to the Var StringValue
wait(0.0075)
end
end```