對最終畫面做的後製處理。每一個特效都是 圖層 清單裡的一列:從素材庫的後製效果分類加進來,用眼睛開關,點中它就在清單下方展開自己的參數。沒加過的特效不佔清單裡的位置,所以在這些特效出現之前儲存的場景,渲染出來還是原來的樣子
作用於整幅畫面、不屬於其中任何單個特效的那幾項——色調映射、曝光與 LUT——留在舞台詳細內容的 畫面色調 區塊裡
每個特效都屬於 場景,所以兩個場景可以讓同一個虛擬形象呈現出完全不同的觀感
這條鏈何時出現
這條鏈跑在 3D 舞台上,所以場景裡只要有 VRM 虛擬形象 或 3D 物件圖層,特效就能加入,畫面色調也會出現
純 Live2D 的場景預設也可以,因為 Live2D 圖層由 WebGPU 引擎合成進同一條鏈。開啟 使用舊版 WebGL 引擎 後,除非場景裡還有三維內容,素材庫的後製效果分類會被停用並寫明原因,畫面色調區塊也會消失。參見 渲染引擎
特效鏈
臨時花招
同樣是鏈上的一環,只是用法不同:臨時開一下,而不是調好了就一直留著
畫面色調
畫面色調區塊裝的是沒法當成一層來加入、也沒法關掉的那幾項——它們是顯示管線本身的一部分,不是鏈上可有可無的一環:
順序
這條鏈是固定的——特效在鏈上的位置不是一項設定。它只在兩個特效互相影響時才有意義,也正因如此,泛光是在調好色的畫面上暈開,而不是反過來:
- 景深——排在最前,因為它是內建鏈裡唯一讀取場景深度的環節
- Live2D 圖層,在 WebGPU 引擎 下——排在景深之後,因為平面美術本來就沒有深度,但排在所有色彩環節之前,好讓兩種虛擬形象作為同一張圖統一調色
- 邊緣光 → 輪廓 → 陰影——三個吃剪影的環節,按這個順序,邊緣光才留得住在描邊內側,陰影也才投得到這兩者身上
- 色差
- 泛光 → 擴散 → LUT → 色彩調整
- 像素化 與 亞空間干擾™,它們會改變畫面的取樣位置
- 衝擊波,然後是 雨滴——那塊玻璃擋在所有螢幕空間扭曲之前
- 自訂效果,作為一整組按場景裡的順序排列
- 底片顆粒 與 暗角,它們留在玻璃靠相機的一側
- 選取描邊,以及它上面的編輯器介面
色調映射與曝光不算這個列表裡的環節——它們是顯示變換,在畫面送出時作用於最終成像
雨 與 雪 也不在其中,但原因不同:它們根本不是後製環節,而是場景裡真實的幾何體。它們在這條鏈開始之前就已經畫好,所以上面每一環都會作用到它們身上
開銷
每啟用一個特效,後製處理就要多跑一遍全螢幕渲染,所以這一疊東西並不是白來的。設定裡有三項設定可以拿畫質換影格率:
所有特效都關閉時,Persona 會完全跳過後製鏈,直接渲染到畫布上——所以這份開銷只由真正用到它的場景來付
透過外掛 API
這裡的每一個值都是 SceneEffects 的一個欄位,用 scene.patch 修改,在 scene.changed 上讀回。它的結構刻意保持扁平——一個特效一個鍵,不做分組——這樣用戶端就能以通用的方式走訪整份註冊表。參見 SDK 參考
圖層清單裡出現哪些列,另有 environment.effectLayers 記著,它是一串內建特效的鍵。這兩者是分開的:enabled 管的是這個特效此刻開著沒有,effectLayers 管的是它有沒有一列。把某個特效 patch 成開,它的列會自動補上,所以外掛不必兩處都寫。不管開關來自面板、鍵盤快速鍵 還是一次 patch,畫面上都是 0.4 秒的淡入淡出,不會硬切
自訂效果 是這套扁平結構的例外:它們住在 effects 旁邊的 environment.customEffects 裡,是一個清單而不是一組固定的鍵,因為裝了哪些效果要到執行時才知道
stage.shockwave 是另一個例外:它是一條一次性指令,而不是一個存下來的值
最後更新於 2026年9月4日