Unity Shader Weaver 教學Shader Weaver 是一個以節點為基礎的著色器創建工具,專門用於 2D / Sprite / UI 效果,透過直覺的工作流程可輕鬆創造令人印象深刻的 2D 效果,並可節省大量時間。Shader Weaver 主要使用 Handles / Gizmos 來製作效果,您可以在 Shader Weaver 中使用工具繪製 Mask 並創建 Remap textures 紋理,並且支援使用繪圖版操作。Shader Weaver 可支援 Unity 5 / 2017 / 2018 / 2019 版本。
Shader Weaver 特點增加樣本 - 收錄豐富的樣本效果可以用於學習與使用,包括著色器和紋理。官方展示與教學的所有效果都收錄於資源包。 操作介面 - Shader Weaver 提供清楚與直覺化的操作介面。 操作簡單 - Use handles/gizmos like what you use to do. Mask Texture Creation 創建遮罩紋理 - Draw masks to divide areas for individual sub-effects. 繪製遮罩以劃分各個子效果的區域。 UV Distortion - A visual way to distort uv coordinates. UV Remapping - A unique way to make path along effects and object surrounding effects. 即時預覽 - Nice width/height corresponding preview. 複製貼上 - 支援複製與貼上的操作,節點可以帶到其他 Shader Weaver 專案重複使用。 Depth Sorting - Decide nodes' display order by depth sorting. Visual Modes - View textures' individual rgba channel and choose what to see by setting layers. Sync - No extra files to sync over version control system. 所有的 Shader Weaver 資料都儲存於 .shader 檔案。 相容性高 - 可相容於 UGUI、NGUI、Playmaker、Bolt、Corgi Engine、DOTween、Odin、Anima2D 等。 Make the change, use 2D dedicated shader creation tool to enhance visual quality of your game.
以下教學使用 ShaderWeaver 提供的貼圖示範,您可以自行替換為不同的貼圖。 一、建立基本Shader 1.開啟Window >ShaderWeaver打開編輯視窗。 2.開啟[ShaderWeaver>Tutorials>Tutorial1 - Intro]將ButtonBlue貼圖拖曳到ROOT欄位中並按下Save儲存目前的Shader即可完成建立。 3.儲存後可在右上角預覽,執行Open可打開已建立好的Shader。
二、使用Image節點 1. 按住 Image 拖曳到編輯視窗即可新增一個 Image 節點。 2. 接著增加 Image圖片節點,可開啟[ShaderWeaver>Tutorials>Tutorial2 - Color Node]將Diamond貼圖拖曳到Image1欄位中,並將Image1右側節點按住拖曳到ROOT左側節點上,最後在按下Update更新編輯。 3.按下 Edit 進入圖片效果編輯。 Basic可編輯基本移動、旋轉、縮放。 Move動態移動 Spin動態旋轉 Radial散射(輻射) 4. 透過使用Factor稍後可透過Inspector 控制移動、旋轉、幅射的效果,也可使用C# 控制。而新增 Factor 時可選擇Float(浮點數)與Range(範圍)兩種類型。 進入到Image編輯視窗後將Factor選擇Move並按下Update更新編輯。 點一下右上角預覽圖示,並看到Inspector屬性編輯器下方會多出一個Move的調整欄位,可拉動並預覽效果。 Range:在Custom Parameters下方欄位輸入要新增Factor的名稱(例如:Range1)並按下New Range 按鈕建立。 將新增出來的Range1調整為Mni 30到Max 80 進入圖片編輯並在Radial類型更改為X0.1 Y0.1並將 Factor選擇Range1 按下Update並看到Inspector屬性編輯器下方會多出的Range1調整欄位,拉動並預覽效果。 將image1下的Depth圖層改為-1並按下Update可將效果改為從主圖後方散出。 三、使用Mask節點 右鍵點選Image1節點右側並選擇Break Conn將連接取消。 將Mask拖曳新增到編輯視窗內並連接後按下Edit開啟Mask編輯。 上方可調整筆畫大小、透明度、解析度、反轉 按下Update即可預覽Mask遮蓋效果。 2.延伸使用-文字閃動 開啟[ ShaderWeaver>Textures ]將ramp拖曳到Image1欄位中。 點擊mask2節點下面的Edit按鈕,開啟編輯視窗。 如有先前的Mask範圍請先使用Eraser清除,使用Dropper點選左框內的文字黑色部分,即可建立Mask遮罩的範圍。 按下Update並預覽效果。 點擊image1節點下面的Edit按鈕,開啟編輯視窗。 在Basic將旋轉調整為-1。 四、使用UV節點 2.將UV拖曳到編輯視窗新增節點,並與ROOT連接,這裡需要一個四方連續的波紋圖片,可開啟 [ ShaderWeaver>Textures ] 將wave拖曳到UV欄位。 3.點擊uv1節點下面的Edit按鈕,開啟編輯視窗。 4.在Move將Y軸向上拖曳移動(數值隨意) 5.在UV將R、G、B、A向上任一方向拖曳移動(數值隨意) 6.按下Update即可預覽。 延伸使用 - 增加Factor 2.回到UV編輯,在Move將Factor選擇Speed 3.在UV右側欄位的Blend Factor選擇Amount。 4.按下Update按鈕後,點擊ShaderWeaver預覽圖,即可快速在Inspector屬性編輯器調整Speed與Amount數值並預覽效果。 延伸使用– 改變主圖的效果 五、使用Remap節點 2.將Image拖曳新增到編輯視窗並連接ROOT,可開啟 [ ShaderWeaver>Textures ] 將flame火焰圖片拖曳到image1節點。 3.將Remap與Image拖曳新增到編輯視窗建立新節點,參照下圖連接節點,可開啟 [ ShaderWeaver>Tutorials >Tutorial5 - Remap Node 1 ] 將horse馬的圖片拖曳到image3節點。 將解析度更改為512x512將跳出視窗,按下Yes套用。 在Drag分頁將Drag數值改為X:0.07、Y:0.06,然後按下鍵盤Enter運算。注意!請使用鍵盤英文字母區的 Enter 鍵,使用右側數字區的 Enter 鍵是沒有動作的。 按下Update按鈕預覽效果,即可看到紅色的火(靜態)。 5.在image1節點下面按下Edit按鈕,開啟編輯視窗 在Basic分頁將Scale的X軸調整為0.5 在切換到Move內頁將Move的X調整為0.15 按下Update按鈕,即可預覽火焰擺動的效果 6.將UV拖曳到編輯視窗新增UV節點,接著開啟 [ ShaderWeaver>Textures ] 將wave拖曳到uv4欄位。 按下uv4下的Edit按鈕開啟編輯視窗,並在Basic分頁將Scale的XY軸調整為0.6。 切換到Move分頁將Move的X軸調整為0.15 切換到UV將R的Y軸調整為0.2,G的X軸調整為0.15 按下Update按鈕,即可看到火焰的擺動加入隨機效果,更加生動。 六、使用Alpha節點 按下mask1下的Edit按鈕開啟編輯視窗。 使用Wand點選卡牌畫面處選取大部分的範圍 在使用Brush將剩下漏掉的區域補上 2.拖曳Image新增兩個Image節點分別為Image2與Image3,開啟 [ ShaderWeaver>Examples>Projects>Card_Lightening ]分別指定兩張圖片: 按下Image2下的Edit按鈕開啟編輯視窗 在Basic分頁將位置與縮放調整到適當位置及大小 將渲染通道選擇ROOT與mask1,並看到右邊欄位將Loop取消勾選,檢查Blend Op是否為Blend (預設) 按下Image3下的Edit按鈕開啟編輯視窗 在Basic分頁將位置與縮放調整到適當位置及大小 將渲染通道選擇為Everything,並看到右邊欄位將Loop取消勾選,Blend Op修改為Add Inner
將Alpha拖曳到編輯視窗內新增一個節點,接著開啟[ ShaderWeaver>Textures ]將ramp拖曳到alpha4欄位中 按下alpha4下的Edit按鈕開啟編輯視窗,在Move分頁將Move的Y軸向下即可,看到右邊欄位將Loop取消勾選並將Start調整為-1、Spd調整為1,然後在Spd Factor下方的欄位輸入"_Time.y%1<0.2?(_Time.y%0.04<0.02?1:0):0"
將渲染通道選擇為Everything 按下Update預覽效果。 |