# Unreal 隨手筆記#5 當角色在施放技能時,常常會有慢動作的畫面出現,不儘可以完整地觀賞到華麗的技能,也會讓玩家覺得這個效果很帥,那我們今天就要實作出Slow motion的效果。 ## 成果畫面 {%youtube WxYHR7T1rT4 %} ## 概念 今天的時做比較簡單,只會用到一個叫做 Set Global Time Dilation的函式 ![](https://i.imgur.com/Djz4BNM.png) 這個函式有什麼功能呢?簡單說就是讓遊戲裡的時間膨脹。舉個例子,假如你今天錄一個一秒鐘的揮手影片,然後將影片拉長至兩倍甚至數倍以上後,你會發現你揮手的速度變得非常地慢。這就是這個函式運作的功能,那我們廢話不多說進入程式的部分 ## 程式 今天的範例我們希望當它進入特定範圍時,會變成Slow Motion,然後離開範圍時恢復正常。所以這邊我們需要一個Trigger Box ![](https://i.imgur.com/LNS6mUk.png) 接下來是程式碼的部分,完整程式碼如下圖,我們會在Level Blueprint中進行撰寫 ![](https://i.imgur.com/wQZGr0W.png) ### 節點說明 - OnActorBeginOverlap:當進入範圍時觸發此節點 ![](https://i.imgur.com/0c25s8v.png) - OnActorEndOverlap:當離開範圍時觸發此節點 ![](https://i.imgur.com/wt0lpQC.png) - Cast to ThirdPersionCharacter:我們希望是玩家進入範圍時才會進入Slow Motion的狀態,所以使用Cast to來判斷是否為玩家 ![](https://i.imgur.com/kfhFeHP.png) - AddTimeline:我們不希望當進入範圍時,動作瞬間變得緩慢,要有一個漸進過程,所以會使用到設定時間軸上的數值能配合上lerp來達到此效果 ![](https://i.imgur.com/iY8AmXM.png) ![](https://i.imgur.com/WPinhoa.png) - Lerp:為線性插植,可以設定A、B兩個直線間的數值,再透過Alpha來取介於兩者間的點 ![](https://i.imgur.com/H8HGCUA.png) - Set Global Time Dilation:最重要的功能,下方可以設定時間膨脹值,越小則時間會被拉得越長 ![](https://i.imgur.com/PzWfY1n.png) 實作完成! --- ###### tags: `Unreal`