언리얼 엔진은 비디오 게임에서 파쿠르 게임플레이를 만드는 데 필요한 도구와 기능을 제공한다. 파쿠르 동작은 애니메이션 시스템과 물리 엔진을 사용하여 구현할 수 있다언리얼 엔진은 비디오 게임에서 파쿠르 게임플레이를 만드는 강력한 프레임워크를 제공하여 개발자들이 플레이어의 기술과 반사신경을 테스트하는 몰입적이고 도전적인 환경을 만들 수 있게 한다.

 

 

 


 

 

 

 

 

Parkour - Climb

 

지난 시간에 파쿠르 장애물 넘기를 구현하였다. 하지만 캐릭터가 장애물을 오른 후에도 계속해서 위로 올라갔다.

이번 시간에는

1. 장애물을 오른 후에 캐릭터의 상태(EParkour Type)를 돌려주고,

2. 

 


AN_EndParkour 생성

 

AN_BeginAction을 복사하여 AN_EndParkour 생성

 

Get Notify Name

 

Received_Notify


 

 

Parkour 몽타주들에 AN_EndParkour 키값 주기

 

Falling_Roll_Montage

 

Run_Climb_Montage

 

SingleSlider_Montage

 


 

 

Parkour Data 리임포트

 


 

 

 

Parkour Component

 

Gets

  • Get Arrow Component
  • Get Hit Result Arrow Type 
  • Get Data

Common

  • Line Trace
  • Play Parkour Montage

Trace

  • CheckTrace_Center      
  • CheckTrace_Land

Parkour

  • DoParkour                          파쿠르 수행
  • Check_DoParkour              파쿠르를 수행할 수 있는지 확인
  • End_DoParkour                파쿠르 끝냄

Climb

  • Check_ClimbMode              기어 올라갈 수 있는지 체크
  • Do Parkour_ClimbMode   기어 올라가는 움직임 수행

 

 

 

End Do Parkour

  • End Do Parkour 함수는 파쿠르를 끝낼 때 불러주는 함수.
  • 0: Current Type(=파쿠르 타입) 스위치문으로 Climb이 끝날 때의 경우 Character Movement를 Walking으로 변경함.
  • 1: 파쿠르가 종료될 때 공통적으로 적용되는 노드들

 

 

Do Parkour Climb Mode

  • Character를 장애물의 Yaw방향으로 돌리고 Hit Point의 위치로 붙이고 그 상태로 올라간다. 
  • 약간 틀어져있어도 보정해서 정면을 바라보고 올라간다. 

 


 

실행화면

 

 

 

 


 

 

 

 

 

Parkour - Land

 

 


 

Parkour Component

 

Gets

  • Get Arrow Component
  • Get Hit Result Arrow Type 
  • Get Data

Common

  • Line Trace
  • Play Parkour Montage

Trace

  • CheckTrace_Center      
  • CheckTrace_Land

Parkour

  • DoParkour                          파쿠르 수행
  • Check_DoParkour              파쿠르를 수행할 수 있는지 확인
  • End_DoParkour                 파쿠르 끝냄

Climb

  • Check_ClimbMode              기어 올라갈 수 있는지 체크
  • Do Parkour_ClimbMode     기어 올라가는 움직임 수행

Land

  • Check_FallMode                추락중인지 체크
  • DoParkour_LandMode      랜드모드로 변환(땅에 닿았을때 호출)

 

 

 

Event Graph

  • Hit Obstacle(Actor)이 유효하지 않을때 Check Trace Land 노드 추가 

 

 

 

 

최초 추락이 시작될 때 높이를 기록한다.

 

CheckTrace_Land

확대

  • 변수 추가: Falling (Boolean), Start (Vector)
    • 추락중에 Start높이를 계속 기록하면 높이가 계속 바뀌기 때문에 최초 추락 한 번만 기록한다.  
    • Falling이 False라면 True로 만든다.
  • 지역변수 추가: Arrow (Arrow Component), Color (Linear Color), Start (Vector)
    • Start (Vector) = 추적을 시작할 위치
  • LineTraceByChannel의 Trace Channel는 모든 지면에 다 닿아야 하므로 Visibility

 

 

