UE5 動作遊戲 -關卡障礙

Author: Kelvin Huang

首先使用 3D 軟體製作物理攻擊的障礙物,或下載教學使用的模型 [HitActor.blend] [HitActor.fbx]

匯入 Unreal 專案,匯入物理攻擊的障礙物模型,建立 BP_HitActor 藍圖類,開啟後按 + 新增 Static Mesh 元件。

設定 Static Mesh 為剛匯入的障礙物模型,新增 M_HitActor 材質給 BP_HitActor 藍圖的網格使用。

新增 Capsule Collision 並調整位置與旋轉角度。

新增 Arrow 並調整位置與旋轉角度。

新增 RotatingMovement 元件,可讓物件轉動,用於玩家產生攻擊的效果。

-2?

開啟 BP_ThirdPersonCharacter 滑鼠右鍵新增 Custom Event 自訂事件節點,重新命名為 HitByHitActor 代表 玩家被障礙物撞擊的事件。

從 Mesh(CharacterMesh0) 拖曳建立 Mesh 節點,再增加 Set Simulate Physics 節點,並勾選啟用 Simulate 物理模擬。

新增 Add Impulse 節點,對玩家角色產生撞擊的效果。

選取 HitByHitActor 節點,按下 Inputs 旁的 + 號,建立新的輸入引數。

設定引數名稱 HitLocation 型態 Vector

 

此障礙物對玩家的攻擊力需要增加至數萬倍,來達到預期的效果! 新增 Multiply 節點(使用滑鼠右鍵,輸入 * 即可出現 Multiply 節點)。

新增的 Multiply 節點可設定 XYZ 軸的向量,無需修改數值。

在 Multiply 節點右鍵選擇 ToFloat(single-precision) 轉換為浮點數,接著將數值設為 20000 增加推力。

 

新增 Break Vector 節點,再新增 Make Vector 節點,參考下圖連接節點,只在 XY 平面方向產生推力。

將 Make Vector 節點的數值設為 20000 並連結 Add Impulse 節點的 Impulse 引腳。

 

開啟 BP_HitActor 藍圖,新增 On Component Begin Overlap 節點,再新增 Cast To BP_ThirdPersonCharacter 節點。

新增 Hit by Hit Actor 節點

 

新增 Arrow 節點與 Get Forward Vector 節點,並連接到 Hit by Hit Actor 節點的 Hit Location 引腳

 

此時若按 Play 測試遊戲,將會出現錯誤訊息,直接關閉 Message Log 視窗即可。

 

★★★ 20240611 ★★★

開啟 BP_ThirdPersonCharacter 藍圖,設定 Collision Presets 使用 Ragdoll 產生布偶碰撞模擬。

 

新增 is Knocked Out 變數,用於判斷玩家是否被擊飛的狀態?

 

新增 Branch 節點

 

拖曳建立節點,空白處右鍵 Set is Knocked Out

 

SET 節點打勾。

 

新增 Disable Movement 節點,讓玩家被擊飛的時候關閉移動,否則會出現不合理的情況,下方的 Character Movement 節點是自動增加的。

增加 Delay 節點,用於讓玩家重生。

 

新增 Set Simulate Physics 節點,不要打勾,下方的 Mesh 節點是自動生成的。 ↑↑

 

新增 Attach Component To Component 節點,將 Location Rule 與 Rotation Rule 改為 Snap to Target ,其餘設定維持預設值。

注意!Mesh 節點與 Capsule Component 節點是自動增加的。

 

設定忽略相機,避免角色被障礙物擊飛時,出現不自然的畫面。

 

增加 Damage 角色扣血事件,判斷玩家角色的血量(預設滿血 Default Value = 3) ,每次被障礙物擊中時扣 1

角色扣血事件,被撞到的時候執行 Damage 自訂事件,然後顯示 GAMEOVER,再把移動關掉

 

 

Copyright © 2025 CG Digital Corp. All rights reserved.