Easy Performant Outline 2D | 3D
本篇文章、圖片出處來自 EP Outline Documentation
軟體版本與本翻譯文件可能會有落差,本翻譯文件僅供參考。
本譯文為本站譯者原創翻譯內容,文字著作權歸本站所有。
未經授權,請勿任意轉載、改作或商業使用。
Easy Performant Outline 2D | 3D v3.5.9
Easy Performant Outline 是一款功能強大的工具,專為在 Unity 中輕鬆為物件添加可自訂的 2D 與 3D 描邊效果而設計。它支援多種渲染管線並經過全面優化,讓你能在不犧牲效能的前提下,創建高品質的描邊效果。無論你在開發 2D 專案或 3D 專案,這款資產都提供了靈活的選項,可調整顏色、粗細、風格等,幫助你提升物件在遊戲和應用中的視覺魅力與可讀性。
Table of Contents (目錄)
- Introduction (介紹)
- Installation (安裝說明)
- Importing the Asset into the Project (將資產匯入專案)
- Setup for Different Renderers (針對不同渲染管線的設定)
- Setup for Built-in Renderer (Built-in 渲染管線設定)
- Setup for URP Renderer (URP 渲染管線設定)
- Setup for HDRP Renderer (HDRP 渲染管線設定)
- Troubleshooting Installation Issues (安裝問題疑難排解)
- Core Components (核心元件說明)
- Outliner settings (Outliner 設定)
- Outlinable settings (Outlinable 設定)
- Advanced Settings (進階設定)
- Masking (遮罩功能(Masking))
- 2D Functionality (2D 支援功能)
- Integration (整合與擴充)
- Working with the C# API (使用 C# API)
- DOTween Support (支援 DOTween 動畫系統)
- Frequently Asked Questions (FAQs) (常見問題(FAQs))
- Contact Information (聯絡資訊)
Introduction (介紹)
Easy Performant Outline 是一款用於在 Unity 中建立高品質 2D 與 3D 物件描邊效果 的工具。 這個資源可以讓你輕鬆地為物件加上描邊, 幫助物件在場景中更加突出,提升視覺辨識度,並增強互動感。 它同時也解決了傳統描邊在效能上的問題, 讓你能夠以極低的資源消耗產生描邊效果, 因此特別適合用在對效能有高度要求的專案中。
Key features(主要特色):
操作簡單:只需幾分鐘即可完成描邊設定 支援多種 Unity 渲染管線(Built-in、URP、HDRP) 高效能表現:即使場景中有大量描邊效果,也能維持順暢運作 完整的描邊參數自訂功能:可調整顏色、粗細、模糊程度等 支援與 DoTween 整合的動畫效果,打造動態描邊視覺 相容於 2D 與 3D 物件,包括對 Sprite 的支援 支援 Render Graph,適用於現代化專案架構
Requirements(系統需求):
支援的 Unity 版本:2021.3.0 或以上版本 支援的平台:Android、iOS、PC、Mac、PS4、Oculus/Vive、WebGL 等 支援的渲染管線:Standard(內建)、Universal Render Pipeline(URP)、High Definition Render Pipeline(HDRP) 硬體需求:此資源已針對現代 GPU 進行優化, 但若是在較為複雜的場景中使用,建議至少配備 中階等級 GPU 以獲得最佳效能表現
Links to tutorials and promotional materials (教學與宣傳素材連結):
- Full Overview of Easy Performant Outline (Installation and Usage)
- Feature Demonstration of the Asset in Action (Older Video)
- Configuring Easy Performant Outline through C# (Older Video)
Installation(安裝說明)
Importing the Asset into the Project (將資產匯入專案) 若要透過 Unity 套件管理器(Unity Package Manager)安裝 Easy Performant Outline,請依照以下步驟操作:
- 開啟你的 Unity 專案。
- 前往 Window > Package Manager。
- 點選 My Assets 分頁,找到 Easy Performant Outline,然後點擊 Import(匯入)。
- 依照畫面上的指示完成匯入流程。
不同渲染管線的設定
Built-in 渲染管線設定
若要為 Built-in 渲染管線 設定 Easy Performant Outline,請依照以下步驟操作:
1.新增 Outliner 元件
將 Outliner 元件 加到你希望渲染描邊效果的 場景攝影機 上。
2.新增 Outlinable 元件
將 Outlinable 元件 加到你想要透過描邊突顯的物件上。
只需這些簡單步驟,就能在使用 Built-in 渲染管線 的場景中啟用描邊效果。
Core Components(核心元件)
Outliner 設定
Mask (遮罩)
用來定義 Outliner 應該渲染哪些圖層(Layer)。 如果你在 Outlinable 物件上選擇了特定圖層, 你可以透過這個遮罩設定,讓某些圖層不被這個 Outliner 渲染。 你也可以在同一台攝影機上加入多個 Outliner, 各自負責不同的圖層渲染。
渲染階段(Stage)
用來定義描邊效果的渲染時機。
- Before Transparents(透明物件之前)
描邊效果會在場景中的透明物件繪製之前渲染。 - After Transparents(透明物件之後)
描邊效果會在場景中的透明物件繪製之後渲染。
渲染策略(Rendering Strategy)
用來定義描邊的渲染方式。 若使用逐物件描邊(per-object outlines), 各個物件的描邊邊緣不會彼此融合。 請注意,這種方式會對效能造成一定影響。
渲染模式(Rendering Mode)
用來定義 Outliner 在描邊時應使用 HDR(高動態範圍) 還是 LDR(低動態範圍)。
- 如果你有使用如 Bloom(泛光) 這類的後處理效果,建議使用 HDR。
- 在其他情況下,使用 HDR 可能只是額外消耗資源而無實質好處。
請注意:
若相機本身不支援 HDR,或系統中已將 HDR 停用,則即使設定為 HDR 也不會生效。
主緩衝區尺寸模式(Primary Buffer Size Mode)
Primary Buffer Size Mode 參數可讓你選擇描邊渲染時所使用的解析度處理方式。
可用的選項包括:
- Native(原生解析度)
描邊會以螢幕的原生解析度進行渲染,確保最高的畫質。 - Scaled(縮放解析度)
描邊解析度會根據 Primary Render Scale 參數,對水平與垂直方向進行縮放。 例如:若螢幕解析度為 800x600,Primary Render Scale 設為 0.5, 則描邊會以 400x300 的解析度渲染。 建議在不影響視覺品質的前提下,盡可能將此值設低, 因為較低的解析度能提升效能。 - Width Controls Height(寬度控制高度)
描邊的寬度會根據 Primary Size Reference(主要尺寸參考值) 設定, 高度則會自動調整,以維持正確的寬高比。 - Height Controls Width(高度控制寬度)
與前一模式類似,不過此模式中是以高度為基準,寬度則會依照比例自動調整。
Blur Shift (模糊偏移)
用來控制最終影像所套用的模糊程度。 請注意,數值大於 1 時可能會產生視覺瑕疵(artifacts)。
Dilate Shift (膨脹偏移)
用來控制最終影像的膨脹效果程度。 請注意,數值超過 1 時可能會產生視覺瑕疵(artifacts)。
Dilate Iterations (膨脹疊代次數)
定義應該套用多少次膨脹效果的疊代處理。 數值越小可提升效能,而數值越大則會產生更明顯的膨脹效果。
其中,Shift(偏移量)與 Iterations(疊代次數)之間的差異, 與 Blur Shift(模糊偏移)與 Blur Iterations(模糊疊代次數) 的關係相同。
Dilate Quality (膨脹品質)
用來控制膨脹效果的品質等級。
- Base(基礎)設定效能最佳,
- High(高)與 Ultra(極高) 則提供更高的視覺品質, 但會消耗更多資源。
Base模式會沿著水平與垂直軸方向進行膨脹,這種方式效能較好,但效果較為近似(不精確)。 而 High 與 Ultra 模式則採用圓形取樣方式(circular sampling), 雖然更耗資源,但能產生更精確的膨脹描邊效果。 為了達到最佳效能,建議在可能的情況下使用 Base 模式。
Blur Iterations (模糊疊代次數)
用來定義應該套用多少次模糊效果的疊代處理。 較小的數值能提升效能,而較大的數值則會產生更強烈的模糊效果。 Shift(偏移)與 Iterations(疊代次數)之間的差異在於功能用途:
- Iterations 決定為了達成所需效果,需要進行多少次後處理的運算
- Shift 則是在該範圍內調整效果強度的參數
為了更好的效能表現,建議優先調整 Shift 值來達到預期效果,只有在必要時才增加 Iterations 數量。
Blur Type (模糊類型)
用來選擇要套用哪種類型的模糊效果。
效能最佳的選項是 方框模糊(Box Blur),而視覺效果最理想的是 高斯模糊 13x13(Gaussian 13x13)。
Outlinable settings
Outlinable 元件用來決定哪些物件會被描邊系統套用描邊效果。
Complex Masking Mode(複合遮罩模式):
- None(無)
不套用任何遮罩效果。 - Obstacle Mode(障礙模式)
描邊僅會出現在被標記為「障礙物」的物件後方。 - Masking Mode (遮蔽模式)
描邊會被標記為「遮罩」的物件遮擋起來,即隱藏在其後方。
Drawing Mode(繪製模式):
- Normal(一般)
以預設方式繪製描邊。 - Z Only(僅寫入 Z 緩衝)
僅繪製到 Z 緩衝區。這對於通常不會寫入 Z 緩衝的物件(如精靈圖 Sprite 或透明物件)非常有用。 - Generic Mask(通用遮罩)
將模型繪製為遮罩,描邊將完全不可見。 - Mask and Obstacle(遮罩與障礙物)
請參考「遮罩設定(Masking)」章節以獲得更多資訊。
Outline Layer (描邊圖層)
用來定義描邊所屬的圖層。
如果你有多組可能會互相重疊的描邊效果, 可以為不同的 Outlinable 物件指定不同的圖層, 並在場景中加入多個 Outliner 來分開處理。
這樣一來,各組描邊就不會互相干擾。
Render Style (渲染樣式)
用來決定你是要繪製一般的統一描邊,還是要將描邊區分為被遮擋與未被遮擋的描邊/填色。
Back Parameters (背面參數)
用來設定當描邊被其他物體遮擋時(例如在牆壁後方)所套用的描邊參數。
Front Parameters (前景參數)
用來設定直接可見的描邊效果(未被任何物體遮擋)所使用的參數。
Outline Color (描邊顏色)
設定描邊的顏色。
Dilate Slider (膨脹滑桿)
可調整每個物件的膨脹偏移量,但啟用後會開啟資訊緩衝區(info buffer)。
Blur Slider (模糊滑桿)
調整套用在每個物件上的模糊程度,同樣也會啟用資訊緩衝區(info buffer)。
Fill Parameters Selector (填色參數選擇器)
用來選擇可用的填色類型。
每種填色類型可能具有不同的屬性,用以描述該填色在每個 Outlinable 上的渲染方式。
若未選擇任何填色類型,則不會套用任何填色效果。
Renderers(渲染器)
- Renderer (渲染器)
指定用來產生描邊效果的 渲染器元件。
通常這應該包含你模型或物件上所有相關的渲染器。
被停用的渲染器將不會參與描邊渲染。 - Bounds Mode (邊界模式)
用來定義渲染器的邊界(Bounds)是如何決定的:- ○ Default(預設): 直接使用渲染器本身的邊界資料。
- ○ Force Recalculate(強制重算): 每一幀都重新計算邊界,適用於需要動態更新的情況。
- ○ Manual(手動): 允許使用者自行手動設定自定義邊界。
- Cull Mode (剔除模式)
用來定義在渲染 Outlinable 目標時應使用哪種剔除模式:- 通常選擇 Back(背面剔除) 是最合適的。
- 如果物件的幾何體需要從兩側都可見,請選擇 Off(不剔除)。
- Front(前面剔除) 是極少數特殊情況下才會使用的選項,但若有需要也可啟用。
- Cutout Source (剪裁來源)
用來指定作為**剪裁透明度來源(Alpha Source)**的貼圖。 當你選擇了一張貼圖後,系統會顯示額外的控制選項供你調整。- Cutout Threshold(剪裁閾值): 一個滑桿,用來設定貼圖中需要被渲染的最小透明度值。透明度低於此閾值的像素將會被捨棄(不顯示)。
- Texture Index(貼圖索引): 適用於貼圖陣列(Texture Arrays),此欄位可用來指定要使用陣列中的哪一張貼圖。
- Cutout Mask(剪裁遮罩): 用來指定貼圖中哪一個通道(例如 R、G、B 或 A)將作為剪裁判斷的依據。
- Submesh Index (子網格索引)
用來指定描邊所套用的子網格(Submesh)索引值。
Advanced Settings(進階設定)
Masking(遮罩)
Obstacle Mode(障礙模式)
在此模式下,描邊只會在被標記為「障礙物」的物件後方可見。 這有助於強調被描邊的物件位於其他物體之後,營造出遮擋與層次感。 例如:人物的描邊只會在汽車後方時出現。
Masking Mode (遮蔽模式)
在此模式下,描邊會被標記為「遮罩」的物件所遮蔽,用來確保描邊不會出現在某些特定場景元素的後方,以達到更乾淨、精確的視覺效果。 例如:人物的描邊會被汽車擋住而不顯示出來。
每種模式都能根據場景需求,呈現不同的視覺效果。
2D Functionality (2D 功能支援)
2D 精靈圖(sprites)和類似元素通常不會寫入 Z 緩衝區(Z-buffer), 而這對於實現**前後遮擋渲染模式(front-back rendering mode)**來說是必要條件。
為了解決這個問題,你可以將某些重疊的物件設為 Z-only 模式, 強制它們將資料寫入 Z-buffer,從而正確處理遮擋關係。
- 若未寫入 Z 緩衝區:
物件在前後遮擋模式中可能無法正確渲染,因為它們的深度資訊不會被系統計算在內。 - 若有寫入 Z 緩衝區:
物件的深度會正確記錄在Z-buffer中,可實現正確的前後遮擋渲染與圖層排序。
Integration(整合應用)
Working with the C# API (使用 C# API)
你可以透過程式腳本輕鬆地與 Outlinable 元件 進行互動:
- 若要存取指派在同一個 GameObject 上的元件:
using EPOOutline; using UnityEngine; public class MyScript : MonoBehaviour { private void Start() { var outlinableToUse = GetComponent(); } } - 在執行時新增 Outlinable 元件:
using EPOOutline; using UnityEngine; public class MyScript : MonoBehaviour { private void Start() { var outlinableToUse = gameObject.AddComponent(); } } - Outlinable 元件的主要屬性:
- 設定渲染樣式(Setting render styles):
// Render both behind and in front outlinable.RenderStyle = RenderStyle.FrontBack; // Render regardless of being obscured outlinable.RenderStyle = RenderStyle.Single; - 繪製模式(Drawing Modes):
// Normal rendering outlinable.DrawingMode = OutlinableDrawingMode.Normal; // Z-buffer only outlinable.DrawingMode = OutlinableDrawingMode.ZOnly; // Both outlinable.DrawingMode = OutlinableDrawingMode.Normal | OutlinableDrawingMode.ZOnly; - 設定描邊參數(Configuring Outline Parameters):
// Outline color outlinable.OutlineParameters.Color = Color.green; // Blur shift outlinable.OutlineParameters.BlurShift = 0.5f; // Dilate shift outlinable.OutlineParameters.DilateShift = 0.5f; // Disable outline outlinable.OutlineParameters.Enabled = false; - 管理圖層與渲染目標(Managing Layers and Render Targets):
// Enable layer 3 outlinable.OutlineLayer = 3; // Add a renderer outlinable.OutlineTargets.Add(new OutlineTarget(GetComponent())); - 填色模式設定(Fill Mode Settings):
outlinable.OutlineParameters.FillPass.Shader = Resources.Load("Easy performant outline/Shaders/Fills/ColorFill"); // Fill color outlinable.OutlineParameters.FillPass.SetColor("_PublicColor", Color.yellow);
- 設定渲染樣式(Setting render styles):
還提供了更多範例,說明如何設定前景與背後描邊的參數。
DOTween Support (支援 DOTween)
若要啟用 DOTween 支援,請依照以下步驟操作:
- 開啟 DOTween 設定頁面。
- 在設定中直接啟用描邊支援(Outline Support)。
若要在你的腳本中使用 DOTween,請加入以下內容:
using DG.Tweening;
之後你就可以輕鬆地為大多數 Outlinable 參數製作動畫。 例如:
// Animate color
outlinable.FrontParameters.DOColor(new Color(0, 0, 1, 0), 0.5f);
// Animate dilate shift
outlinable.FrontParameters.DODilateShift(1.0f, 0.5f);
// Animate blur shift
outlinable.FrontParameters.DOBlurShift(0.0f, 0.5f);
Frequently Asked Questions(常見問題) (FAQs)
Q.EP Outline 對初學者來說好上手嗎?
A.是的,這套工具沒有什麼複雜的地方。完成初始設定後,你只需要使用兩個元件就能啟用描邊效果。
Q.支援哪些平台?
A.支援的平台包括:Android、iOS、PC、Mac、PS4、Oculus/Vive、WebGL。其他平台應該也能運作,但我們尚未有機會進行測試。
Q.支援哪些版本的 Unity?
A.應該從 Unity 2021.3.0 起就能正常運作。 在更舊的版本上可能也可以使用,但不在官方支援範圍內。
Q.範例場景不完整。我在哪裡可以找到影片中展示的那個版本?
A.我們無法加入完整版本,是因為與部分免費資產的開發者之間有授權上的歧見。
若你需要協助,請透過電子郵件(pirate.parrot.software@gmail.com)或加入我們的 Discord 伺服器與我們聯繫。
另外,請記得提供你的發票號碼以便我們確認身份。
Q.我可以在商業產品中使用你們的範例場景嗎?
A.可以的,你可以使用。範例場景中所包含的所有模型都來自 Asset Store 的免費資源。
Q.EP Outline 支援 HDRP 嗎?
A.是的,EP Outline 支援 HDRP。
Q.我在匯入後出現一些錯誤,為什麼會這樣?
A.首先,請嘗試重新啟動 Unity 並再次檢查。 其次,請試著重新匯入這個資產。
如果這些方法都無效,請透過電子郵件(pirate.parrot.software@gmail.com)或加入我們的Discord伺服器與我們聯繫。
Q.加上描邊效果後,我的 FPS 掉了。該怎麼辦?
A.請先確認問題是否真的是由描邊效果引起的。
你可以使用 Profiler(效能分析工具) 來找出造成延遲的來源。
嘗試停用 Outliner,觀察畫格率是否有明顯改善。
也可以嘗試降低主緩衝區解析度(Primary Buffer Resolution), 或減少膨脹與模糊的疊代次數(Dilate/Blur Iterations)。
此外,請務必在目標裝置上測試,因為 Unity 編輯器本身會大幅影響效能表現。如果以上方法都無法解決問題,
請透過電子郵件(pirate.parrot.software@gmail.com)或加入我們的 Discord 伺服器與我們聯繫。
Q.匯入描邊功能後,我的模型變成粉紅色,這是怎麼回事?
A.這種情況通常是因為你在尚未正確設定 URP/HDRP 的專案中加入了相關支援內容。
要修復這個問題,可以嘗試以下方法:
- 前往 Player Settings,在 Quality 和 Graphics 設定中移除 URP/HDRP 的渲染器設定
- 或前往選單 Edit > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials 將材質升級為 URP 相容格式
如果問題仍然存在,請透過電子郵件(pirate.parrot.software@gmail.com)或 Discord 伺服器與我們聯
Q.我要如何刪除描邊插件而不影響整個專案?
A.你可以直接從 Plugins 資料夾中移除它,這樣就不會對專案造成問題。
Q.我要如何調整描邊的寬度?
A.你可以透過調整 Outliner 上的 Dilate Iterations(膨脹疊代次數) 和 Dilate Shift(膨脹偏移量) 來控制描邊的寬度。























