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

[47강] Wizard Skill

whereareyoung 2024. 8. 26. 23:55

이번시간에 진행할 내용은 다음과 같다

1. Wizard Skill 생성

2. 마법, 칼 교체할때 발생하는 이벤트 처리 

 

차후에는 Wizard Item 을 구현하고, 하위에 Draw Item, Throw Item 을 구현할 예정이다. 

 

Wizard Skill 구현 1단계

1. BP_IWeapon > 다음과 같이 함수 Rename 

차후에 작업할 내용이랑 겹칠 것 같아 다음과 같이 이름을 변경하여 준다. 

"Character" > "Weapon"

* 다른 인터페이스에 같은 이름의 함수가 있을 경우 처리가 헷갈리므로 구분하기 위해 해당 인터페이스에 소속되어 있는 함수들에는 인터페이스 이름을 중간에 표기해 줌 

 

계층구조 (소유구조, 상속구조) 

Weapon, Wizard Skill, Throw Item 모두 Actor 로부터 상속받을 예정이라 연관관계가 없다. 

그런데 Character 가 Weapon(Wizard) 를 Spawn 시키면서 Owner 로 Character 를 등록시키는 것 처럼, Wizard 가 Wizard Skill 을 Spawn 하면서 Owner 로 Wizard 를 등록시킬 것이다. 마찬가지로 Throw 에서 Throw Item 을 생성시킬때도 Owner 가 Throw 가 될 것 이다. 

 

2. 폴더정리 

   1) Weapons > "Combo" 폴더 생성 > 다음 네 가지 "Combo" 폴더로 이동

 

   2) Weapons > "Trails" 폴더 생성 > 다음 세 가지 "Combo" 폴더로 이동

 

   3) Weapons > "Wizard" 폴더 생성 > BP_Wizard "Combo" 폴더로 이동

 

   4) 콘텐츠 > "Enums" 폴더 생성 > "Player" 폴더 다음 두가지 "Enums" 폴더로 이동

 

3. EStateType > 신규 > "Spelling" 추가

* 마법을 쓰는 중이라는 의미, Attacking 과 같음 

 

4. BP_Wizard > 이벤트 그래프 > 다음부분 Spelling 으로 변경, 다음 부분 Delete

 

Wizard Skill 에 Spell, EndSpell 함수를 둘 것이다. 

 

5. Wizard Skill 정의 

1) 콘텐츠 > Weapons > Wizard > Actor "BP_WizardSkill" 생성

2) WizardSkill > CustomEvent "OnFocus", "OffFocus", "Spell", "End Spell" 생성 

* 각각 스킬이 선택됐느냐, 선택되었다가 나간상황, 스킬 진행중, 스킬완료

 

6. BP_IWeapon > 함수 "Weapon_Change" 추가

* 입출력 다음과 같이 세팅

 

7. BP_Weapon > 이벤트 그래프 > CustomEvent "OnSelected", "OffSelected" 생성

 

8. BP_Player > Weapon Change 인터페이스 다음과 같이 세팅 

- 있었으면 OffSelected 를 하고 다음 Is Valid 로 오고, 없었으면 그냥 다음 Is Valid로 옴. 

- Weapon 에 Null 이면, 반환노드 Null로 그대로 들어가게 처리 

 

이전에 있던 무기가 있다면 Off Selected 수행해서 이전에 무기는 선택이 종료되는 부분을 처리하고 새로운 무기로 교체하면서 새로운 무기가 선택된 부분을 처리하기 위해 On Selected 를 호출함 

* 노드끊을때 : 노드끊기 해도 되지만 Alt + Click 해도 끊김 (간편)

 

9. BP_Player > 이벤트그래프 > Sword Event > 다음부분 삭제, 아래와 같이 세팅 

 

마찬가지로 하단 Null 도 이전 버전 삭제하고 다음과 같이 업데이트 

 

10. BP_Player > 이벤트그래프 > Wizard Event > Start Wizard Mode 다음부분 삭제, 아래와 같이 세팅 

 

마찬가지로 End Wizard Mode 하단 Null 도 다음과 같이 세팅

 

구현 테스팅 

1. BP_Sword > 이벤트그래프 > Add event > "On Selected Event", " Off Selected Event" 생성 및 다음과 같이 세팅 

 

2. BP_Wizard > 이벤트그래프 > Add event > "On Selected Event", "Off Selected Event" 생성 및 다음과 같이 세팅 

* 복사 붙여넣기 하면 간편

 

3. 정상 구현되는 것을 확인 할 수 있다. 

(Sword, !Sword, Wizard, !Wizard)

 

다음시간에는 Wizard 를 더 정의해서 heal 작업을 진행할 예정이다. 

무척 기대가 된다! 개인적으로 또 기대가 되는 일은 곧 있을 언리얼 페스트이다. 

https://epiclounge.co.kr/

 

UNREAL FEST 2024 | SEOUL

언리얼 페스트(UNREAL FEST)는 '언리얼 서밋'의 새로운 글로벌 브랜드입니다.

epiclounge.co.kr

 

이번주 8/28(수) - 8/29(목) 인데, 근무시간에 진행하여 참석은 어려울 것 같지만 오디오로 들으며 작업할 예정이다.. 

또 유튜브나 기타 매체로 업데이트를 확인 할 수 있을 것 같아 기대가 된다