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    

 

 

 

 

IK(Inverse Kinematics) 역운동학

Inverse Kinematics 역운동학

Forward Kinematics 순운동학

 

https://docs.unrealengine.com/4.26/ko/AnimatingObjects/SkeletalMeshAnimation/IKSetups/

 

https://www.youtube.com/watch?v=u_a6vIPLQHY 


 

Skel_Mannequin - 가상 본(Bone) 추가

 

IK를 계산할 때 직접 Bone을 움직이는 원본 Bone을 사용하지 않고  가상 Bone을 사용한다. 원본을 사용하면 나중에 잘못 사용하여 오류가 날 수도 있고 계산이 복잡해질 수 있기 때문에 가상 Bone을 생성하여 사용한다. 중요!

 

  • ik_foot_l 우클릭 - 가상 본 추가
    • VB ik_foot_l_Foot_L 생성
    • VB ik_foot_l_calf_ l 생성
  • ik_foot_r 우클릭 - 가상 본 추가
    • VB ik_foot_r_Foot_R 생성
    • VB ik_foot_r_calf_ r 생성

 

 

ABP_Character 수정 

 

Event Graph

추가부분 확대

  • 변수 생성: Neck_Yaw (Rotator) 
  • Character의 조준 회전값(Get Base Aim Rotation)을 가져와 Neck_YawZ(Yaw)값에 넣어준다. 이 작업을 통해 플레이어는 활을 조준하는 방향으로 고개를 돌리게 된다. 

 

 

FeetLayer

FeetLayer 전체 노드

추가부분 확대

 

 


 

Feet Component

 

Apply Inverse Kinematics

수정부분 확대

  • Foot_L
  • 이 부분 자주보자

 

 

Trace

  • 반환노드에 출력 파라미터 OutRotation (Rotator) 생성
  • Trace 연산을 마치고 나온 Hit Result의 Normal값으로 각도를 구한다. 
    • Mesh의 면과 Normal은 수직이다.
    • 수직하는 두 변의 길이를 알면 각도를 구할 수 있다. 
    • Normal의 Vector를 x, y, z로 분해하여 길이로 사용하여 각도를 구할 수 있다.   
    • tan Roll = y / z,   tan Pitch = x / z
      • Roll 각도 = arc tangent y / z
      • Pitch 각도 = arc tangent x / z 
  • Normal로 각도를 구한 뒤 Make Rotator로 값을 넣어준 후 OutRotation으로 반환한다.

 

 


 

실행화면

 

 

 

 

 

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

[UE] Targeting, 내적과 외적  (0) 2023.02.08
[UE] IK, Targeting, Effect  (0) 2023.02.07
[UE] 마우스휠 Zoom In & Out, IK, FK  (0) 2023.02.03
[UE] 보간식, Bow Aim 2, Cross Hair 만들기  (0) 2023.02.02
[UE] Bow Aim  (0) 2023.02.01