項目常見需求之一就是在運行時,根據遊戲邏輯或者其他奇葩需求動態改變對象的外觀,其中一些需要動態改變材質的某些參數,例如顏色值,貼圖等。
在虛幻4引擎中完成這個非常簡便,主要分爲三步:
創建包含材質參數的Material
如上圖所示,我創建了一個非常簡單的材質,其中包含“MColor”這樣一個vector3的參數。
創建Dynamic Material Instance
接下來就要創建Dynamic Material Instance對象,一般可以在對象的Construction Script中完成,如下圖所示,我們創建了一個Dynamic Material Instance Object,並把它保存到了“MyMaterial”變量中。MyMaterial的類型是:Material Instance Dynamic -> Object Reference:
在運行時修改材質參數
接下來我們就可以調用Dynamic Material Instance的接口,來動態修改材質的參數,主要是下面三個:
在下面這個例子中,在按下鍵盤數字鍵1的時候,動態修改了前面那個材質的“MColor”參數:
DEMO源代碼
前面這個簡單的例子的源代碼請從這裏下載:https://github.com/neil3d/UnrealCookBook
使用的引擎版本爲:4.11.2
打開項目後,啓動“DynamicMaterialInstance/DynamicMaterial.umap”地圖文件即可運行。