ECollisionEnabled 타입의 값을 가져옵니다. Collision Type을 정할 수 있는 열거형입니다.
2. Get Components By Class
주어진 클래스에서 상속받는 컴포넌트를 모두 가져옵니다.
6. OnCollision + OffCollision 커스텀 이벤트 상세 구현
BP_Combo에서 선언하고 BP_Fist에서 상세 구현한 OnCollision + OffCollision 커스텀 이벤트
간단하게 BP_Fist에서 선언한 SetCollision 함수를 호출하고, Collision 타입을 전달합니다.
* 그렇다면, On Collision과 Off Collision 커스텀 이벤트를 직접 호출해줄 Notify State가 필요하겠죠.
7. On Component Begin Overlap 충돌 이벤트 구현
BP_Fist의 충돌 이벤트 구현
1. Send Damage
별도로 설정한 Power 값을 Damage 값으로 BP_Weapon에서 정의한 Send Damage 함수를 호출해줘야죠!
AN_Collision
1. Received Notify Begin + Received Notify End 수정
AN_Collision 내부 Received Notify Begin + Received Notify End 구현 화면
1. Get Weapon Current
BPI_Weapon에서 선언하고 BP_Player에서 정의한 Get Weapon Current는 현재 Weapon, 즉 Combat Type을 반환합니다.
2. Cast To BP_Combo
BP_Combo의 하위 클래스, 즉 BP_Sword + BP_Fist 만 Collision 관련 노티파이 스테이트를 필요로 하기 때문에 현재 Weapon을 BP_Combo로 캐스팅하여 성공하면 Collision 관련 함수를 호출해줍니다. 당연하게도, BP_Wizard 같은 NoCombo 공격 방식은 별도의 호출이 필요 없습니다.
3. On Collision + Off Collision 호출
Notify State 구간의 Begin 시점에 On Collision을 호출하고, End 시점에 Off Collision을 호출해줍니다.
Fist 애님 에셋
Fist_Attack_1 애님 몽타주 화면
1. 애님 몽타주 생성 및 Notify + Notify State 추가
앞서 설명한 것과 동일한 방식으로 진행합니다!
2. Slot을 Full Body로 설정
상/하체 분리를 통해 재생하는 애님 몽타주들이 아니기 때문에, Full Body로 설정합니다.
3. BP_Combo::Play Combo Montage
Combo Table 정보를 로딩하여 각 Montage를 재생하는 함수는 BP_Combo에서 구현하고 있죠!!
* 상세 내용은 이전의 Sword와 동일하므로, 생략
BP_Player
1. BeginPlay이벤트에서 Spawn & Attach Fist 노드 그룹 구현
BP_Player의 BeginPlay이벤트 내부 Spawn&Attach Fist 이벤트 그룹
Sword와 동일합니다. 단지 Sword처럼 Weapon Holster에 장착 중인 무기가 아니므로, 시작 시점에 Spawn 하는 경우 별도의 Socket 이름 없이 BP_Player 인스턴스의 Mesh 컴포넌트에 직접 Attach만 해줍니다.
2. Attacking Fist Event 구현
BP_Player의 Fist 입력 액션 구현
Sword 혹은 Wizard Event의 것과 다름없지만, 새로운 Combat Type이 추가된 만큼 서로 간의 전환 방식을 구현하는 Switch Node에 대한 추가 구현이 이루어져야겠죠!
* 당연히 Sword Event와 Wizard Event 내부에서도 추가 구현이 필요하죠! Sword EventWizard Event
AN_Unequipped, Combat Type 간 전환
1. AN_Unequipped 수정
AN_Unequipped 내부 Received Notify
Sword 공격 모드를 끝내고 BP_Sword를 Weapon Holster 소켓에 다시 집어넣고 호출되는 해당 노티파이는 Sword -> Fist 공격 모드 간 전환을 위해 추가 구현이 필요하죠!