Läppsynk
Vad säger du?

Göra det mer realistiskt
Det finns några figurer som ska prata, och just nu ser man bara en pratbubbla. Jag kunde redan använda ljud, men det såg inte snyggt ut än. När någon pratar måste munnen röra sig, därför har jag tagit reda på hur man gör i tecknad film.
Kort sagt kan man med minst 6 till 9 olika bilder av munnen få det att se ut som att den verkligen pratar. Det finns olika program som omvandlar ljud till vilken bild som ska visas.
Ljudinput > program > [ABBFGG] output.
Sedan visas en annan frame av huvudet i spelet för varje bokstav.
-- convert csv to a lua table
local libSyncTable = {}
for line in csvData:gmatch("[^\r\n]+") do
local a, b = line:match("(%S+)\t(%w)")
local framekey
if b == "A" then
framekey = 1
elseif b == "B" then
framekey = 2
elseif b == "C" then
framekey = 3
elseif b == "D" then
framekey = 4
elseif b == "E" then
framekey = 5
elseif b == "F" then
framekey = 6
-- elseif b == "G" then
-- framekey = 7
-- elseif b == "H" then
-- framekey = 8
-- elseif b == "X" then
-- framekey = 9
end
table.insert(libSyncTable, {a, framekey})
end
Det finns olika program som gör det här, men jag har valt det gratis programmet https://github.com/DanielSWolf/rhubarb-lip-sync.
if not os.path.exists(audioPath_lsc):
print(f"create lcs {audioPath} with text {text}")
with open("../temp/lipsync.txt", 'w') as file:
file.write(text)
command = [
"../src/lib-dev/rhubarb/rhubarb", # Het pad naar het rhubarb-programma
audioPath_ogg, # SOUND_FILE
"--recognizer", "pocketSphinx", # Recognizer instellen
"--exportFormat", "tsv", # Export formaat instellen
"--dialogFile", f"../temp/lipsync.txt", # TEMP_DIR voor dialogFile
"--output", audioPath_lsc, # OUTPUT_FILE
"--datFrameRate", "60", # Data frame rate
"--extendedShapes", "ABCDEF" # Extended shapes
]
result = subprocess.run(command, check=True)
if result.returncode != 0:
print("error")