⭐ Unreal Engine/UE RPG Blueprint

[UE] IK, Targeting, Effect

Designerd 2023. 2. 7. 09:09

 

목차

     

     


     

     

     

    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
    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
       
    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    

     

     

     

     

    Warp Effect 수정

     


     

    P_ky_aura_shine 수정

     

    • Required
      • Emitter Loops = 0은 무한, 1은 1회 실행, 2는 2회 실행...
      • Emitter Duration: 플레이되는 시간
      • Emitter Low: 전체에 곱해지는 비율값
    • Spawn
      • Distribution
        • Distribution Float Constant: 상수 하나의 값이 들어감.
        • Distribution Float Constant Curve: 지점을 만들어서 0~1번 구간, 1~2번 구간 값이 들어가게 함. 
        • Distribution Float Uniform: Min~Max 사이의 랜덤값.
    • Lifetime 수명 주기
    • Initial Size: 시작 크기
    • Color Over Life: 라이트 색
    • Scale Color / Life: 스케일
    • Initial Location: 시작 위치

     


     

    Warp_Montage 수정

     

    • Warp_Montage의 이펙트를 변경한다.

     

     

    실행화면

     

     


     

     

     

     

    IK 수정

     

     


     

    Skel_Mannequin 수정 - 애님 커

     

    • 애님 커브
    • 기존에 있는 커브 삭제하고 새롭게 만들어준다. 
    • 커브 생성: LeftFoot, RightFoot

     


     

    Unarmed_Idle 수정

     

    •  커브 생성 - LeftFoot, RightFoot

     

     


     

    Sword_And_Shield_Run_L 수정

     

    •  커브 생성 - LeftFoot, RightFoot

     

    LeftFoot 키값 잡기

     

    RightFoot 키값 잡기

    • 발이 바닥에 붙기 시작하는 순간 = 0
    • 발이 바닥에 완전히 붙은 순간 = 1
    • 발이 바닥에 발이 떨어지기 직전 = 1
    • 발이 바닥에 완전히 떨어진 순간 = 0

     

    ※ 다른 Animation들에도 위와 같은 작업 반복


     

    ABP_Player 수정

     

    FeetLayer

    • IK가들어가면 Get Curve Value를 다 넣어줘야 한다.
    • 다소 노가다(?)성 작업이지만 자연스러운 IK 움직임을 구현하려면 필요한 작업이다. 
    • 위에서는 Unarmed_Idle과 Sword_And_Shield_Run_L에서만 LeftFoot, RightFoot을 넣어주었지만 다른 동작들에도 LeftFoot, RightFoot을 넣어주고 발이 바닥에 붙고 떼어지는 시기에 따라 키값을 잡아줘야 한다.

     


     

    BP_Player 수정

     

    • FeetComponent - Trace - Draw Debug - None으로 변경

     

     


     

    실행화면

     

     

     

     


     

     

     

    Targeting

     

     


    Project Setting

     

    엔진 > 입력

    • 액션 매핑 추가
    • Targeting: 키보드 T
    • Left_Target: 키보드 Q
    • Right_Target: 키보드 E

     

    엔진 > 콜리전

    • Preset - 새 프로파일 추가
    • Targeting
      • 콜리전 켜짐: Physics Only (No Query Collision) 블록연산
      • 오브젝트 유형: Pawn. 어딘가에 충돌할 때 반응을 줌.
      • Pawn만 Block으로 체크
      • 위의 뜻 = Pawn만 블록연산 하겠다.

     

    State Component 

     

    Is Dead Mode 생성

    Set Dead Mode 생성


     

    Target Component 생성

     

    Blueprint Class - Actor Component - Target Component 생성

     

     

    Event Graph

    • Target이 Get Component by Class(State Component)로 죽었는지(Is Dead Mdoe) 확인.
    • Trace Distance = 1000.0으로 설정함.
    • Character와 Target의 거리가 1000.0 이하라면 Tick Event 유지.
    • Character와 Target의 거리가 1000.0 초과라면 End Targeting으로 끝냄.

     

     

    Begin_Targeting

    • Begin_Targeting 함수 생성
    • MultiSphereTraceByProfile
      • Actors to Ignore에서 Make로 만들어 Character와 이어준다.
      • Character 자기자신은 Targeting의 대상에서 제외시킨다.
    • 변수 생성: Particle (Particle System Component), Character (Character), Target (Character), DrawDebug (EDraw Debug Trace)
    • 로컬변수 생성: Targets (Character 배열) 
      • Targets선별된 Target 대상자이다. 그러므로 마지막에 Add로 밀어넣어준다. 

     

     

     

    Change_Targeting

    • Change_Targeting 함수 생성. 함수 입력에 In Candidate (Character) 추가
    • 변수 생성: ParticleAsset (Particle System)
    • 이미지 내 오타수정: *Targeting된 대상 -> Targeting이 될 대상

     

     

    End_Targeting

    • End_Targeting 함수 생성
    • Targeting 되었다가 Targeting 해제되면 Paricle를 Destroy 

     

     

    Tick_Targeting

    • End_Targeting 함수 생성
    • 변수 생성: Finish Angle (Float)
      • Finish Angle = 5.0 으로 설정. 각도 오차범위를 5.0도로 설정해준다. 
    • 로컬변수 생성: ControlRotation (Rotator), OwnerToTarget (Rotator)

     


     

    BP_Player

     

     

    • Target Component - Draw Debug - For Duration으로 변경
    • Draw Debug를 일정시간 동안 실행. 

     

     


     

    실행화면