Aegisub:運用自動化腳本批次淡入淡出字幕

2025/05/19 49 1 軟體應用 , 多媒體 , 影片編輯

在製作字幕的過程中,視覺效果的細節常常影響觀眾的觀感,其中「淡入淡出」就是一個簡單卻有效的技巧。雖然在 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)},達成批次淡入淡出的視覺效果。這樣就不需手動一行一行修改了。

這樣的腳本簡單實用,適合日常字幕製作中需要快速統一視覺效果的情境,若有需要也可依需求調整淡入與淡出的時間參數。

贊助廣告 ‧ Sponsor advertisements

留言區 / Comments

萌芽論壇