[玩轉UE5動畫系統>基礎篇] 之 什麼是射線檢測 續 HitResult引數小結
好訊息!好訊息!上次更新還是UE4時代,轉眼間UE5已經君臨天下。正如老王預言的那樣,UE5是UE4的大版本升級,所以這個[玩轉UE4動畫系統]可以直接無縫更名為[玩轉UE5動畫系統]啦!
前言
在[玩轉UE4動畫系統>基礎篇] 之 什麼是射線檢測一文中已經介紹了射線檢測的重要性並簡單介紹了Trace節點(函式)常用的返回值。本文將逐個解釋一下HitResult結構體的各個分量的意義。
HitResult
Blocking Hit
是否發生了碰撞
Initial Overlap
是否發生了初始重疊,所謂初始重疊指的就是射線在初始位置,是否已經發生了碰撞
當Initial Overlap為true時,也就意味著Distance的值為零。
如果碰撞形狀非Line,那麼如下圖所示
在ALS V4的CapsuleHasRoomCheck方法中,作者就藉助這個值來判斷一個空間是否有足夠的位置容納角色的膠囊體。
Time
碰撞時間,值的範圍是(0~1),當發生了初始重疊時 Time為0,當未發生碰撞時 Time為1(即無窮遠)
Distance
射線起點到碰撞點之間的距離。注意:當Distance為0時可能有兩種情況,發生初始重疊或未發生碰撞,需要透過Initial Overlap來判斷。
Location、Impact Point、Normal、Impact Normal
Location和Impact Point
前者是碰撞時射線形狀的位置,後者是實際碰撞點的位置
Normal和Impact Normal
Impact Normal就是被碰撞表面的法線方向
很多時候Normal就等於Impact Normal,我實驗了幾種情況沒有發現它們的區別,此處如有錯誤敬請指正!
Phys Mat
被射線碰撞物件的物理材質
Hit Actor
被射線碰撞的Actor
Hit Component
被射線碰撞的Primitive Component
Hit Bone Name
如果被射線碰撞物件是一個Skeletal Mesh,那麼將會返回被碰撞的骨頭名稱
Hit Item
被碰撞的Primitive索引
Element Index
如果一個Primitive是由多個部分組成的,那麼這裡返回被碰撞元素的索引
Face Index
面索引
Trace Start、Trace End
射線的起點和終點