⭐ Unreal Engine/UE RPG Blueprint

[UE] Fire Ball 수정, Bow

Designerd 2023. 1. 31. 09:39

 

 

목차

     

     


     

     

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

    BP: Blueprint Class
    BS: Blend Space

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

    I: Blueprint Interface

     

    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
    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
    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
       
    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
       
    Player BP_Player    
    Sounds S_BGM
    S_HitPunch
    S_OneHand_Hit
       

     
    Weapons
    Around Around_FireBall
    Around_FireBall1
    Around_IceBall
    Around_IceBall1
    DT_DoAction_Around
    DT_Equip_Around
    DT_HitData_Around
    Skill_Around
    Weapon_Around
     
    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
       

     


     

     

    Fire Ball 수정

     

    어제 기본상태의 FireBall과는 달리 방향을 만들어서 사용.

     

    Skill
    Weapon
    Skill_Around Skill_FireBall Weapon_Around Weapon_FireBall Weapon_Combo
    -  Around_FireBall
    -  Around_FireBall1
    -  Around_IceBall
    -  Around_IceBall1
          - Combo_Fist
    - Combo_Sword
    - Combo_Hammer

     

     


    Skill_FireBall 수정

     

    Event Graph

    • Projectile Movement - Activation - Auto Active 체크 해제
    • Custom Event - Shoot 커스텀 이벤트 생성
    • 커스텀 이벤트 Shoot 입력에 InDirection(vector) 생성
    • On Component Overlay Begin: 상대방이 FireBall을 맞았을 때 피격을 구현하는 부분
      • Skill_Around의 Damaged 커스텀 이벤트 부분을 수정해서 사용.

     


     

    Weapon_FireBall 수정

     

    Begin Do Action

    • Skill_FireBall에서 만든 커스텀이벤트 Shoot을 불러오고 Direction 값을 넣어준다.

     

     

    실행화면

     

     

     

     


     

     

     

     

    Bow

     

    Skill
    Weapon
    Skill_Around Skill_Arrow Skill_FireBall Skill_Warp Weapon_Around Weapon_Bow Weapon_FireBall Weapon_Combo
    -  Around_FireBall
    -  Around_FireBall1
    -  Around_IceBall
    -  Around_IceBall1
                - Combo_Fist
    - Combo_Sword
    - Combo_Hammer

     

     

     

    USkinnedMeshComponent
       UDestructibleComponent 파괴 가능한 Mesh. ex. 벽
       UPoseableMeshComponent 포즈 상에서 수정 가능. BP 상 Bone 변경 가능. ex. 활
       USkeletalMeshComponent 

     

    https://docs.unrealengine.com/4.26/en-US/API/Runtime/Engine/Components/USkinnedMeshComponent/

     

    USkinnedMeshComponent

    Skinned mesh component that supports bone skinned mesh rendering.

    docs.unrealengine.com

     

     


     

    Skel_Mannequin 소켓 추가

     

    Skel_Mannequin 소켓 추가 -  Holster_Bow, Hand_Bow_Left, Hand_Bow_Right_Arrow

     

    Holster_Bow

    Hand_Bow_Left

    Hand_Bow_Right_Arrow


     

     

    Montage 생성 - AR_DrawBow_Montage, AR_ShootAndDraw_Montage

     

    AR_DrawBow_Montage

     

    AR_ShootAndDraw_Montage


     

     

    ABP_Player 수정

     

    Locomotion 생성

    • 애니메이션 레이어 생성 -  LocomotionLayer  생성
    • Anim Graph에 있던 캐시 포즈들을 LocomotionLayer에 옮겨준다.

     

    BowLayer 생성

    • 애니메이션 레이어 생성 - BowLayer 생성
    • BS_Bow 블랜드 스페이스를 넣어주고 연결한다. (추후에 수정 예정)

     

     

    AnimGraph

    • 만들어준 LocomotionLayerBowLayer링크된 애님 레이어에 넣어준다.
    • bool로 포즈 블랜딩을 생성하고 이어준다. 

     


     

     

    DT_Equip_Bow, DT_DoAction_Bow, DT_HitData_Bow 생성

     

    DT_Equip_Bow.csv

     

    DT_DoAction_Bow.csv

     

    DT_HitData_Bow.csv

     

     

    DT_Equip_Bow, DT_DoAction_Bow, DT_HitData_Bow 불러오기

     

     


     

    Weapon_Bow 생성

     

    Blueprint Class (- Actor) - Weapon - 자손블루프린트 클래스 생성 -  Weapon_Bow 생성 

     

     

     

    Event Graph

    • Attach Actor To Component로 Bow를 Character 소켓 위치에 붙여준다.
    • Begin Equip 시 등에 있던 Bow가 왼손으로 이동.

     

     

    End Equip

     

     

    Do Action

    • Weapon_FireBall에 있는 Do Action과 원리가 같으므로 복사 붙여넣기하여 사용한다. 

     

     

    Create Arrow

    • 변수 생성: Arrow(Skill Arrow), Arrows(Skill Arrow 배열)

     

     

    Begin Do Action

    • 로컬변수 생성: Temp(Skill Arrow)
    • Get Attach Parent Actor의 의미 = Arrow가 Character(여기서는 BP_Player)에 붙어 있다.
    • 이 상황이면 Temp를 세팅하고 Break로 들어가 Completed로 나온다.
    • Detach From Actor를 World로 떼어준다.
    • Temp에 연결된 Shoot = Temp의 Arrow가 In Directijon 방향으로 Shoot에 의해 발사된다.

     

     

    End Do Action

    • Character - Mesh의 충돌체의 Collision을 꺼준다. 캐릭터와 활의 충돌을 방지하기 위해 임시로 한 방법이라 추후에 수정할 것이다. 
    • Arrow가 계속해서 생성될 수 있게 만들어준다. 

     


     

     

     

     

    Skill_Arrow 생성

     

    Blueprint Class (- Actor) - Skill - 자손블루프린트 클래스 생성 -  Skill_Arrow 생성 

     

    • 충돌체가 기준이 되어야 한다. 충돌체는 정중앙. 메쉬를 위치조정
    • 충돌체 Sphere와 Mesh 화살 끝이 맞도록 Mesh화살을 x방향으로 -75.0만큼 이동시켜준다.

     

    • Static Mesh - Collision - Collision Preset - No Collision 으로 설정 
    • 화살 매쉬 활 매쉬 사이의 Block연산을 막기 위해 No Collision으로 변경해준 것이다. 

     

    • Projectile Movement - Projectile - Initial Speed = 1000.0, Projectile Gravity Scale = 0 설정 
    • Projectile Movement - Activation - Auto Activate 체크 해제

     

     

    Event Graph

     


     

     

     

     

    실행화면