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

[37강] Wizard & Sword Mode

whereareyoung 2024. 7. 16. 23:58

이번시간에는 크게 두 가지를 다룰것이다. 

 

1. Attack 이벤트 분할 정리

- Sword Mode Attack / Wizard Mode Attack 분할

- End Sword Attacking / End Wizard Attacking 분할 

 

2. Player 의 손에 불 파티클을 줘서 "마법 불"이 손에 붙어있도록 처리

 

Attack 이벤트 분할 정리

1. BP_Player > 이벤트그래프 > Attacking Event > Attacking 입력 액션 밑에 "End Attacking" 생성, 다음과 같이 세팅 

End Attacking 이 Notify 에서 호출되고 각각 처리될 수 있도록 세팅할 예정이다. 

 

2. AN_EndAttacking > Received Notify 다음과 같이 세팅 

 

 

마법 공격 모드 구현 

1. Montage > "Wizard_Attack_1_Montage" > "UpperBody" 슬롯으로 변경 

달리면서 공격을 사용할 수도 있으니  

 

2. End Attacking 노티파이 추가 

* 노티파이가 맨 끝에 있어도 콜은 되나, 공격 완료를 빠르게 하기 위해 앞으로 당겼음 

 

3. BP_Player > Attacking Event > Attacking 입력액션 > "if" Branch 생성 후 접어 "Attack Wizard Event" 생성

 

4. 함수 > "CanAttack" 을 "CanSwordAttack" 으로 Rename 복사 붙여넣기 하여 "CanWizardAttack" 생성 및 다음과 같이 세팅 

 

5. BP_Player > Attacking Event > Attacking 입력액션 > "Attack Wizard Event" 다음과 같이 세팅 

 

6. "Attack Wizard Event" 하단에 Custom Event 생성 > "EndWizardAttacking" Rename > 다음과 같이 세팅 

 

7. Attacking Evnet > End Attacking > 다음과 같이 추가 

 

플레이 하여보면 정상적으로 작동하는것을 확인 할 수 있다. 

 

 

Player 의 손에 불 파티클을 줘서 "마법 불"이 손에 붙어있도록 처리

드가지 방법을 활용하여 불을 구현할 것이다. 

   1) 파티클 시스템을 가진 액터를 만들어 액터에 어태치 시키는 방식(손에 붙이는 불을 만들때)

   2) 액터에 파티클 시스템 컴포넌트를 만든 후 Spawn 시키는 방식(불덩이를 던질 때) 

두가지를 적절히 활용하여 손에 불을 들고 있다가 공격시에 불을 던지며 폭발 시키고, Enemy 에 불이 잠깐 붙어있는 것을 구현할 것이다.  

 

1. Player > 블루프린트 클래스 > Actor "BP_HandFireBall" 생성

 

2. 불 이펙트 가져오기 

콘텐츠 > 탐색기에서 표시 > 첨부파일을 풀어서 Effect 폴더 에 덮어 씌어오는 방식으로 가져오기 

* 이 어셋의 특징은 Required > Use Local Space 활성화 되어있어 손에 붙어서 플레이가 된다는 것이다. 손에 들고있을 때는 활성화, 던질때는 비활성화하여 던져지는 듯한 효과를 낼 것이다. 

 

* 불 량을 조절하려면, 다음과 같이 Spawn 을 통해 1초에 생성되는 양을 늘릴 수 있다. 

 

3. BP_HandFireBall > 컴포넌트 추가 > ParticleSystem 

방금 가져온 어셋을 Particle System 에 넣어준다. 

 

 

4. 불 붙일 소켓추가

1) Skel_Mannequin > Hand_R> 소켓추가 > "Hand_FireBall"

 

2) 프리뷰어셋추가 > Hand_FireBall 

 

3) 애니메이션 > Wizard Idle 

 

뷰포트를 봐 가며 불 크기를 조절한다 

 

4) 다음과 같이 세팅 

 

5. BP_Player > Begin Play 에서 Fireball Spawn 세팅

1) HandFireBall 변수생성 

 

2) 카테고리 정리 

 

3) 다음과 같이 세팅 

 

4) AttachToComponent 이하에 추가 

*Begin Play 에서는 숨겨뒀다가 Wizard 모드일 때 보이도록 처리 

 

5) Wizard Event 다음과 같이 세팅 

- 위저드 모드일때 보이고 

 

- 아닐 때 숨기고 

 

이렇게 해서 불을 손에 쥐는 것은 구현이 완료되었다.

 

다음시간에 투사체를 이용해서 던지고, 터지고 하는 것을 진행하도록 할 예정인데,

불을 쏘는 동작을 하면 불이 마치 나가는 것처럼 처리를 할 것이다.

 

내일 퇴근 후가 기대된다!

 

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

[39강] FireBall Overlap Event  (0) 2024.07.24
[38강] Projectile  (0) 2024.07.16
[36강] Wizard & Sword Mode  (0) 2024.07.11
[35강] Wizard Animation  (0) 2024.07.06
[34강] Wizard Mode  (0) 2024.07.05