NyuFX

From Fansub Wiki
Jump to: navigation, search

Definition

NyuFX ist ein Karaoke Effekt Generator auf Basis des .ass Formats. Durch laden einer .ass mit den Karaoke Zeiten und einem Lua Skript erzeugt es eine .ass mit einer Vielzahl von Dialog Zeilen, welche dem Karaoke Text mit Effekten entsprechen.

Das Programm ermöglicht das Abrufen von Pixel und Vektor Information von Text oder Zeichnungen, sowie das Importieren von Bildern, und ermöglicht somit fortgeschrittenere Darstellungsmöglichkeiten, als es der übliche Gebrauch von ASS-Tags erlaubt.

Download und Nutzen

caption|200px|none Runterzuladen ist das Programm hier.

Mindestanforderung ist Windows 95.

Es ist portabel, da es lediglich auf die Standard Bibliotheken im Windows Ordner zugreifen muss.


Um es zu nutzen, sollten bereits sehr gute Kenntnisse über den Advanced Substation Alpha Format und Grundwissen über die Skript Sprache Lua vorhanden sein.

Dem Program wird zur Erstellung von Effekten die Karaoke Zeiten und ein Lua Skript, welches die Effekt Generierung beschreibt, übergeben. Im Skript wird anhand bereits vorhandener Daten der .ass Datei und einiger Funktionen Werte berechnet und als neue Dialog Zeilen in eine neue .ass ausgegeben.

Ein ausführliches Tutorial findet sich hier(englisch).

Warum NyuFX?

Warum NyuFX verwenden und nicht ein anderes?

Dieser Generator wurde geschrieben, weil andere Programme wichtige Aufgaben nicht erfüllen konnten. Ist Adobe After Effects kostenpflichtig und einschränkend, konnten die Aegisub Generatoren keinerlei Pixel oder Vektor Effekte. Wurde Asscalc nicht anständig dokumentiert und ist unübersichtlich, ist ssapawaa umständlich und fehlt es noch an Vektor Effekten. Die Avisynth Plugins sind schwer zu erlernen und zu nutzen.

NyuFX ist für fortgeschrittene Karaoke-FXer, die mehr als einfache Effekte im Karaoke Templater machen, sich allerdings nicht mit dem Schreiben eigener Programme oder Nutzen riesiger Grafik-Bibliotheken überfordern wollen.

Beispiel

Ein einfacher "Silbe wird größer/kleiner zum Einsatz"-Effekt.

function sub(line)
	local l = table.copy(line)
	l.start_time = line.start_time - 400
	l.end_time = line.end_time + 400
	l.text = "{\\fad(400,400)\\bord3\\blur2}" .. line.text
	Output(l)
end

function romaji(line)
	local l = table.copy(line)
	for si, syl in ipairs(line.syls) do
		local syl_start = syl.start_time
		local syl_mid = syl.start_time + syl.duration / 2
		local syl_end = syl.end_time
		l.text = string.format("{\\an5\\pos(%.3f,%.3f)\\t(%d,%d,\\fscy150)\\t(%d,%d,\\fscy100)}%s", syl.middle, syl.center, syl_start, syl_mid, syl_mid, syl_end, syl.text)
		Output(l)
	end
end

function kanji(line)
	local l = table.copy(line)
	for ci, char in ipairs(line.chars) do
		if char.text ~= " " then
			local char_start = char.start_time
			local char_mid = char.start_time + char.duration / 2
			local char_end = char.end_time
			l.text = string.format("{\\an5\\pos(%.3f,%.3f)\\t(%d,%d,\\fscx150)\\t(%d,%d,\\fscx100)}%s", char.middle, char.center, char_start, char_mid, char_mid, char_end, char.text)
			Output(l)
		end
	end
end

function main()
	InOutTimes(800)
	for li, line in ipairs(lines) do
		if line.styleref.alignment >=7 then
			romaji(line)
		elseif line.styleref.alignment <=3 then
			sub(line)
		else
			kanji(line)
		end
		ProgressStatus(li / #lines * 100)
	end
	print("Copy file to destination path!")
end

main()

Links