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

 

 

 

 

 

플레이어 실행화면 마우스휠 Zoom In & Out 만들기

 

 

 

 


Project Setting - 입력 매핑 추가

 

Project Setting - 입력 - 축 매핑 - Zoom 추가

  • Project Settings - 입력 - 축 매핑 추가
  • Zoom 마우스 휠 축, Scale -1.0

 


 

FZoomData 생성

 

Blueprint - 구조체 - FZoomData 생성

  • Speed  20.0
  • Min Range  100.0
  • Max Range  600.0
  • Interp Speed 5.0

 


 

Weapon Component 수정

 

Is Bow Mode 추가

  • IsUnarmedMode를 복사하여 IsBowMode 생성. 

 


 

BP_Player

 

IsNotBowMode

  • BowMode에서 카메라 Zoom In & Out을 사용하기 때문에 마우스 휠 Zoom In&Out과 구분해서 사용하는게 좋다. 그래서 BowMode가 아닐 때 마우스휠 Zoom In&Out가 적용되게 한다.
  • isNotBowMode 함수 생성
  • 반환노드 출력에 bool형 Return Value 생성
  • 방금 Weapon Component에서 만든 IsBowMode를 불러주고 NOT 상태일 때 반환(=Return) 

 

 

Event Graph

  • 속도가 있기 때문에 Delta Time이 들어간다. Tick Event

 


 

참고) Lerp (Linear Interpolation) 선형보간

 

선형보간

(1-t)*A + t * B

 


 

실행화면

 


 

 

 

 

 

 

 

 

IK, FK 구현

 

Root

  • Pelvis (여기서부터 시작, Local Transform)
    • Hip: LT * PT = Local Transform * Parent Transform
      • Clavicle_L : LT * PT
        • Foot_L
        • Foot_R

 

 

FK: 위에서 아래로 내려오는 방식

IK: 아래에서 위로 올라오는 방식 

 

어느시점에서 FK IK 합쳐진다.

 

Local FK: Animation 수정불가

Mesh FK 언리얼 자체에서 옵션으로 수정가능. 프로그래밍으로 불가능

Component FK+IK 프로그래밍으로 수정 가능 

 


 

FFeetData 생성

 

Blueprint - 구조체 - FFeetData 생성

  • Left Distance (Vector)
  • Right Distance (Vector)
  • Pelvis Distance (Vector)
  • Left Rotation (Rotator)
  • Right Rotation (Rotator)

 


 

FFeetComponent 생성

 

Blueprint Class - Actor Component - FFeetComponent 생성

 

 

Trace

Zoom In

  • Trace 함수 생성
  • Trace 입력에 InSocketName (이름), 출력에 OutDistance (float) 생성 
  • Offset Distance: 캐릭터는 실제게임에서 살짝 떠있다. 이 살짝 떠있는 정도. 여기서는 5.0 값을 주었다.
  • Trace Distance: 계단 위 캐릭터의 떠있는 한쪽발과 바닥 사이의 거리. 

 

 

 

Apply Inverse Kinematics

 

 

 

Skel_Mannequin에서 Character의 x, y, z방향 확인

Local 좌표계
  • Foot_L: Local 좌표계 기준 왼발의 x방향은 위쪽

 

Local 좌표계
World 좌표계
  • Pelvis: Local 좌표계 기준 골반의 x방향은 위쪽
  • 하.지.만. Pelvis는 최상위 부모이기 때문에 World 좌표계를 사용해야 한다.
  • Pelvis: World 좌표계 기준 골반의 z방향이 위쪽   

 

Local 좌표계
  • Foot_R: 왼발의 x방향은 아래쪽
  • Foot_R의 x방향 = -(Foot_L의 x방향)
  • Foot_R의 y방향 = -(Foot_L의 y방향)
  • Foot_R의 z방향 = Foot_L의 z방향
  • 디자이너들은 작업할 때 반쪽을 완성시킨 후 대칭 시켜준다. 그래서 반대편 발의 x방향이 반대방향으로 바뀐다.  

 

 

 

Event Graph

 


 

 

ABP_Player

 

Event Graph

 

 

Anim Graph

 


 

 

실행화면

 

 

 

 

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

[UE] IK, Targeting, Effect  (0) 2023.02.07
[UE] IK(Inverse Kinematics)  (0) 2023.02.06
[UE] 보간식, Bow Aim 2, Cross Hair 만들기  (0) 2023.02.02
[UE] Bow Aim  (0) 2023.02.01
[UE] Fire Ball 수정, Bow  (0) 2023.01.31