創建AI角色與設定武器
- 創建BP_Enemy的基類,修改Skeletal Mesh Asset、Anim Class、Weapon Class、Weapon Attach Socket Name
- State Tree相關的設定,需要覆寫SetMainStateTree跟SetSubStateTree這兩個Function,SetMainStateTree是用來設定最上層的邏輯 {(非啟動 / 啟動) → (非戰鬥 / 警戒 / 戰鬥)},SetSubStateTree是用來替換的邏輯,允許多個替換,需對應State Tree的Linked Asset的Tag,目前可以替換戰鬥邏輯{(防禦 / 走位 / 攻擊)}
- Linked Asset可以多層替換,比如替換A戰鬥邏輯,以及A戰鬥邏輯中的BB手段。多層替換時要注意所有Linked Asset的Tag必須保持同層關係,不能有階層關係

AAA、AttackComboA、CombaA、Combat屬於同層關係
StateTree、LinkedAsset屬於階層關係
創建新的AI角色.mp4
讓AI的攻擊動畫與武器上的射線開關連動
主要武器Actor
- 創建BP_WeaponBase的子類,替換AI角色Settings的Weapon Class跟Weapon Attach Socket Name
- 射線系統的機制是透過HitTrace以及Group的搭配,做到取得一幀到一段時間內互動到的對象,HitTrace負責大小位置範圍,Group負責結合多個HitTrace的偵測以及定義回傳的內容,看是所有擊中的對象,或是對象的所有擊中部位
- 在武器Actor的HitTraceGroupComponent下添加HitTraceComponent,想加多少就加多少,每個都可以獨立調整對應的大小以及偵測對象
- 每個HitTraceGroupComponent會自動管理旗下的HitTraceComponent,最主要的功能是定義這些旗下的HitTraceComponent是當作哪種類型的感測器,也可以作為旗下的偵測對象以及Debug顯示的總設定,還會有一個名稱對應給多個群組開關使用
- 如果有多組HitTraceGroupComponent,需要從BP_WeaponBase複製EventGraph的EventStartHitTrace及EventEndHitTrace程式碼,在MakeArray把所有HitTraceGroupComponent都添加進去
- 如果要視覺化的編輯,需要在Construction Script自行將想看到的HitTraceGroupComponent呼叫ShowAllChildTrace
設定主武器的射線.mp4
動畫與射線開關連動
- 連動機制是用ANS_HitTrace決定時機,可以設定這個區間要啟動的射線群組有哪些,可以用多段ANS_HitTrace做到分別控制想要啟動的射線群組