플레이어나 몬스터가 피격을 당했을때 항상 같은 소리가 나지 않도록 사운드를 배열로 만들고 원본 사운드에 약간의 변화를 주어 일관적이지 않은 사운드를 출력하고자 합니다.
언리얼5에서는 메타사운드를 사용하여 사운드의 배열을 만들고 변화를 줄 수 있습니다.
1. 메타사운드 생성하기
레이아웃 우클릭 > 오디오 > 메타사운드 소스를 통하여 생성 할 수 있습니다.
2. 입력 변수(배열) 생성하기
카테고리의 입력메뉴의 + 버튼을 사용하여 입력 변수를 생성합니다.
생성한 변수의 타입은 WaveAsset으로 지정한 뒤 배열여부를 체크합니다.
해당 배열에 준비된 에셋(사운드웨이브 타입)을 넣어 주도록 합니다.
3. 랜덤 사운드 재생 설정
생성한 변수 배열(WaveAsset)을 그래프에 배치하고 Shffle 함수를 사용하여 배열을 연결하여 줍니다.
단순하게 재생을 다음(Next)핀으로 연결한뒤 WavePlayer에 연결하여 플레이 하여준다면 원본 그대로의 소리가 출력이 됩니다.
조금의 변화를 주기위해서 Input 핀을 통하여 Random(Float)함수를 사용하고 최대값 최소값을 다양하게 설정한뒤
Pitch Shift핀에 값을 넣어주고 마지막출력 OutMono핀의 출력값에도 마찬가지로 랜덤값을 넣어준다면 좀더 다양한 폭의 사운드를 출력 시킬 수 있습니다.
PS.Wave Sound 의 종류와 차이점
모노
모노 사운드는 단일 채널을 사용하며 신호가 모든 스피커에서 동일하게 출력합니다.
스트레오
스트레오 사운드는 두개의 독립적인 채널을 사용하여 좌, 우 스피커에서 다른 사운드를 출력합니다.
쿼드
쿼드 사운드는 네개의 채널을 사용하여 좌, 우, 전, 후 스피커에서 다른 사운드를 출력 합니다.
서라운드
서라운드는 쿼드 이상의 방향에서 출력 합니다.
일반적으로 5.1, 7.1 채널이 사용되며 둘러싸는 듯한 느낌의 사운드 효과를 느낄 수 있습니다.
4. 거리에 따른 사운드 스케일 조절하기
원거리공격으로 몬스터를 피격시켰을때에 바로앞에 있는 몬스터와 똑같은 크기의 사운드가 들리게 된다면 매우 어색할 수 있습니다.
때문에 사운드가 출력되는 위치가 플레이어를 기준으로 가까이 있을때 더욱 큰 사운드가 멀리 있을때 더욱 작은 사운드를 출력시키기 위하여 사운드메타 에셋에 어테뉴에이션을 적용 시키도록 합니다.
우선 레이아웃 우클릭 > 오디오 > 사운드 어테뉴에이션을 통하여 생성 합니다.
다양한 효과를 적용 시킬 수 있으나 가장 기본적으로 자연스럽게
거리에 따른 사운드 조절을 진행하도록 합니다. 어테뉴에이션(볼륨)에서 함수를 Natural Sound 로 지정한 뒤
내부 반경, 감쇠 거리 등은 기본 값으로 사용해 보도록 하겠습니다.
5. 사운드 메타에 어테뉴에이션 적용 하기
생성한 사운드메타 에셋의 상단 메뉴에서 소스 버튼을 클릭하고 어테뉴에이션 세팅창을 통하여 생성한 어테뉴에이션을 적용 시켜 주면 완료 됩니다.
테스트
단순하게 몬스터의 피격음을 만들고 이벤트 그래프에서 일정시간마다 자동적으로 피격음이 재생 되도록 구현하여 테스트를 진행해보았습니다.
플레이어 캐릭터가 몬스터에 가까워질수록 사운드가 커지는(원본사운드의 크기)것을 확인 할 수 있습니다.
'공부 > Unreal Engine 5' 카테고리의 다른 글
[언리얼5] 모션워핑(Motion Warping) (0) | 2023.12.30 |
---|---|
[언리얼5] 애니메이션 블루프린트 Thread Safe Update (0) | 2023.12.19 |
[언리얼5] 스트리밍풀 초과 설정하기 (0) | 2023.12.12 |
[언리얼5] 개인프로젝트 정리(무기) (0) | 2023.12.10 |
[언리얼5] IK 수정 (1) | 2023.12.09 |
댓글