Unreal Engine/게임클래스 - 언리얼엔진 기초

[44강] Inherit Combo

whereareyoung 2024. 8. 5. 06:32

이번시간에는 Player 에 있는 기존 구현을 활용해 Combo 를 구현할 예정이다. 

그 후, 무기로 옮겨 특정 무기에 대한 Table 을 불러와서 콤보를 구현할 예정이다. 

이후 이것을 상속해 맨손 공격도 구현할 것이다. 

 

콤보 정의

콤보는 이미 플레이어에 정의가 되어있으니 그부분을 가져올 예정이다 

 

1. BP_Combo 에 변수생성 

1) Integer 형 "ComboCount" 변수생성

2) Bool 형 "ExistNextCombo", "EnableNextCombo", "LastCombo" 생성 

 

2. BP_Player > BeginPlay 이벤트 > 시퀀스 > "실행핀 제거" 하여 다음과 같이 세팅 

 

3. BP_Player > 이벤트 그래프 > Attacking Event > Attacking Sword Event > Attacking Event 다음 부분 잘라내기

* Attacking Event : 콤보 입력을 시작, 콤보 입력을 열어주는거 

 

4. BP_Combo > 이벤트 그래프 > BP_Weapon 에 있는 "Attack" 이벤트 생성 > 다음과 같이 붙여넣어 재 정의

 

1) BP_Weapon > CanAttack 함수 > 퓨어설정 

 

2) Can Sword Attack 함수 다음과 같이 변경 

 

3) SET > Set State 로 변경 

 

 

Player Combo Montage 세팅 

1) BP_Player > Play Sword Combo Montage 다음 부분 잘라내기

 

2) BP_Combo > Play Combo Montage 함수생성 및 붙여넣기 하여 다음과 같이 세팅 

 

3) Combo Datas > Combo Montages 로 변경 

 

4) 캐릭터 가져오기 

다음 타깃이 캐릭터로 설정되어 있는데, Actor 에는 Character 가 없기 때문에 다음과 같이 캐릭터를 가져와 주어야 한다. 

 

위와 같이 세팅하면 Enemy 든 Character 이든 맞는 캐릭터를 가져올 수 있다. 

 

5) BP_Weapon > "GetCombat" 함수 복사, BP_Weapon > "Get Can Move" 함수 생성 및 붙여넣어 다음과 같이 세팅

 

 

6)  BP_Weapon > "SetCanMove" 함수생성 및 다음과 같이 세팅 

 

4) BP_Combo > Play Combo Montage 다음과 같이 세팅 

BP_Combo 안에있는 BP_Weapon 안에있는 "Set Can Move" 이다. 

 

 

5. BP_Combo > 이벤트 그래프 다음과 같이 세팅 

1) BP_Player > Play Sword Combo Montage 

 

2) BP_Player > Play Sword Combo Montage 삭제 

 Combo 쪽으로 구현되어 필요없어졌다. 

 

6. BP_Player > 이벤트그래프 > Attacking Event > Attack Sword Event 다음부분 잘라내기 

* 이 부분도 Notify 에서 실행되므로 Combo 에 넣어둔다. 

 

BP_Combo > 이벤트 그래프 > Custom event 생성 > "PlayNextCombo" rename > 붙여넣기 하여 다음과 같이 세팅 

 

7. BP_Player > 이벤트그래프 > Attacking Event > Attack Sword Event 다음부분 잘라내기 

 

BP_Combo > 이벤트 그래프 > "End Attack 이벤트" 생성 > 붙여넣기 하여 다음과 같이 세팅 한 후, 빨간 부분을 제거해준다. 

* 부모 것을 가져다 써야 하기 때문에 다음과 같이 세팅하여준다. 

* New Param 은 Set Can Move 를 컴파일 하면 사라진다, 실수

 

다음과 같이 Can Move, True 여야 한다 

 

8. BP_Player > 이벤트그래프 > Attacking Event > Attack Sword Event 다음부분 잘라내기 

 

BP_Player > 이벤트 그래프 > Attacking Event 붙여넣기 

 

9. BP_Combo 로 다 옮겼으니 "Attak Sword Event", "End Sword Attacking" 노드 삭제. 아무것도 들어있지 않음 

 

Last Combo 변수도 지워주어 다음과 같이 만들어 준다. 

 

10. BP_Player 의 변수도 다 지워 다음과 같이 세팅하여 준다. 

 

이렇게 하면 Combo 를 옮기는 작업은 다 마쳐졌으니 노드 정리를 하여 준다.

 

BP_Combo 노드정리

1. BP_Combo > 이벤트 그래프 > Begin Play 

 

그 다음에 BP_Combo 로부터 상속 받는게 BP_Sword 였으므로 순차적으로 "BP_Sword" 를 작업해 줄 예정이다 

 

BP_Sword 세팅 

1. BP_Sword > 변수 "Power" 삭제

Power 는 부모 (BP_Weapon) 에 있으므로 상속받으면 부모의 Power를 사용하게 되므로 이 클래스에 있는 Power는 삭제 

 

2. 클래스 옵션 다음과 같이 "BP_Combo" 로 변경

 

3. BP_Sword > 이벤트 그래프 다음과 같이 세팅 

 

4. BeginPlay 이벤트 > 부모 함수로의 호출 추가 > 다음과 같이 세팅

* 자신의 Begin Play 를 호출해서 실행한 후 부모의 Begin Play 를 호출하여 부모의 Begin Play 를 수행함

 

 

BP_Wizard 구현 

이제 Sword 를 마쳤다. 다음으로는 Wizard 모드 무기를 구현해야 하는데, BP_HandFireBall 을 수정해서 BP_Wizard 를 구현할 것이다.

 

 

1. BP_HandFireBall > BP_Wizard 로 Rename 

 

2. BP_Weapon 으로부터 직접상속 받기 때문에 다음과 같이 세팅하여 준다 

 

3. BP_Player > 이벤트 그래프 > Attacking Event > Attack Wizard Event 다음 부분 잘라내기 

 

BP_Wizard > 이벤트 그래프 > Begin Play 이벤트, Attack 이벤트, End Attack 이벤트 생성 및 다음과 같이 세팅

 

4. BP_Player > 이벤트 그래프 > Attacking Event > Attack Wizard Event 다음 부분 잘라내기 

 

BP_Wizard > 이벤트 그래프 > End Attack 이벤트 하단에 붙여넣기 

 

5. BP_Player > 이벤트그래프 > Attacking Event > Attacking 입력액션 다음을 제외하고 모두 삭제, EndAttacking 이벤트 다 삭제 

 

위 부분 만 남겨둔다. 

 

* BP_Wizard > 이벤트 그래프 정리된 것

 

지금까지는 Weapon 이랑 Interface 가 통신하는 것에 관해 다루었는데, 다음시간에는 Character 쪽에서 Weapon 을 Call 하는 것을 다룰 예정이다. 

(위에 부분을 호출하는 것)

 

점차 정리가 되어 가는 것 같아 기대가 된다. 

 

 

'Unreal Engine > 게임클래스 - 언리얼엔진 기초' 카테고리의 다른 글

[46강] 전체 구조 및 버그 해결  (0) 2024.08.26
[45강] Calling Weapon Attack  (0) 2024.08.26
[43강] Inherit Weapon  (0) 2024.07.31
[42강] Interface  (0) 2024.07.29
[41강] Inherit Weapon Diagram  (0) 2024.07.26