1 Animation Notifications
動畫通知:為程序員提供了一種方式,以便在動畫序列的特定時間點上觸發(fā)事件.動畫通知常用于在行走或跑步動畫中添加腳步聲之類的效果,或在動畫中生成粒子系統(tǒng).
不同類型的動畫通知會導致不同事件被觸發(fā).例如相機效果、粒子效果、音效均可借助動畫通知在動畫序列的任意時間點上觸發(fā).
1.1 添加Skeleton Notifies
- 在通知軌跡上單擊右鍵,添加
骨架通知.如下圖所示:
SkeletonNotify - 在動畫藍圖的事件圖表中添加
骨架通知對應的動畫通知事件.
Event AnimNotify -
根據(jù)實際需求實現(xiàn)通知事件
Events
1.2 繼承AnimNotify類
-
創(chuàng)建繼承自AnimNotify的新的藍圖類
NewBPClass -
重載GetNotifyName與ReceivedNotify函數(shù)
OverrideFunctions
3.png
4.png - 在動畫序列中添加新建的子類
6.png
8.png
注意:新添加的動畫通知在通知軌跡上的顯示名稱就是我們在藍圖子類中重載的GetNotifyName函數(shù)的返回值.
1.3 其他預定義的AnimNotify類
- 布料模擬通知:PauseClothingSimulation,ResumeClothingSimulation,ResetClothingSimulation.
- PlayNiagaraParticleEffect(播放Niagara粒子特效)
- PlayParticleEffect(播放級聯(lián)粒子特效)
- PlaySound(播放聲音)
-
ResetDynamics(重設動力)
9.png
1.4 動畫通知狀態(tài) AnimNotifyState
動畫通知狀態(tài)(通知狀態(tài))與上面的普通動畫通知類似.它擁有三個事件:NotifyBegin,NotifyTick,NotifyEnd.在通知狀態(tài)開始與結束時分別觸發(fā)NotifyBegin與NotifyEnd;在每次動畫更新時都會觸發(fā)NotifyTick事件,直到NotifyEnd被觸發(fā)為止.
使用通知狀態(tài)時需要注意的其他事項:
- 必定以
NotifyBegin事件作為開始. - 必定以
NotifyEnd事件作為結束. -
Tick事件必定發(fā)生在NotifyBegin與NotifyEnd之間. - 不同動畫通知(
AnimNotify或AnimNotifyState)之間的排序并非固定.如將兩個AnimNotifyState放置在一起,第一個結束之后第二個并不一定會開始.因此他們應該相互獨立,不應該有相互依賴. - 支持動畫倒放,但仍會首先調用
NotifyBegin,最后調用NotifyEnd.
1.4.1 創(chuàng)建自己的AnimNotifyState子類.
-
繼承AnimNotifyState類,并重載NotifyBegin,NotifyTick,NotifyEnd等函數(shù):
1.png
2.png - 在
動畫序列的通知軌跡上添加新建的AnimNotifyState子類:
3.png -
調整AnimNotifyState的起始于結束位置:
4.png













