top of page
搜尋
  • 作家相片Liling Liu

[Control Rig] Unreal Engine 5.2 Control Rig 教學 - Head Aim/Look At - # 11 |頭部瞄準 |Tutorial


Head Aim/Look At 頭部瞄準




新增 控制器




大致位於在頭部前面










使用 Aim 節點來製作頭部的瞄準


為了讓瞄準時候身體更自然,這邊分別有設定 Head, neck, spine


將Aim控制器的Traslation為個別的Target,Weight的數值根據角色自行調整


*切記要從身體到頭部連結過去,而不是反過來,會出問題




這時拖動Aim控制器,身體至頭部的地方都會跟著動


這次要使用變數讓外面的物體可以跟著有互動


新增屬性變數 : LocationAt Location 為Vector,眼睛要打開,後續能使用




得到LocationAtLocation的World值,分別連結到個的Aim的Target



但這時候會看到 Control Rig 的小面板人物不正常



為了讓Control Rig面板正確

在Variables 新增變數 : IsLookAt 為Boolean,眼睛要打開,後續能使用




做相關的判定是否有在看物體,如果有就已LookAtLocation的值,如果沒有就預設我們自己創的控制器的值



Control Rig小面板的人物就正常了





開始針對 物體的Blue print 設定



在Content Drawer 新增 物體的BP Actor




先加入Collision,這邊使用Sphere collision,在加Mesh,這邊也用預設的Sphere,調整到要的位置








將Sphere collision 的sphere Radius 調一個大小,當角色進入這個區域,就會驅動某事件使用










在Sphere collision 的Events,加入On Component Begin Overlap和 On Component End Overlap








到角色的 BP 裡面新增屬性

LookAtObj - 這是要選擇自己剛剛新增的物體BP Actor



到物體的BP Actor Event Graph 設定


如果角色進入球體碰撞那就讓角色正在看物體,將IsLookAt打勾,然後LookAtObj就是球體自己,相反則是沒有IsLookAt



打開 ABP_XXXXXX 檔案


首先 Control Rig 先將剛剛Aim的變數打開



在ABP的 Event Graph做參數設定


在一開始的時候先有角色的資料,然後再使用Promote,這樣就可以重複使用



將剛剛BP角色的變量分別放進去ABP,且用Promote的值讓他得到。

IS Look At 使用branch方式去判定,如果就進行LookatLocation

這個LookAtLocation就是角色看到的物體的worldLocation



回到AnimGraph

將Look at location 和Is look at 連到Control Rig 上面



使用Blend Pose By Boolean 來設定是否有在察看



角色是有跟著物體互動,但是頭部的轉動不正常,需要限制角度



使用角色得到Actor location 和物體的world Location尋找看到的Rotation值,Rotation值和角色Actor Rotation值用Delta(rotation)來得到Z值。因頭部左右轉是Z值。

在新增新屬性: Look At Offset,設定為85。依據角色調整

如果值小於設定的值那就是在看的範圍內,並Promote 值



*這裡使用ABS是避免有負值,讓負值都傳回正值




回到 AnimGraph


使用AND來判斷。 如果有在看物體且又在範圍內,則進行True pose動作



這時會發現ABP的小面板人物,站姿不穩,頭部歪,而且遊戲裡面的角色也是錯誤,不管拉幾次的BP角色一樣有問題


這邊要額外在設定Offset location


首先回到 角色的BP設定




在Viewport設定 假的物體在角色前面













讓物體不要出現在遊戲裡面

選擇物體在屬性面板裡找到 Hidden in Game 打開,且不要有Collision



到Event Graph

讓它每一楨都得到這物體的World Location,Promote variable



回到ABP_XXXXX,Event Graph

BP角色的AimOffsetLocation Promote變數給ABP使用



將剛剛的變數放置在 AnimGraph沒看到的location值,那角色就正常了






















0 次查看0 則留言

Comments


bottom of page