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

[43강] Inherit Weapon

whereareyoung 2024. 7. 31. 00:21

상속 이용한 Weapon 구조를 제작할 예정이다. 

그리고 Combo 불러오는 작업을 진행 할 예정이다. 

 

1. BP_Weapon > "SetState" 함수 생성, 다음과 같이 세팅 

* 입력에 EstateType - State 생성 

 

2. 복사하여 "SetCombat" 함수 생성, 다음과 같이 세팅 

* 입력에 ECombatType - Combat 생성 

 

여기까지 작업한 내용을 정리하면 다음과 같다. 

- 인터페이스 역할은 이쪽에 값을 전달해주고, 이쪽에 값을 세팅해주고 등의 중간역할이므로 많은 것들이 필요하지 않음 

 

- BP_Weapon > 다음 함수들은 위의 함수들과 1:1로 매칭되는데, 인터페이스를 통해서 캐릭터와 통신 

 

Weapon 구현작업 (2차)

1. ECombatType 형 "CombatType" 변수생성 

 

2. Can Attack 함수 생성 및 다음과 같이 세팅 

- 공격이 가능한지 상태를 체크 

 

3. "Attack", "EndAttack" 함수생성

Attack 은 자기가 필요한대로 재정의 해서 사용할 것이기 때문에 아무것도 세팅하지 않을 예정이다. 

나중에 자기가 가진 무기에 대해서 재정의해서 사용 

* Virtual 가상화 함수 개념임

 

정리 : BP_Weapon 에 Attak을 정의, BP_Weapon 으로부터 상속받은 자식에서는 Attack 을 재정의

Character 쪽에서는 Weapon으로 상속받은 자식이 누구건 해당 클래스의 Attack 호출 

 

4. "SendDamage" 함수생성 > BP_Sword 의 이벤트 그래프에서 다음노드 잘라오기 후 다음과 같이 세팅 

* 입력에 Actor 형 Other Actor추가 

 

5. BP_IWeapon > "GetCharacterCanMove", "SetCharacterCanMove" 생성 및 다음과 같이 생성

어떤 콤보 공격은 이동할 수 있고, 어떤 콤보 공격은 이동할 수 없기 때문임 

 

6. SetCharacter State/Combat 다음과 같은 형식으로 수정 

 

7. SetCharacterCanMove 다음과 같이 수정

 

8. BP_Player > SetCharacter State/Combat 다음과 같이 세팅 

 

9. BP_Player > Set Character Can Move 다음과 같이 세팅 

 

9. BP_Player > Get Character Can Move 다음과 같이 세팅 

 

이제 "BP_Weapon" 구현 관련은 처리가 다 되었으니, 다음으로는 "Combo" 를 구현할 예정이다 

 

Combo 구현 

1. "BP_Weapon" > 자손 블루프린트 클래스 생성 > "BP_Combo" Rename

 

아니면 새 블루프린트 생성 > 부모 클래스 선택 > "BP_Weapon" 선택 > "BP_Combo" Rename

 

2. BP_Player > 이벤트 그래프 > Begin Play Event > Load Sword Combo Table 

1) 콤보 테이블을 불러오는 부분 잘라내기 

2) BP_Player > 이벤트 그래프 > Begin Play Event 

이제 캐릭터가 아니라 Weapon 쪽으로 넘어갈 것이므로 다음 부분 지워주기 

 

3) BP_Combo > BeginPlay 이벤트 생성 > 해당부분 붙여넣기 

 

4) "Player_Combo_Table" > "Sword_Combo_Table" Rename 

플레이어 콤보 테이블은 Sword 플레이 정보를 가지고 있으므로 Sword 테이블로 변경 

 

5) "FComboTable" > "FComboMontage" Rename

 

6) "Sword_Combo_Table", "FComboMontage" 두개 다 무기에 관련된 것이기 때문에 Weapon 쪽으로 이동  

 

3. "BP_Weapon" > Data Table 형 "ComboTable" 변수 생성,  "BP_Weapon" > FCombo Montage 형 "ComboMontages" 배열 생성 

 

4. "BP_Weapon" >  다음과 같이 세팅 

Combo를 상속해서 쓸 무기가 어떤 것이든 간에 콤보 기능을 사용할 수 있도록 확장성 있게 변경 

 

다음시간에는 플레이어에서 필요한 코드들을 콤보에 가져와서 기능을 구현하고, 정리하는 작업을 계속 진행할 예정이다. 

다음시간이 기대가 된다!

 

 

 

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

[45강] Calling Weapon Attack  (0) 2024.08.26
[44강] Inherit Combo  (0) 2024.08.05
[42강] Interface  (0) 2024.07.29
[41강] Inherit Weapon Diagram  (0) 2024.07.26
[40강] Attach Particle System  (0) 2024.07.25