무기 관리

BP: Blueprint Class

BS: Blend Space

ABP: Animation Blueprint

AN: Blueprint Class AnimNotify

ANS: Blueprint Class - AnimNotifyState

E: Enum 열거형

DT: Data Table

UE2212_01

01_Blueprints Level - LEVEL
BP_01_Variable
 
02_Player 02_Player - LEVEL
ABP_Player

BP_Player
 
03_Vector 03_Vector - LEVEL
03_Vector_Trace - LEVEL
BP_03_01_Location
BP_03_02_Direction
BP_03_03_Trace
 
04_Sword BP_Sword  
05_Collision 05_Collision - LEVEL
BP_05_01_ActorOverlap
BP_05_02_ComponentOverlap
BP_05_03_OverlapAndHit
 
06_Enemy ABP_Enemy
BP_Enemy
 
Character Animation Common
OneHand
Unarmed
BlendSpaces BS_Sword        
BS_Unarmed
Materials

MaterialLayers
M_UE4Man_Body
M_UE4Man_ChestLogo
Mesh SK_Mannequin
SK_MAnnequin_PhysicsAsset
Skel_Mannequin
Mixamo Alpha_Body_MAT
Alpha_Joints_MAT
Standing_Taunt_Battlecry
Y_Bot
Y_Bot_PhysicsAsset
Y_Bot_Skeleton
Montages Enemy_DeadFall_Montage
HitReaction_Montage
Sword_Attack_1_Montage
Sword_Attack_2_Montage
Sword_Attack_3_Montage
Textures UE4_LOGO_CARD
UE4_Mannequin__normals
UE4_Mannequin_MAT_MASKA
UE4Man_Logo_N
Weapons Sword
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 AN_Begin_Equip
AN_Begin_Unequip
AN_Begin_Action
AN_End_Equip
AN_End_Unequip
AN_End_Action
AN_End_Dead
ANS_Combo
ANS_Collision
 

 

UE2212_02

  Level - LEVEL
ABP_Player
BP_GameMode
 
Character Animation Common
OneHand
Unarmed
BlendSpaces BS_Sword        
BS_Unarmed
Materials

MaterialLayers
M_UE4Man_Body
M_UE4Man_ChestLogo
Mesh SK_Mannequin
SK_MAnnequin_PhysicsAsset
Skel_Mannequin

Montages
Sword Draw_Sword_Montage
Sword_Attack_1_Montage
Sword_Attack_2_Montage
Sword_Attack_3_Montage
Enemy_DeadFall_Montage
HitReaction_Montage
 
Textures UE4_LOGO_CARD
UE4_Mannequin__normals
UE4_Mannequin_MAT_MASKA
UE4Man_Logo_N
Weapons Sword
Component EStateType
MovingComponent
StateComponent
WeaponComponent
   
Environment
Materials Textures  
Meshes    
Obstacle    
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    
Player BP_Player    
Weapons
Sword Combo_Sword - Blueprint Class Actor Weapon_Combo 상속
DT_Equip_Sword
 
EWeaponType
Weapon
- Blueprint Class Actor
Weapon_Combo - Blueprint Class Actor Weapon 상속
   

 

 

 

언리얼은 리플렉션이 가능하다

  • Enum의 문자를 숫자가 아닌 문자로 인식.
  • 구조체+데이터테이블 방식. 아래의 FEquipData + DT_Equip_Sword 방식.

 

 


 

FEquipData 생성

 

Blueprint Class - 구조체 - FEquipData 생성

 

  • 변수 생성
  • Montage(Anim Montage), PlayRate(Float), UseControlRotation(Boolean), CanMove(Boolean)

 

 


 

DT_Equip_Sword 생성

 

액셀을 활용하여 데이터를 입력한 후 .csv파일로 저장한다. 그 후 언리얼에서 .csv파일을 불러와서 데이터로 활용한다.

 

Exel - DT_Equip_Sword.csv 파일 생성

 

 

언리얼에서 DT_Equip_Sword.csv 파일 불러오기

 


 

Combo_Sword

 

  • 컴포넌트 추가 - SkeletalMesh 생성
  • 메시 - Skeletal Mesh - SK_Sword로 설정

 

  • Data Tables - Equip Data Table -  DT_Equip_Sword 로 설정

 


 

 

ANS_Equip 생성

 

Get Notify Name

 

Received NotifyBegin

 

Received NotifyEnd

 


 

 

Draw_Sword_Montage 생성

 

  • Animation - Sword - "Draw_Sword_1" + "Draw_Sword_2"를 조합하여 애님몽타주 생성 - Draw_Sword_Montage 
  • UpperBody로 변경
  • 노티파이 - 노티파이 스테이트 추가 - ANS Equip 15~37프레임 설정

 

 


 

Weapon Component

 

 

Event Graph

  • Get Weapon - 우클릭 - 검증된 Get으로 변환

 

ChangeType

 

SetMode

  • In New Type == Type 장착하려는 무기가 장착된 무기가 같은지 확인. Branch
    • True: 장착하려는 무기 = 장착된 무기인 경우 Set Unarmed Mode로 무기해제
    • False: 장착하려는 무기 != 장착된 무기인 경우 Branch로 '무기가 장착되었는지' '무기가 장착되어있지 않은지' 확인
  • Is Unarmed Mode를 Branch로 검사하여
    • True: 무기장착x, Set Weapon으로 무기 장착
    • False: 무기장착o, Unequip으로 무기장착을 해제해준 후에 Set Weapon으로 무기 장착

 

 

SetUnarmedMode


 

Weapon

 

 

Event Graph

Set Owner

Set Component

Load Equip Data

 

 

Equip

 

Begin Equip

 

End Equip

 

UnEquip

 

 


 

MovingComponent

 

 

IsCanMove

 

Move

 

Stop

 

Enable Control Rotation

 

Disable Control Rotation

 

 


 

StateComponent

 

 

Is Idle Mode

 

 

 

 

 

 

 

 

 


 

 

실행화면

 

 

 

 

 

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

[UE] Unreal Interface, Weapon  (0) 2023.01.13
[UE] 무기관리 2  (0) 2023.01.12
[UE] Enum, Statement Component  (0) 2023.01.10
[UE] Collision, Retargeting, Mixamo Plugin 설치  (0) 2023.01.09
[UE] Collision  (0) 2023.01.06