Unreal 4 材質編輯器中階教程 1


亂數漸變效果

各位朋友大家好。

本篇是接續上一篇:Unreal 4 材質編輯器基礎教程

如果沒有看過上一篇的朋友建議您先瀏覽一下。

本篇文章繼續建立在內插基礎上,製作漸變材質這種常見的效果,其實這類效果的製作就是內插的最好體現,與上一篇不同的是,本篇的內插使用了參數類型的變量,使得開發人員可以在外部使用程序或者藍圖控制參數。

本篇主要介紹重點:

1.內插的應用之一

2.Custom 節點的使用方式

3.材質實例的創建與功用

本篇所使用的Texture素材一樣是直接使用Unreal StarterContent /Texture裡面的素材。

總共使用岩石一張、岩石法線貼圖一張、火焰貼圖一張,以及Noise貼圖一張。

首先我們先創造本材質的核心,也就是控制利用一個參數控制Noise使Noise 從0-1的參數範圍內可以實現從無到有的效果。




Nosie 設置

首先創造一個常數,並按右鍵轉換為'參數 Parameter",然後設置最大最小值為0與1,之後使用一個內插將參數填入Alpha,然後直接設置Lerp(內插) 的數值為0,n(n  的數字主要根據您使用的Noise貼圖,需要多少值才可以減為0或者填為1),我的n設定為1.5。

隨後將您的Lerp 計算完的數值直接減去您使用的Noise貼圖,如您使用add加法也是可以的,這邊的計算方式完全因人而異,或者根據您的Noise貼圖狀況而定,範例內提供的Noise貼圖其實不太適合製作這種效果,因為她的0-1之間的區間不夠分明,後面我們會做些小小調整,當然上一篇提到過,好的素材決定了材質一半的成果,所以您也可以在PS製作一張您自己的Nosie。

現在您應該可以改變參數的數值0-1來改變這張Noise 的黑與白色顯示了。


為0的時候

為1的時候


完成這部分後,就是使用一些內插將需要的效果填入了,所以這個動態的Nosie ,概念上就很類似於遮罩的應用。另外我在1的狀態刻意保留了一些黑色的部分,因為我希望我的材質仍然保留一些岩石,而不是變成一團火球,這部分就看您的想法。


火焰效果區塊

準備好切換用的遮罩以後,就可以準備您想要切換的效果,本篇使用的是火焰效果與岩石。

上面的圖是使用兩張火焰貼圖加上Panner 給予不同方向的移動,最後用ADD相加最後使用Power(指數)增加對比度。

岩石的部分就直接使用岩石貼圖,這邊沒有做什麼特別的處理。


岩石貼圖


連接方式

現在可以接入Color的部分,這部分與上一篇教程一樣,使用參數填入Alpha值,在A接上岩石貼圖,在B接上火焰效果的計算結果區塊。

現在您應該可以在Color的呈現上,利用參數值切換岩石與火焰效果。

Remap

上面有提到本次使用的Noise並不適合製作這類效果,但我們可以使用Remap演算,讓效果稍微好一些,這時就可以使用Custom node。

Custom node 是Unreal 材質編輯器提供的設置化演算節點,他可以方便地填入您希望的運算,並作為一個有輸入輸出的節點使用。

當然,您也可以使用Material Function不過這邊我們使用Custom node,來完成Remap 的設置。

Remap Custom node 的設定與算法如下圖:


Custom node 的設定

最後就可以得到一個較高對比度的Noise,做這步驟的原因是我希望在發光效果上,可以更分明一些。

調整過後


Custom NODE的連結方式

現在可以將之前使用的Noise計算結果,套用到Remap node 裡面,讓他替我們重新計算貼圖資訊的範圍,我這邊設定的輸入最小最大為'-1.5,1.5輸出最小最大是-4,4。

這部分也是看您的貼圖素材與想要製作的效果而定,數值可以慢慢調整,如果您希望也可以做成參數。


最後接法圖

最後,我們希望可以在遊戲中動態地控制我們設置好的轉換參數,所以我們需要將我們的材質演算,實例化成材質實例(Material Instance)。

關於材質實例,可能有些人不太了解為何我們需要新增一個這樣的東西?

尤其是由Unity或者其他3D軟體轉換過來的朋友。

事實上我們在"材質編輯器"製作的部分完全就是在撰寫Shader語言,也就是說寫程式。

只是Unreal 提供了一個框架以及視覺化的介面讓我們快速地實作出Shader。

那麼這樣的一個"Shader",是需要經過"編譯"才能夠運行的,所以如果要在Runtime(遊戲即時運行)中去即時地變更材質的數值,那麼我們就需要重新編譯付出高昂的代價。

所以當您在Material 編輯視窗,手動修改您設定的參數時,您應該會發現編譯器都自動幫你編譯了,才可以顯示正確的結果。

這樣當然不是正常的方式,所以所有的3D軟體基本上您使用到所謂的材質,可以即時的變更他的Specular等高光或者參數時他都是已經編譯完成的"材質實例"。

只是其他軟體將這一部分給事先定義好了而已。

實現材質實例的方式很簡單,在材質編輯器按下APPLY(編譯)之後再到Content,找到您的材質,按下右鍵 創建材質實例(Create Material Instance)

創建實例

最後,要注意的是如果您要套用到遊戲中的物件上,請套用材質實例,這樣子才可以即時地更改您的參數,達成轉換的效果。

下一篇我會撰寫有關藍圖控制這個參數的方式,以及一些注意事項和藍圖的常識。

感謝各位











留言

這個網誌中的熱門文章

[Unreal 4]下載與安裝