본문 바로가기
Unreal

『인생 언리얼 5 프로젝트 교과서』복습 이동방향 추첨 / 충돌처리 /파티클 생성

by 우타미 2025. 2. 18.
728x90

 

아 주말을 기깔나게 보내고 왔는데
황금올리브(저번에 금 투자공부한다길래)에게 복습 열심히 한다는 칭찬을 들었고
월요일을 산뜻하게 레몬케이크와 화이트 아메리카노로 아침을 열고 ^^
기깔나게 복습을 시작해 볼까요? 저번까지의 과정은 아래에 링크를 남겨두겠음

2025.02.14 - [분류 전체보기] - 『인생 언리얼 5 프로젝트 교과서』복습 총알 생성 / 적 제작하기

 

『인생 언리얼 5 프로젝트 교과서』복습 총알 생성 / 적 제작하기

슈팅게임의 맵을 조성하고 플레이어 이동까지 구현해 보았다.아래의 글에서 확인 가능함 2025.02.12 - [Unreal] - 『인생 언리얼 5 프로젝트 교과서』 2.2 프로토타입 버전 제작하기 복습용 feat. 벡터

tami-u.tistory.com

 

 

1. Enemy의 이동 방향 추첨

불규칙성을 추가해 적군의 일부를 플레이어를 따라 이동하게끔 만드는 것이 오늘의 목표다.

 

BP_Enemy에서 변수를 만들어 준다. 방향을 저장할 Direction(vector) 그리고 확률 기준이 되는 부분 0과 1 사이 0.35(Float)의 값을 넣어준다.  추후 확률 조정을 할 수 있도록 Instance Editable 체크를 해주자. 

게임이 시작하자마자 (Event Begin play) 
if( 랜덤값 0~1사의 값이 <= 0.35 라면)

true-> 플레이어 위치쪽으로 

false -> 앞으로 

 

매 프레임마다.(Event Tick)

(방향* 스피스* delta값) + 적군의 위치 -> set 적군의 위치 

 

이때 플레이어의 vector 값 - 적군의 vector값 = 도출된 vector를 normalize를 해준다.

이 부분에 대한 게임수학은 업로드 되는 대로 링크 걸 예정

2. 충돌 처리하기 

BP_Bullet 의 컴포넌트에서 Add 클릭 Box collision 생성 후 크기를 맞춰준다.

37.5, 12.5,  50

그리고 컴포넌트창에서 BoxCollision을 제일 상단으로 드래그 앤 드롭을 하여 최상단 컴포넌트로 만들어 준다. (충돌처리를 위한 필수과정이니 빼먹지 말자)

Player와 Enemy도 충돌 처리를 해야 하니 콜리전 만들었다.

[Edit] -> [Project Settings..]-> [Collision] -> [New Object Channel]-> 이름지정 후 ignore 설정한다.

 

Ignore 충돌 이벤트 무시

Overlap 충돌 이벤트는 발생, 물리적으로는 밀어내지 않음

Block 충돌 이벤트 발생, 물리적으로 밀어냄

 

이렇게 Enemy와 Bullet도 동일하게 설정해주자.

 

Player, Enemy, bullet의 collision presset 설정을 해준다. 일단 만들어준 Type 설정을 한 뒤 
Ignore 전부 설정해 준 후 충돌하는 아이들끼리 overlap 켜준다고 생각하면 편하다.

위의 사진의 Player와 Bullet의 충돌을 인지하니 Enemy의 설정창임
이제 충돌 이벤트를 구현해 보자

Event ActorBeginOverlap 노드는 다수의 조건이 동시에 만족했을 때 실행되는 이벤트라고 필자가 예~~ 전 블로그 글에 설명을 해둔 적이 있다. 그렇다. 충돌은 상호작용이기에 이 노드를 사용해서 충돌인식을 하면 파괴되는 노드를 구성해 보자.

위 사진은 BP_Bullet가 Enemy와 출동했을 시 enemy가 파괴되고 self(본인) 또한 파괴되는 구성이다. 

3. 파티클 생성

Enemy가 Bullet에 맞아 소멸되는데 이펙트가 없으니 노잼이다.
파티클 이펙트를 넣어보자 
총알 본인이 파괴되기 전에 emitter 스폰해서 엑터의 위치값을 넣어주면 된다. 
프로젝트를 생성할 때 starter팩 체크하고 생성해서 emitter Template 중 적절한 거 들고 오자

 

이러니 좀 더 있어 보인다 굳

 

자 이제 남은 플레이어 충돌 처리를 해보겠다.

BP_Enemy에서 Player와의 충돌처리 + 파티클 효과를 넣어준다. 플레이해보면? 

에러가 겁나 뜬다. 

런타임 오류를 방지하기 위해 is Valid를 추가해 준다. 

유효한 경우 방향값을 받겠다.라는 소리
이렇게 하고 컴파일 저장 플레이 하면 잘 돌아간다~~~~~~


사담

진지한 표정과 그렇지 못한 결과물
나를 관찰하면 이런 느낌임 뭔가 빡쳐있는 미간과 입 개 진지한 표정 결과물은 깍두기들이 총 쏘는데 버그 오짐
발등에 불이 떨어진 지 오래되었지만 이렇게 천천히 해도 되는 걸까..?
오늘도 춘식이랑 자습 갈길 것 같은데 벡터공부좀 해야겠움 ^^

 

728x90