본문 바로가기

게임프로그래밍/실습1

[언리얼 실습] 39. 액터가 부셔질 때 효과음을 내고 사라지게 하기


목차

  1. 블루프린트에서 사운드 재생하기
  2. 액터가 부서지면 사라지게 하기

1. 블루프린트에서 사운드 재생하기

 

이전에 에너미가 Hit 할때 발생하는 효과음은 C++에서 재생하였다. 이번에는 블루프린트에서 재생해보려고 한다.

 

 

Breakable 액터의 이벤트 그래프로 들어가자. 전에 C++와 블루프린트 모두에서 사용할 수 있는 함수를 만들었다. 이곳에서 사운드를 재생할 것이다.

 

 

위와 같이 노드들을 연결해주자. 이렇게 하면 사운드가 재생되는 것을 볼 수 있다.


2. 액터가 부서지면 사라지게 하기

 

대부분 (사실상 모든) 게임에서 부서질 수 있는 물체가 부서지고 나면 일정 시간후 사라진다. 계속 남기면 리소스를 계속 차지 할 것이고 이것은 최적화의 측면에서 좋지 못하다.

 

그렇기 때문에 액터가 부서지면 일정 시간 후 사라지게 할 것이다.

 

 

액터가 부서진 후 Set Life Span 노드를 연결해줘 액터의 수명을 정해줄 것이다.

 

이렇게 하면 액터가 부서진 후 3초가 지나면 액터가 사라지지만 한가지 문제점이 있다.

 

액터가 Hit에 의해 파괴 된 것이 아니면 (GetHit() 함수랑 연결된 것이 아니면) 액터에 손상이 가해져도 사라지지 않는다는 것이다.

 

그래서 단순히 GetHit()함수랑 연결하는 것이 아닌 다른 방법을 사용할 것이다.

 

 

컴포넌트에서 지오메트리 컬렉션을 선택하고 이벤트 탭을 보면 다양한 이벤트가 있는 것을 볼 수 있다.

 

 

그중에서 On Chaos Break Event를 추가하자.

 

해당 이벤트는 지오메트리 컬렉션이 손상을 받으면 호출되는 이벤트이다.

 

 

Life Span을 여기서 설정해주자. 그 다음 한가지 더 설정을 해야한다.

 

 

지오메트리 컬렉션 컴포넌트의 디테일 패널에서 카오스 피직스를 들어가고 그곳의 이벤트 항목에서 Notify Breaks를 체크해주어야 한다.

 

이렇게 해서 물체가 부서지면 소리가 나고 일정 시간 후 사라지게까지 구현하였다.