在製作字幕的過程中,視覺效果的細節常常影響觀眾的觀感,其中「淡入淡出」就是一個簡單卻有效的技巧。雖然在 Aegisub 中手動加入 \fad()
標籤不難,但若字幕行數量繁多,一一套用會十分耗時。為了提升效率,我請 ChatGPT 編寫了一個 Lua 自動化腳本,可以一鍵批次替選取的字幕加上 \fad(200,100)
的效果,也就是 200 毫秒淡入與 100 毫秒淡出。
這個腳本可以放入 Aegisub 的 automation/autoload
資料夾中,並會自動載入。在使用上,只需要選取想套用特效的字幕,然後透過 Aegisub 上方選單點擊「自動化」中的腳本名稱,就能立即套用,無須手動編輯每一行。透過這種方式,不僅節省時間,也讓字幕在視覺上更加流暢自然。
📝 批次淡入淡出.lua
-- 批次加入 \fad(200,100) 特效的 Lua 腳本
-- 適用於 Aegisub Automation 4
script_name = "批次加入 \\fad(200,100)"
script_description = "在對話行開頭加入 \\fad(200,100)"
script_author = "ChatGPT"
script_version = "1.0"
include("utils.lua")
function add_fad(subs, sel)
for i, line_index in ipairs(sel) do
local line = subs[line_index]
-- 確保是對話類型
if line.class == "dialogue" and not line.comment then
local text = line.text
-- 檢查是否已有 \fad,避免重複添加
if not text:match("\\fad%(") then
-- 檢查是否已有 override block {\xxx}
if text:match("^{\\[^}]*}") then
-- 已有 override block,就插入在裡面
text = text:gsub("^{\\([^}]*)}", "{\\fad(200,100),%1}")
else
-- 沒有 override block,就新增一個
text = "{\\fad(200,100)}" .. text
end
line.text = text
subs[line_index] = line
end
end
end
aegisub.set_undo_point("加入 \\fad(200,100)")
end
aegisub.register_macro("加入 \\fad(200,100)", "在選取的對話行加入 \\fad(200,100)", add_fad)
以下是實際操作流程與畫面解說:
▲ 在 Aegisub 中打開影片與字幕檔後,點選上方選單「自動化」→「自動化(A)...」,進入自動化腳本管理介面。
▲ 自動化腳本管理器會顯示目前可用的內建與自訂腳本,這裡可以看到數個已載入的腳本。
▲ 將編寫好的「批次淡入淡出.lua」腳本放入 Aegisub 的 C:\Program Files (x86)\Aegisub\automation\autoload
資料夾中,即可在程式開啟時自動載入。
▲ 回到自動化腳本管理器點擊下方「重新掃描自動載入資料夾」即可看到新加入的腳本顯示在清單中,最後按「關閉」。
▲ 選取欲套用特效的字幕行,然後從自動化選單中點選剛剛載入的「加入 \fad(200,100)」腳本。
▲ 套用後會自動在字幕開頭加入 {\fad(200,100)}
,達成批次淡入淡出的視覺效果。這樣就不需手動一行一行修改了。
這樣的腳本簡單實用,適合日常字幕製作中需要快速統一視覺效果的情境,若有需要也可依需求調整淡入與淡出的時間參數。
留言區 / Comments
萌芽論壇