🎮Unreal4/Blueprint

[UE4] 사운드 기능(2D Sound/3D Sound), 사운드 감쇠, Draw Debug Sphere

공대 컴린이 2023. 2. 1. 21:35
728x90

🎺 사운드 기능 (Sound)

언리얼에서 사운드 입히는 방법을 공부해보았다. 사운드를 구현하는 방법으로는 2D 사운드와 3D 사운드 두 가지 종류가 있다.

  • 2D 사운드
    2D 사운드는 어디에서든지 거리,위치 상관없이 다 같은 볼륨의 소리가 동일하게 나야하는 경우 사용한다.
    예를 들면 배경음악(bgm) 등이 있다.
  • 3D 사운드
    3D 사운드는 거리나 상황에 따라 소리가 억제되어 조절이 가능하도록 구현해야 하는 경우 사용한다.
    예를 들면 플레이어의 발소리(footstep) 등을 구현하는 데 사용된다.
    3D 사운드는 도플러 효과가 적용되어있기 때문에 가까이 오면 소리가 커지고, 멀리가면 작아지는 등의 소리 효과를 나타낼 수 있다.

사운드 큐를 이용한 사운드 구현

언리얼에서 사운드 기능을 구현할 수 있는 '사운드 큐'기능이 있긴 하지만, 이번엔 이 기능으로 사운드를 구현하지 않고 블루프린트를 이용해 구현하는 방법을 공부할 것이다.

🎵 2D Sound - Spawn Sound 2D

2D 사운드를 구현하기 위해 Spawn Sound 2D 함수를 호출하였다. Sound에는 말 그대로 사운드 소스를 연결하고, Volume은 소리크기, Pitch는 

함수 명에 Spawn이 붙는 함수들은 항상 수정/변경이 가능하도록 반환값으로 Component를 반환해준다. 위 함수에서도 반환값에 마우스를 대보면 "Audio Component"를 반환해준다는 것을 알 수 있어 변수 유형이 Audio Component인 변수 Audio를 생성해주었다.

 

Sound 2D 예제 (BP_Sound2D 블루프린트 클래스)

Spawn Sound 2D를 통해 구현해본 사운드 기능이다. Audio 변수에 생성된 사운드 컴포넌트가 없다면 Spawn 함수를 통해 설정해주고, 이미 생성된 사운드가 있다면 Set Paused 함수를 통해 일시정지 시켜주었다.

해당 블루프린트 클래스에 Box 콜리전을 하나 생성하여 Box안에 충돌 중일때 배경음악이 나오고, 해당 Box를 벗어나면 배경음악이 꺼지는 기능을 구현해보았다.

🎵  3D Sound - Spawn Sound at Location

위치 또는 거리에 따라 소리가 달라지는 3D Sound 기능을 구현해보자. 2D와는 조금 다른 함수인 Spawn Sound at Location을 사용하였다. 특별히 신경써야하는 요소는 Sound와 Location, Attenuation Settings 정도가 있다. Location에 연결된 위치에서 사운드가 실행되고, Attenuation Settings에는 감쇠를 설정할 수 있는 "사운드 감쇠" 에셋을 설정한다.

 

Sound 3D 예제 (BP_Sound3D 블루프린트 클래스)

3D 사운드 기능을 구현해본 블루프린트이다. 생각보다 간단하게 구현할 수 있지만 3D 사운드는 사운드 감쇠를 어떻게 설정하느냐에 따라 다양하게 구현되는 것 같다.

 

사운드 감쇠 클래스를 생성한 뒤 속성들을 설정해보았다.

 

사운드 감쇠 클래스

사운드 감쇠를 사용하면 거리가 멀어질수록 소리가 작게들리거나 특정 구역에서 갑자기 소리가 커지는 등의 다양한 사운드 기능을 구현할 수 있다. 

감쇠 모양에 따라 확성기처럼 소리가 나거나 (Cone), 외부의 배경음처럼 소리가 나거나 (Sphere) 다양한 효과를 낼 수 있었다. 자세한 내용은 아래 참조를 확인하면 좋다.

감쇠의 내부 반경으로 설정해 둔 거리안에서는 소리 크기가 일정하게 출력되고, 내부반경부터 감쇠거리까지 그 사이에 소리는 줄어든다. 이때 감쇠거리를 벗어나면 사운드가 아예 중지된다.

🚩 Draw Debug Sphere

설정해둔 내부반경과 감쇠 거리를 게임상에서 시각적으로 확인하기 위해 Draw Debug Sphere 함수를 사용하여 범위를 세그먼트로 그려주었다.

해당 함수는 게임 구현의 과정 중 유용한 시각자료로 사용될 수 있다.

 

3D Sound 구현 사진

2D 사운드와 동일한 방식으로 Box 콜리전을 생성하여 해당 콜리전과 충돌하였을 때 사운드가 출력되게하였다. 이후 파란색으로 그려진 내부 반경 스피어 안에서는 일정한 크기의 사운드가 출력되고, 초록색으로 그려진 감쇠 거리에서는 중앙으로부터 멀리갈수록 작아지는 사운드 크기를 경험할 수 있었다.


참조

https://docs.unrealengine.com/5.0/ko/sound-attenuation-in-unreal-engine/

 

사운드 어테뉴에이션

언리얼 엔진 4 에서 소리의 attenuation, 감쇠 제어에 쓰이는 여러가지 디스턴스 모델에 대한 레퍼런스입니다.

docs.unrealengine.com

 

728x90