게임개발/Unreal 블루프린트

[Unreal_블루프린트]#21-2_Interface, No Combo

Hardii2 2022. 9. 25. 14:28

 

[Unreal_블루프린트]#21-2_Interface, No Combo

Unreal 블루프린트 개발 중 "Interface"에 대해 알아보겠습니다.

"블루 프린트" 활용에 대한 내용입니다.

 

 


 

상속 계층 그래프

상속 모델 디자인

Wizard

1. BP_Wizard

BP_Wizard 이벤트 그래프 화면

1. Parent Class 설정 : BP_Weapon

클래스 세팅 -> Parent Class를 BP_Weapon으로 설정합니다.

2. 변수 생성
BP_Wizard의 이벤트 그래프 내부 변수 목록 화면

Wizard 공격 모드가 갖는 세 가지 스킬을 변수로 생성합니다. 각각 "BP_WizardSkill", "BP_WizardSkill_Heal", "BP_WizardSkill_Warp", 그리고 "BP_WizardSkill_Throw"를 참조합니다.



3. BeginPlay 이벤트
BP_Wizard의 BeginPlay에 연결된 Spawn&Attack Heal 노드 그룹 내부 화면
먼저, Combat Type 상태 변경과 함께, Skill( Heal, Warp, Throw(투적 마법)) 별 필요한 Actor를 Spawn 그리고 Attach 합니다. 

4. Attack 입력 이벤트 구현
BP_Wizard 이벤트 그래프 "Attack" 이벤트 구현
BP_Wizard의 이벤트 그래프 중 "EndAttack" 이벤트 구현
"Attack" 이벤트는 "BP_Weapon"의 함수로 구현이 없는 순수 가상 메서드로 취급해봅시다. 따라서, "BP_Wizard"에서 오버라이딩 합니다ㅎㅎ. "BPI_Weapon"에서 제공하고 "BP_Player"에서 정의한 "SetState"를 호출해서 상태 변경을 진행합니다. 더불어, "BP_WizardSkill"에서 선언한 "Spell"을 호출합니다.

 

2. BP_Wizard::ChangeSkill 함수 구현

BP_Wizard 내부 "ChangeSkill" 함수 구현 화면

"OnFocus"이벤트와 "OffFocus"이벤트는 "BP_WizardSkill"에서 선언한 커스텀 이벤트로 Skill 변경을 위해 필요한 커스텀 이벤트입니다. 각각 새로운 Wizard Skill이 정해질 경우 현재 Skill을 "OffFocus"하고, 새로운 Wizard Skill을 "OnFocus"합니다.

 

Wizard Skill

1. BP_WizardSkill

BP_WizardSkill 이벤트 그래프 화면

1. OnFocus + OffFocus

앞서, BP_Wizard에서 호출한 OnFocus와 OffFocus 커스텀 이벤트입니다. 상세 구현은 하위 클래스들(BP_WizardSkill_Heal...etc)에서 진행하겠습니다!

2. Spell + EndSpell

"Spell"과 "EndSpell" 커스텀 이벤트 또한 하위 클래스들에서 상세 구현을 진행할 예정입니다.

 

2. BP_WizardSkill::GetOwner To Wizard

BP_WizardSkill::ChangeSkill 구현 내부

간단합니다. Owner(BP_Wizard)를 얻어오기 위한 함수입니다. "BP_WizardSkill"은 "BP_Wizard"와 하위 스킬들과 연결하기 위한 클래스로, 하위 클래스들의 상세 구현을 위해 비교적 더 필요한 "BP_Wizard"를 쉽게 얻어올 수 있도록 함수를 정의합니다. (굳이 BP_WizardSkill이 필요한가 싶지만, 일단 진행해보겠습니다...)