Check_FallMode

  • Check_FallMode 함수는 추락중인지를 체크하는 함수이다.
  • 'Land에 Hitting된 거리 > Min Distance'라면 return 해준다.

 

 

DoParkour_LandMode

  • DoParkour_LandMode 함수는 땅에 닿았을때 호출

 

 

 

 


 

BP_Player 수정

 

Event Graph

 

 


 

ABP_Player 수정

 

Event Graph

확대

  • 변수생성: Falling (Boolean)
    • Character가 is Falling일 때 생성한 변수 Falling을 True로 설정.

 

 

AnimGrpah

확대

  • Falling인 상태에서는 Unarmed_JumpLoop 애니메이션을 재생한다.

 

 

 


 

실행화면

 

 

 

 

 

 

 

Parkour - Slide

 

Character 앞쪽에 가상의 Box Trace를 만들어 충돌을 확인한다. 충돌 후에 slide가 가능한지 확인하고 slide를 수행한다. 이 과정은 Parkour Component 안의 Check Slide Mode 함수에서 수행한다.

 

 


 

Parkour Component

 

Gets

  • Get Arrow Component
  • Get Hit Result Arrow Type 
  • Get Data

Common

  • Line Trace
  • Play Parkour Montage

Trace

  • CheckTrace_Center      
  • CheckTrace_Land

Parkour

  • DoParkour                          파쿠르 수행
  • Check_DoParkour               파쿠르를 수행할 수 있는지 확인
  • End_DoParkour                 파쿠르 끝냄

Climb

  • Check_ClimbMode             기어 올라갈 수 있는지 체크
  • Do Parkour_ClimbMode     기어 올라가는 움직임 수행

Land

  • Check_FallMode                추락중인지 체크
  • DoParkour_LandMode       랜드모드로 변환(땅에 닿았을때 호출)

Slide

  • Check_SlideMode            슬라이드 가능한지 체크
  • DoParkour_SlideMode     슬라이드 수행

 

 

 

Do Parkour

  • DoParkour_SlideMode 추가

 

 

End_DoParkour

  • Parkour_SlideMode가 끝났을 때 Set Actor Enable Collision으로 Collsion을 다시 켜준다.   
    • 이 때 DoParkour_SlideMode 함수에서 Hit Obstacle를 저장해주었던 변수 Hit Obstacle Backup을 타깃으로 설정한다. 

 

 

Check Slide Mode

확대

  • 로컬변수 생성: Floor Extent (Float), Color (Linear Color)

 

 

 

DoParkour_SlideMode

  • Set Actor Enable Collision으로 Collsion을 다 꺼준다.
    • BP_Player의 Collsion Capsule이 충돌하면 slide를 진행할 수 없다. 따라서 slide 중에는 collsion을 꺼주는 것이다. slide가 끝나는 즉시 End_DoParkour 함수에서 collsion이 다시 켜진다.  

 

 


 

 

실행화면

 

 

 

 

 

 


 

ABP: Animation Blueprint
AN: Blueprint Class AnimNotify
ANS: Blueprint Class - AnimNotifyState

AO: Aim Offset

BP: Blueprint Class
BS: Blend Space

BF: Blueprint Function Library
CS: Matinee Camera Shake
E: Enum 열거형
DT: Data Table
F: 구조체

I: Blueprint Interface

WB: Widget Bluepprint

 

UE2212_02

  Level - LEVEL
ABP_Player
BP_GameMode
BF_Helper
IDamage
 
AdvancedMagicFX12
Materials  
Meshes  
Particles  
Textures  
Character Animation Bow
Common
Fist
Hammer
Parkour
Sword
Unarmed
Wizard
BlendSpaces BS_Bow
BS_Fist
BS_Hammer
BS_Sword

BS_Unarmed
BS_Wizard
Materials

MaterialLayers
M_UE4Man_Body
M_UE4Man_ChestLogo
Mesh SK_Mannequin
SK_MAnnequin_PhysicsAsset
Skel_Mannequin

