저번시간까지는 손에 불을 들고 있는 것까지 구현하였다.
이번시간에는 Movement Component (Projectil) 을 활용하여 적에게 불을 던지는 것을 구현할 것이다.
1. 어셋 가져오기
파일명이 다 같기 때문에 다음과 같이 진행하는 것이 효율적이다 : 탐색기에서 표시 > Content 폴더 > 압축 풀기 > Effect 폴더 > 덮어씌우기
임포트한 파일은 다음 두 가지이다.
1) "FireBall" - 시간당 파티클 생성 갯수 증가 - Delay 제거 - Duration 길게 변경 - Use Local Space 비활성화 2) "P_Attach_Fire" - 맞았을때 폭발을 하고 적에게 불이 붙도록 하는데 사용 (액터에 파티클 시스템 컴포넌트를 만든 후 Spawn 시키는 방식) |
* 추가로 폭발 파티클도 필요한데, 차후에 필요할때 이전 파일에서 임포트해 가져올 예정중이다.
2. "FireBall" > "P_FireBall" Rename 하여준다.
3. "HandFireball" > "P_HandFireBall" Rename
4. "Weapons" > 블루프린트 Actor 추가 > "BP_FireBall" Rename
이제 어셋을 불러왔으니, Actor로 파이어 볼을 날리는 것을 구현할 예정이다.
BP_FireBall 설정
1) BP_Fireball > 컴포넌트추가 > Sphere Collision
2) 컴포넌트 추가 > Particle System > Particles 에 "P_Fireball" 어셋 넣어주기
불덩이가 날라가서 충돌을 하기 위해 충돌체 하나 생성하고 불덩이를 표현하기 위해 Particle System Component 를 추가시켜준 것이다.
3) 컴포넌트 추가 > Projectile Movement Component
* Projectile Movement Component : 투사체의 움직임을 구현해주는 컴포넌트
4) Projectile Movement Component > Projectile 다음과 같이 세팅
Initial Speed : 최초 속도, 처음 발사됐을때의 속도
max Speed : 최초 속도로 부터 가속해서 제한할 최대 속도
Gravity : 중력 값 (일반적으로 지구중력을 -9.8을 써서 이게 곱해지는 상황이다.)
* 불이 중력의 영향을 받지 않고 직선으로 나가게 하기 위해 중력값을 0을 준다.
- 하단에 Bounces : 튕김처리, 얼마만큼 강속으로 튕길지 마찰력은 얼마일지 튕겨나올때 속도는 얼마일지
- Homing : Homing Target Componet 를 다른 애한테 주면 Projectile 이 그 Target 을 따라감
- Velocity : 투사체를 발사할 방향 설정 (속도가 X, Y, Z 값에 곱해짐)
5. Wizard Attack_1_ Montage > 스켈레톤 트리 > Hand_R > 소켓추가, "Throw_FireBall" Rename
아래와 같이 던지는 자세를 보며 작업하는 것이 정확하다.
다음과 같이 위치를 변경하여 준다.
6. BP_Player > Attacking Event > Attack Wizard Event > Custom Event "ThrowFireBall" 생성, 다음과 같이 세팅
손에 마법을 던질 수 있는 Socket 을 하나 더 넣고, 자신의 전방(캐릭터의 회전) 값을 생성할 방향으로 설정
GetSocketLocation : 메시에 붙은 소켓의 월드 위치를 리턴해 줌
* 소켓은 Mesh 에 들어있음
7. Notifies > Attacking > AN_Endattacking 복제 > AN_WizardAttack
1) Received Notify 다음과 같이 세팅
2) Get Nofity Name 다음과 같이 세팅
7. Wizard Attack_1_ Montage > Notify 추가 "Wizard Attack"
8. 플레이 하여 보면 불이 던져지는 것이 정상적으로 구현된 것을 확인할 수 있다.
일정 시간이 지나고 Projectile 사라지게 하기
1. BP_FireBall > Sphere > Rendering > Hidden in Game (Collsion 인게임에서 보이게 하기)
2. BP_FireBall > BeginPlay Event 다음과 같이 세팅
3. On Component Begin Overlap(Sphere) 생성 > 다음과 같이 세팅
이후 세팅하여 다음 두가지를 구현할 예정이다.
- Static Mesh 면 폭발하고 불을 없애기
- 캐릭터 자료형에는 폭파를 하고 없애는데 불이 붙게 만들기
오늘 강사님이 모처렴 경력 소개를 해 주셨는데 그라비티, 라그나로크에서 엔진 파트장으로 일하며 프로젝트 엔진 총괄하는 업무를 맡으셨었다고 설명해 주셨다. 전에 개발 기본도 NC 에서 엔진 개발에서 일하셨던 분에게 배웠었는데 역시 엔진 하시는 분들이 다들 실력이 출중하시고 훌륭하신 분들이 많은 것 같다. 다음 시간이 기대가 된다!
'Unreal Engine > 게임클래스 - 언리얼엔진 기초' 카테고리의 다른 글
[40강] Attach Particle System (0) | 2024.07.25 |
---|---|
[39강] FireBall Overlap Event (0) | 2024.07.24 |
[37강] Wizard & Sword Mode (0) | 2024.07.16 |
[36강] Wizard & Sword Mode (0) | 2024.07.11 |
[35강] Wizard Animation (0) | 2024.07.06 |