[UE] Unreal Interface, Weapon
목차
Interface
추상화, 가상화, Interface
추상화
- C언어는 Java, C#과는 달리 추상화와 가상화가 나누어지지 않았다.
- 가상화: virtual로 오버라이딩. 공통적으로 쓰일 부분이 있을때 자주 사용.
- 추상화: 어떻게 쓸지몰라 특징만 명시해놓은 것. 어떻게 쓰일지 잘 모를때 자주 사용.
- 언리얼 C: 언리얼의 Interface는 추상화(순수가상)과 가상화를 포함
- 언리얼 Interface = 추상(순수가상) + 가상
- 가상화를 물어보면 가상화, 추상화 모두 설명하는게 좋다.
- 가상함수 테이블(_vtable)
더보기
class A
{
virtual void Test()
{
}
};
class B : public A
{
void Test() override
{
}
};
int main()
{
B b;
A a = b;
a.Test();
}
class A에 있는 Test() 호출
가상테이블이 없다. 가상테이블은 동적할당(런타임 시 결정)에 이루워진다.
int main()
{
B* ob = new B();
A* a = ob;
a->Test();
};
이 경우 class B에 있는 Test() 호출.
동적할당. 가상테이블 사용.
더보기
void Test(int* c)
{
c = new int();
*c = 20;
}
int main()
{
int* a = NULL;
Test(a);
printf(a);
}
int*c = a
결과값은 NULL;
Interface
- Interface의 역할: 서로 다른 애들끼리 그룹으로 묶어서 비슷한 역할을 할 수 있게 해준다. 서로 다른애들을 연결해준다. 이름이 들어간다.
- Unreal Interface = 개념의 역할. 추상+가상 모두 포함.
게임 회사 | ||
Engine 팀 | Interface 생성 | Client 팀 |
Camera | ← 가져다가 사용 → | Camera |
Moving, Rotate, Capture | 서로 간의 작업이 분리됨 | Follow, Orbit, Trace |
Character | |
Player | Enemy |
Character | ICharacter | Weapon |
Player Enemy |
Damage() = | Sword |
ICharacter
Damage() =
Weapon
BP: Blueprint Class
BS: Blend Space
ABP: Animation Blueprint
AN: Blueprint Class AnimNotify
ANS: Blueprint Class - AnimNotifyState
E: Enum 열거형
DT: Data Table
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 | Sword_Attack_1_Montage Sword_Attack_2_Montage Sword_Attack_3_Montage |
|
Draw_Sword_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 ANS_Combo AN_BeginAction AN_EndAction |
||
Player | BP_Player | ||
Weapons |
Sword | Combo_Sword - Blueprint Class Actor Weapon_Combo 상속 DT_Equip_Sword DT_DoAction_Sword |
|
EWeaponType FDoActionData FEquipData Weapon - Blueprint Class Actor Weapon_Combo - Blueprint Class Actor Weapon 상속 M_Weapon |
IDamage 생성
Blueprint Class - Blueprint Interface - IDamage 생성
FHitData 생성
Blueprint - 구조체 - FHitData 생성
DT_Sword_HitData 생성
우클릭 - 임포트 - DT_HitData_Sword.csv 불러오기 - DT_HitData_Sword 생성
BP_Enemy 수정
Set Damage
Weapon 수정
Weapon_Combo 수정
On Begin Overlap
Event Graph
실행화면
'⭐ Unreal Engine > UE RPG Blueprint' 카테고리의 다른 글
[UE] 타격 구현 (Camera Shaking, Hit Stop) (0) | 2023.01.19 |
---|---|
[UE] Effects (Particles, Sound) (0) | 2023.01.18 |
[UE] 무기관리 2 (0) | 2023.01.12 |
[UE] 무기관리 (0) | 2023.01.11 |
[UE] Enum, Statement Component (0) | 2023.01.10 |
댓글
이 글 공유하기
다른 글
-
[UE] 타격 구현 (Camera Shaking, Hit Stop)
[UE] 타격 구현 (Camera Shaking, Hit Stop)
2023.01.19 -
[UE] Effects (Particles, Sound)
[UE] Effects (Particles, Sound)
2023.01.18 -
[UE] 무기관리 2
[UE] 무기관리 2
2023.01.12 -
[UE] 무기관리
[UE] 무기관리
2023.01.11