이 튜토리얼에서는 레벨의 화염 함정에 사운드 이펙트를 추가합니다. 프로젝트 파일과 함께 제공된 오디오 파일 중에서 재생할 파일을 선택하기 위해 사운드 큐 에셋을 생성합니다.
그런 다음, 사운드 어테뉴에이션 에셋을 생성하여 플레이어가 사운드를 인지하는 방식을 수정합니다. 이 에셋에는 어테뉴에이션의 내부 반경과 감쇠 거리, 그리고 사운드를 3D 공간에서 공간화할지 여부와 같은 세팅이 포함되어 있습니다.
마지막으로, 화염 이펙트의 블루프린트를 업데이트하여 오디오 컴포넌트를 추가하고, 불꽃이 활성화되어 있는지 여부에 따라 사운드 이펙트를 시작하거나 중지합니다.
시작하기 전에
다음과 같은 주제는 신규 사용자를 위한 언리얼 엔진 문서에서 다루는 내용이므로 반드시 이해하고 있어야 합니다.
노드를 추가하고 연결하는 것과 같은 블루프린트 기초
프로젝트 구성 및 콘텐츠 임포트에서 다음과 같은 에셋을 사용합니다.
S_Fire 사운드 웨이브 파일
BP_TrapFire 블루프린트
사운드 큐 생성
먼저 노드 기반 오디오 에셋인 사운드 큐를 생성합니다.
사운드 큐는 하나 이상의 오디오 파일에 대한 레퍼런스와, 오디오가 그래프를 따라 흐르는 동안 이를 어떻게 조작할지에 대한 인스트럭션을 포함할 수 있는 오디오 에셋입니다. 이는 블루프린트가 게임플레이 오브젝트에 기능과 로직을 추가하는 방식과 유사합니다. 사운드 큐 에디터에는 사운드 이펙트를 제어하는 데 사용할 수 있는 다양한 사운드 노드 타입이 포함되어 있습니다.
사운드 큐 에셋 에셋을 생성하려면 다음 단계를 따릅니다.
콘텐츠 브라우저에서 콘텐츠(Content) > AdventureGame > Artist > Audio 폴더로 이동합니다.
Audio 폴더에서 Fire라는 이름의 새 폴더를 생성합니다.
Fire 폴더에서 에셋 영역을 우클릭한 다음 오디오(Audio)로 이동하여 사운드 큐(Sound Cue)를 선택합니다.
이 에셋 이름을
SC_FireTrap으로 명명하고 엽니다.
에셋이 블루프린트 에디터와 유사한 느낌의 사운드 큐 에디터에서 열립니다.
사운드 큐 에디터에는 사운드 이펙트를 커스터마이징할 수 있는 다양한 노드와 세팅이 제공됩니다. 이 튜토리얼에서는 재생할 오디오 파일을 추가하고 이를 반복 재생되도록 설정합니다.
사운드 큐에 오디오 파일을 추가하려면 다음 단계를 따릅니다.
우클릭하여 Wave Player 노드를 추가합니다.
Wave Player의 출력(Output) 핀을 Output 노드에 연결합니다. Output 노드는 사운드 큐에서 항상 마지막 노드입니다.
Wave Player 노드를 선택합니다. 창 왼쪽 패널에서 사운드 웨이브(Sound Wave)를 프로젝트 구성 및 콘텐츠 임포트 단계에서 임포트한
S_Fire사운드 웨이브 파일로 변경합니다.오디오가 반복 재생되도록 루핑(Looping)을 활성화합니다.
사운드 큐를 저장합니다.
이제 각 화염 함정에서 재생될 오디오 파일이 포함된 사운드 큐를 생성했습니다. 사운드 큐 에디터를 닫아도 됩니다.
사운드 어테뉴에이션을 사용하여 사운드 제어
다음으로는, 감쇠 거리와 오디오 영역의 반경 등과 같은 오디오 세팅을 변경할 수 있는 사운드 어테뉴에이션 에셋을 생성해야 합니다.
사운드 어테뉴에이션 세팅은 다음과 같이 구성해야 합니다.
화염 사운드는 해당 함정의 바운드 내에서만 최대 볼륨으로 재생됩니다.
플레이어가 함정에서 멀어질수록 화염 사운드의 볼륨이 점차 감소(감쇠)합니다.
플레이어가 함정에서 몇 미터 이상 떨어지면 화염 사운드는 들리지 않게 됩니다.
이렇게 하면 플레이어가 함정이 있는 방에 들어오기 전까지는 화염 사운드를 들을 수 없으며, 모든 함정의 오디오가 동시에 들리는 것도 방지할 수 있습니다.
사운드 어테뉴에이션 에셋을 생성하려면 다음 단계를 따릅니다.
콘텐츠 브라우저로 이동합니다. Audio 폴더에서 우클릭한 다음 오디오로 이동하여 사운드 어테뉴에이션(Sound Attenuation)을 선택합니다.
이 에셋 이름을
SA_FireTrap으로 명명하고 엽니다. 사운드 어테뉴에이션 에셋은 데이터 에셋이므로, 다양한 세팅이 포함된 디테일 패널이 표시됩니다.사운드 어테뉴에이션 에셋의 어테뉴에이션(볼륨)(Attenuation (Volume)) 카테고리에서 다음 세팅을 변경합니다.
내부 반경(Inner Radius): 100
감쇠 거리(Falloff Distance): 600
SA_FireTrap을 저장하고 창을 닫습니다.
이제 사운드 이펙트의 어테뉴에이션 세팅이 에셋으로 저장되었습니다.
화염 함정 블루프린트 수정
BP_TrapFire 블루프린트에서 사운드 큐와 사운드 어테뉴에이션 에셋을 연결하고 오디오가 시작되고 중지되는 시점을 정의합니다.
블루프린트를 수정하려면 다음 단계를 따릅니다.
콘텐츠 브라우저에서 AdventureGame > Designer > Blueprints > Traps 폴더로 이동합니다.
BP_TrapFire블루프린트를 엽니다.컴포넌트(Components) 패널에서 추가(Add)를 클릭하고 오디오 컴포넌트(Audio Component)를 추가합니다.
오디오 컴포넌트를 선택합니다. 디테일(Details) 패널의 사운드(Sound) 섹션에서 사운드를 앞에서 생성한
SC_FireTrap에셋으로 설정합니다.필요한 경우, Volume Multiplier 필드를 수정하여 이 사운드 이펙트의 볼륨을 조정할 수 있습니다.
어테뉴에이션(Attenuation) 섹션에서 어테뉴에이션 세팅(Attenuation Settings)을
SA_FireTrap으로 설정합니다.공간화 허용(Allow Spatialization)이 활성화되어 있는지 확인합니다. 이렇게 하면 플레이어가 가까이 있을수록 오디오가 더 크게 재생됩니다.
다음으로는, 오디오 시작 및 중지 로직을 추가하기 위해 이 블루프린트의 그래프를 변경해 보겠습니다. 화염 함정은 이미 활성화 및 비활성화 로직이 존재하므로, 관련 노드를 추가하여 해당 로직을 확장합니다.
함정이 비활성화될 때 오디오를 중지하는 기능을 추가하려면 다음 단계를 따릅니다.
BP_TrapFire 블루프린트 에디터에서 이벤트 그래프(Event Graph) 탭으로 이동합니다.
빨간색 fnBPISwitchOn 노드를 찾은 다음 해당 시퀀스의 마지막 노드로 이동합니다. CTRL + F를 사용하여 노드를 검색할 수 있습니다.
Set Material 노드 뒤에 오디오 컴포넌트를 그래프로 드래그합니다. 이렇게 하면 Audio 노드가 생성됩니다.
Audio 노드의 핀에서 드래그하여 Stop 노드(오디오 카테고리 아래)를 추가합니다.
Audio 노드의 실행 입력을 드래그하여 Set Material 노드의 실행 핀에 연결합니다. 이렇게 하면 오디오 컴포넌트가 재생 중인 사운드가 중지됩니다.
이 노드 시퀀스 아래에는 Event fnBPIButtonOff 노드로 시작하는 또 다른 시퀀스가 있습니다.
함정이 활성화될 때 오디오를 재생하려면 다음 단계를 따릅니다.
빨간색 Event fnBPISwitchOff 노드를 찾은 다음 해당 시퀀스의 마지막 노드로 이동합니다.
Set Material 노드의 실행 핀에서 드래그하고 '노드 액션(Node Actions)' 목록에서 play audio를 검색하여 Play (Audio) 노드를 추가합니다. 오디오 컴포넌트가 자동으로 타깃(Target)으로 추가됩니다.
블루프린트를 컴파일하고 저장합니다.
이제 화염 함정 블루프린트가 활성화 시 사운드 이펙트를 재생하도록 수정되었습니다. 최종 블루프린트 그래프는 다음과 같은 모습이 됩니다.
이제 BP_TrapFire 블루프린트 에디터를 닫아도 됩니다.
레벨 뷰포트에서 화염 함정을 선택하면, 액터 주변에 두 개의 스피어 와이어프레임이 표시됩니다. 내부 스피어는 사운드의 내부 반경을 나타내고, 외부 스피어는 사운드의 감쇠 거리를 나타냅니다.
이제 게임을 실행하면 화염 함정이 활성화될 때 사운드 이펙트를 들을 수 있습니다.
다음 순서
다음으로는, 오디오 작업을 이어가며 언리얼 엔진의 메타사운드 시스템을 사용하여 레벨에 절차적으로 배경 음악을 생성하는 방법을 배워 보겠습니다.