Hello . 大家好,今天給大家模擬unreal中燈泡接觸不良,我是木偶心沒。一起來看這篇Unreal教程,BluePrint製作燈光閃爍效果。
先理一下思路,一般遊戲中的燈光不隻是有直接從引擎裏麵拉出來的物理燈光,更需要有emissive的模型燈光,即我們的mesh文件,所以整個燈在閃爍的時候,物理燈光比如point light的強度變化要和模型燈光的emissive變化是要同頻並且強度變化要一致。
所以最方便的就是直接在模型燈光的BP中控製強度和emissive的值。
如下,手殘黨直接拉的一個圓柱體當做模型燈光,並給了一個簡陋的emissive材質;
注意自發光的大小一定要暴露出來,方便在藍圖中讀取。
然後右鍵給這個mesh創建藍圖,並在藍圖中添加一個point light。
日常生活中接觸不良的燈泡的閃爍頻率其實是不一樣的,也就是每個亮度的持續時間是不一樣的,所以我們需要在設置物理燈光的intensity和模型燈光的emissive之前進行亮度持續時間的設置,所以在Event Graph中,在Event BeginPlay 添加一個Delay節點。
而Duration值的話需要輸入一個隨機數Random Float in Range,範圍大概在0到0.5之間,因為推遲的時間不能長,接著開始給模型的emissive設置一個隨機值,首先用節點Set Scalar Parameter Value on Materials獲取材質裏麵暴露出來的參數emissive power,Parameter Value同樣給一個隨機值,範圍0-1。
然後用節點set intensity設置物理燈光的intensity,強度的話我們先用前麵模型燈光的隨機值乘上10000(因為物理燈光的intensity有點大)。由於需要不停的變換值,所以我們把最後的輸出結果連到最開始的delay上麵進行一個循環。
Compile後在場景中運行可以看到,兩個燈光都在變化,但是仔細看就會發現隻是變化頻率一致,而強度變化並不一樣,在物理燈光近0的時候,而模型燈光還是近1的值。
這是因為給到模型emissive的random值並不會同時被運用到物理燈光的intensity上,而是在走到set intensity的時候就變了一個隨機值,所以我們現在要改的是將模型隨機了以後的emissive的值給到物理燈光的intensity。我們就需要一個中間值來進行傳遞,才能保證兩邊的數值是一樣的。
我們在左側新建一個float的變量current emissive,然後拉到藍圖中選擇set,將模型的隨機emissive值給到set,然後把set放在set scalar parameter value on material之前。
再拉一個surrent emissive到場景中然後選擇get,把get到的值輸入到set scalar parameter value on material的parameter value和set intensity的new intensity中
再次編譯就可以看到我們開始的效果,兩個燈光屬性的變化一致,同時增強或者減弱,並且時間和強度隨機。
一般為了使用方便,我們還需要把裏麵的數值參數暴露出來,是否閃爍也可以添加開關,方便藝術家在外部進行調整,完整節點如下;
來源:Thepoly公眾號
上一篇 Unreal如何優化貼圖?
熱門課程
專業講師指導 快速擺脫技能困惑相關文章
多種教程 總有一個適合自己專業問題谘詢
你擔心的問題,火星幫你解答想要製作自己的手機遊戲嗎?火星時代教育讓您實現此目標!理論學習與實戰操作相結合,我們的專業課程將帶您逐步掌握手機遊戲製作的精髓。
了解影視後期技能培訓學校的重要性,以及火星時代教育如何幫助你成為創意工業的精英。
詳解影視概念培訓的收費模式與注意事項,以及火星時代教育在此領域的優勢和服務介紹。
火星時代教育為您詳盡介紹UI設計課程培訓價格,助你快速掌握UI設計技能,提升職場競爭力
揭示UE界麵設計的關鍵技術與實踐應用,探究如何運用設計思維和工具提升產品用戶體驗。火星時代,引領教育創新。
若你想浸入影視動畫行業,挑選一所優質的專業培訓機構至關重要。從專業設施、師資力量到畢業生就業,火星時代教育與眾不同,是靠譜的影......
1. 打開微信掃一掃,掃描左側二維碼
2. 添加老師微信,馬上領取免費課程資源
同學您好!