Montages
Around Around_Montage
Bow AR_DrawBow_Montage
AR_ShootAndDraw_Montage
Common HitReaction_Move_Montage
HitReaction_Stop_Montage
Fist Fist_Attack_1_Montage
Fist_Attack_2_Montage
Fist_Attack_3_Montage
Fist_Hitted_Montage
Hammer Frank_RPG_2Hand_Combo01_1_Montage
Frank_RPG_2Hand_Combo01_2_Montage
Frank_RPG_2Hand_Combo01_3_Montage
Frank_RPG_2Hand_Combo01_4_Montage
Parkour Run_Climb_Montage
Sword Draw_Sword_Montage
Sword_Attack_1_Montage
Sword_Attack_2_Montage
Sword_Attack_3_Montage
Warp Warp_Montage
Enemy_DeadFall_Montage
HitReaction_Montage
 
Textures UE4_LOGO_CARD
UE4_Mannequin__normals
UE4_Mannequin_MAT_MASKA
UE4Man_Logo_N
Weapons Elven Bow
Greate Hammer
Sword
Component EStateType
MovingComponent
StateComponent
WeaponComponent
FeetComponent
TargetComponent
   
Effects P_Cube_Mesh_Test
P_Genno_Weapon_Lightning_01
   
Enemies BP_Enemy    
Environment
Materials Textures  
Meshes    
Obstacle    
InfinityBladeEffects
Effects
FX_Combat_Base  
FX_Materials  
FX_Meshes  
FX_Monsters  
FX_Textures  
FX_Textures_IB  
Masters  
Materials M_Mesh
M_White_Inst
M_Red_Inst
M_Green_Inst
M_Blue_Inst
M_UE4Man_Body_Inst
M_UE4Man_ChesLogo_Inst
   
Meshes Cone_2
Cube_2
Cylinder_2
Sphere_2
   
Notifies ANS_Equip
ANS_Combo
ANS_Collision
AN_BeginAction
AN_EndAction
AN_CameraShake
   
Parkour EParkourArrowType
EParkourType
FParkourData
ParkourComponent
ParkourData
   
Player BP_Player
FZoomData
   
Sounds S_BGM
S_HitPunch
S_OneHand_Hit
   
Textures Crosshair    

 
Weapons
Around Around_FireBall
Around_FireBall1
Around_IceBall
Around_IceBall1
DT_DoAction_Around
DT_Equip_Around
DT_HitData_Around
Skill_Around
Weapon_Around
 
Bow AO_Aim
Curve_Aim
DT_DoAction_Bow

DT_Equip_Bow
DT_HitData_Bow
FAimData
Skill_Aim
Skill_Arrow
Weapon_Bow

 
FireBall DT_DoAction_FireBall
DT_Equip_FireBall
DT_HitData_FireBall

Skill_FireBall
Weapon_FireBall
 
Fist Combo_Fist - Blueprint Class Actor Weapon_Combo 상속
CS_Fist
DT_DoAction_Fist

DT_Equip_Fist
DT_HitData_Fist
 
Hammer Combo_Fist - Blueprint Class Actor Weapon_Combo 상속
CS_Hammer
DT_DoAction_Hammer
DT_Equip_Hammer
DT_HitData_Hammer

 
Sword Combo_Sword - Blueprint Class Actor Weapon_Combo 상속
CS_Sword
DT_DoAction_Sword
DT_Equip_Sword
DT_HitData_Sword
 
Warp Weapon_Warp -  Blueprint Class Actor Weapon 상속
DT_DoAction_Warp

DT_Equip_Warp
 
EWeaponType
FDoActionData
FEquipData
FHitData
Weapon - Blueprint Class Actor
Weapon_Combo - Blueprint Class Actor Weapon 상속
M_Weapon
Skill
   
Widget WB_CrossHair    

 

 

 

 

 

 

전투

- 타격, 방어, 방어해제, 반격

 

공격

- 다운공격(엎어진 적 때리기)

- 공중콤보(처올려서 치기, 처올린 후 공중으로 뛰어서 콤보)

 

AI  

 

'⭐ Unreal Engine > UE RPG Blueprint' 카테고리의 다른 글

[UE] Widget  (0) 2023.02.16
[UE] Parkour - Normal, Wall, Widget  (0) 2023.02.15
[UE] Draw a Bowstring, Parkour  (0) 2023.02.13
[UE] Parkour  (0) 2023.02.10
[UE] Targeting, Parkour  (0) 2023.02.09