볼륨 프록시 퀵스타트

오디오 게임플레이 볼륨 프록시를 시작하기 위한 퀵스타트 가이드입니다.

볼륨 프록시(Volume Proxy) 컴포넌트 를 사용하면 기존 오디오 게임플레이 볼륨 오브젝트 없이도 오디오 게임플레이 볼륨(Audio Gameplay Volume) 시스템과 인터랙션할 수 있습니다.

이 가이드에서는 프리미티브조건 이라는 두 가지 프록시 타입을 모두 사용하여 다이내믹 볼륨을 생성하는 방법을 살펴봅니다.

전제 조건

  • 새로운 일인칭 템플릿 프로젝트를 생성합니다.

  • 편집(Edit) > 플러그인(Plugins) 을 선택하고, 검색창에서 플러그인을 찾은 후 해당 체크박스를 클릭하여 플러그인 패널에서 오디오 게임플레이 볼륨 플러그인을 활성화합니다.

1 - 앰비언트 볼륨 사운드 클래스 구성

오디오 게임플레이 볼륨을 지원하도록 프로젝트에서 새 사운드 클래스 를 생성하여 환경설정합니다.

  1. 새 사운드 클래스를 생성합니다.

    1. 콘텐츠 브라우저(Content Browser) 에서 추가(Add) 버튼을 클릭합니다.

    2. 오디오(Audio) > 클래스(Classes) > 사운드 클래스(Sound Class) 를 선택합니다.

    3. 새로 생성한 에셋의 이름을 AGV_SoundClass 와 같이 짓습니다.

  2. 해당 사운드 클래스를 더블클릭하여 사운드 클래스 에디터(Sound Class Editor) 를 엽니다.

  3. 디테일(Details) 패널에서 다음을 수행합니다.

    1. 라우팅(Routing) > 앰비언트 볼륨 적용(Apply Ambient Volumes) 을 활성화합니다.

    2. 서브믹스(Submix) > 디폴트 2D 리버브 전송량(Default 2DReverb Send Amount) 을 1.0으로 설정하고 저장합니다.

  4. 해당 사운드 클래스를 프로젝트 디폴트 값으로 설정합니다. 그러면 특정 사운드 클래스 오버라이드 없이 모든 사운드 소스에 할당됩니다.

    1. 상단 메뉴 바에서 편집 > 프로젝트 세팅(Project Settings) 을 클릭하여 프로젝트 세팅 을 엽니다.

    2. 검색창에 'Default Sound Class'를 입력합니다.

    3. 오디오 > 디폴트 사운드 클래스(Default Sound Class) 옆의 드롭다운을 클릭하고 새 사운드 클래스를 선택합니다.

2 - 리버브 컴포넌트를 사용하여 블루프린트 액터 생성

다음 단계에서 추가할 프록시 컴포넌트의 베이스로 리버브 컴포넌트를 사용하여 새 블루프린트 액터를 생성합니다.

모든 블루프린트 액터에 프록시 컴포넌트를 추가할 수 있습니다. 프록시 액터에 어태치된 오디오 게임플레이 볼륨 컴포넌트는 기존 오디오 게임플레이 볼륨 오브젝트에서와 동일하게 작동합니다.

  1. 오디오 게임플레이 볼륨 프록시에 대해 새 블루프린트 액터를 생성합니다.

    1. 콘텐츠 브라우저 에서 추가 버튼을 클릭합니다.

    2. 블루프린트 클래스(Blueprint Class) 를 선택합니다.

    3. 부모 클래스 선택(Pick Parent Class) 창에서 액터(Actor) 를 선택합니다.

    4. 새로 생성한 에셋의 이름을 AGV_Proxy 와 같이 짓습니다.

  2. 콘텐츠 브라우저 에서 프록시 블루프린트 클래스를 더블클릭하여 블루프린트 에디터(Blueprint Editor) 를 엽니다.

  3. 리버브 컴포넌트를 추가합니다.

    1. 컴포넌트(Components) 패널에서 추가 버튼을 클릭합니다.

    2. 검색창에 'Reverb'를 입력하고 Enter 키를 누릅니다.

  4. 새 리버브 컴포넌트를 선택합니다. 기본적으로 이름은 ReverbVolume 입니다.

  5. 디테일 패널에서 리버브 컴포넌트의 프로퍼티를 조정합니다.

    1. 리버브(Reverb) > 볼륨(Volume) 을 1.0으로 설정합니다.

    2. 리버브 > 페이드 시간(Fade Time) 을 0.0으로 설정합니다.

    3. 리버브 > 리버브 이펙트(Reverb Effect) 옆의 드롭다운을 클릭합니다. '새 에셋 생성(Create New Asset)' 아래에서 리버브 이펙트 를 선택합니다.

    4. 새 리버브 이펙트의 이름을 AGV_Reverb 와 같이 짓고 저장합니다.

  6. 리버브 이펙트를 수정합니다.

    1. 리버브 > 리버브 이펙트 옆에 있는 아이콘을 더블클릭하여 리버브 이펙트 에디터(Reverb Effect Editor) 를 엽니다.

    2. 지연 리플렉션(Late Reflections) > 게인(Gain) 을 1.0으로 설정하여 이펙트가 더 쉽게 들리게 합니다.

    3. 리버브 이펙트를 저장하고 리버브 이펙트 에디터를 닫습니다.

3 - 프리미티브 프록시 생성

프리미티브 프록시(Primitive Proxy) 는 액터에서 프리미티브 스태틱 메시 진입 및 나가기 이벤트를 트리거하기 위한 콜리전의 기초로 사용합니다.

3A - 프리미티브 프록시 컴포넌트 추가

베이스 볼륨 프록시 컴포넌트를 추가하고 타입을 '프리미티브(Primitive)'로 설정합니다.

  1. 볼륨 프록시 컴포넌트를 추가합니다.

    1. 컴포넌트 패널에서 추가 버튼을 클릭합니다.

    2. 검색창에 'Volume Proxy'를 입력하고 Enter 키를 누릅니다.

    3. 컴포넌트의 이름을 PrimitiveProxy 로 짓습니다.

  2. 프리미티브 프록시 컴포넌트를 선택합니다.

  3. 디테일 패널에서 오디오 게임플레이(Audio Gameplay) > 프록시(Proxy) 를 'AGV 프리미티브 프록시(AGV Primitive Proxy)'로 설정합니다.

3B - 스태틱 메시 컴포넌트 추가

스태틱 메시를 추가한 후 진입하고 나갈 수 있도록 콜리전을 환경설정합니다.

프리미티브 프록시는 현재 여러 스태틱 메시 컴포넌트가 포함된 액터를 지원하지 않습니다. 이러한 액터를 사용하는 경우 '출력 로그(Output Log)'에 경고가 표시됩니다.

  1. 모든 스태틱 메시 컴포넌트를 추가합니다.

    1. 컴포넌트 패널에서 추가 버튼을 클릭합니다.

    2. 검색창에 'Static Mesh'를 입력하고 목록에서 스피어와 같은 기본 셰이프 중 하나를 선택합니다.

  2. 스태틱 메시 컴포넌트를 선택합니다.

  3. 디테일 패널에서 콜리전 파라미터를 설정합니다.

    1. 콜리전(Collision) > 오버랩 이벤트 생성(Generate Overlap Events) 을 비활성화합니다.

    2. 콜리전 > Can Character Step Up On 을 '아니오(No)'로 설정합니다.

    3. 콜리전 > 프리셋(Presets) 을 '커스텀(Custom)'으로 설정합니다.

    4. 콜리전 > 콜리전 프리셋(Collision Presets) > 콜리전 응답(Collision Responses) 에서 오버랩(Overlap) 을 선택합니다. 그러면 모든 응답 타입에 대해 오버랩이 선택됩니다.

  4. 블루프린트를 저장합니다.

3C - 레벨에 프록시 액터 배치

  1. 콘텐츠 브라우저 에서 레벨 로 드래그하여 프록시 액터를 배치합니다.

  2. 캐릭터가 내부 및 외부로 이동할 수 있도록 트랜스폼 위젯을 사용하여 액터를 배치합니다.

3D - 레벨 블루프린트 빌드

Level Blueprint

'블루프린트 그래프(Blueprint Graph)'를 빌드하여 마우스 휠 입력으로 프록시 액터 스케일을 제어합니다.

  1. 레벨에서 프록시 액터를 선택합니다.

  2. 레벨 에디터(Level Editor) 툴바에서 블루프린트(Blueprint) 버튼을 클릭하고 레벨 블루프린트 열기(Open Level Blueprint) 를 선택합니다.

  3. 빈 공간을 우클릭하고 해당 프록시 액터에 대한 레퍼런스 생성(Create a Reference) 를 선택합니다.

  4. Actor Reference 노드의 출력 핀에서 드래그하여 Get Actor Scale 3D 노드를 생성합니다.

  5. Get Actor Scale 3D 노드의 반환 값(Return Value) 핀에서 드래그하여**AddSubtract** 노드를 생성합니다.

  6. AddSubtract 노드 모두에서 하단 입력의 X, Y 및 Z에 1.0을 입력합니다.

  7. Actor Reference 노드의 출력 핀에서 드래그하여 2개의 Set Actor Scale 3D 노드를 생성합니다.

  8. Add 노드의 출력을 Set Actor Scale 3D 노드 중 하나에 연결합니다.

  9. 동일한 Set Actor Scale 3D 노드에서 실행 입력(Exec Input) (>) 핀을 드래그하여 Mouse Wheel Up(Mouse Wheel Up) 노드를 생성합니다.

  10. Subtract 노드의 출력을 다른 Set Actor Scale 3D 노드에 연결합니다.

  11. 동일한 Set Actor Scale 3D 노드에서 실행 입력 (>) 핀을 드래그하여 Mouse Wheel Down 노드를 생성합니다.

3E - 레벨 테스트

레벨 에디터 툴바에서 플레이(Play) 버튼을 클릭하고 이동해서 소총을 집어 들고 왼쪽 클릭으로 발사합니다. 마우스 휠을 사용하여 프록시의 스케일을 조절할 수 있습니다.

오디오 게임플레이 볼륨 프록시 내부 및 외부로 이동하여 소총 발사 사운드에 어떻게 영향을 미치는지 확인합니다. 리버브 이펙트는 다이내믹하게 크기가 조절된 프록시 내에서 계속 적용됩니다.

4 - 조건 프록시 생성

조건 프록시(Condition Proxy)오디오 게임플레이 조건(Audio Gameplay Condition) 인터페이스를 통해 블루프린트에 지정된 조건을 기반으로 진입 및 나가기 이벤트를 트리거합니다.

4A - 조건 프록시 컴포넌트 및 인터페이스 추가

베이스 볼륨 프록시 컴포넌트를 추가하고 타입을 '조건(Condition)'으로 설정합니다.

  1. 콘텐츠 브라우저 에서 프록시 블루프린트 클래스를 더블클릭하여 블루프린트 에디터 를 엽니다.

  2. 볼륨 프록시 컴포넌트를 추가합니다.

    1. 컴포넌트 패널에서 추가 버튼을 클릭합니다.

    2. 검색창에 'Volume Proxy'를 입력하고 Enter 키를 누릅니다.

    3. 컴포넌트의 이름을 ConditionProxy 로 짓습니다.

  3. 조건 프록시 컴포넌트를 선택합니다.

  4. 디테일 패널에서 오디오 게임플레이 > 프록시 를 'AGV 조건 프록시(AGV Condition Proxy)'로 설정합니다.

4B - 오디오 게임플레이 조건 인터페이스 추가

블루프린트에서 조건을 빌드할 수 있도록 오디오 게임플레이 조건 인터페이스를 추가합니다. 그러면 조건 충족(Condition Met)조건 충족 위치(Condition Met Position) 라는 2개의 새 인터페이스가 추가됩니다.

  1. 블루프린트 에디터 툴바에서 클래스 세팅(Class Settings) 을 클릭합니다.

  2. 인터페이스(Interfaces) > 구현된 인터페이스(Implemented Interfaces) 에 대해 추가 드롭다운을 클릭합니다.

  3. 검색창에 'AudioGameplayCondition'을 입력하고 Enter 키를 누릅니다.

4C - 조건 충족 인터페이스 빌드

Condition Met Interface Graph

조건 충족 인터페이스는 부울 값을 가져오는 모든 조건을 구성하는 데 사용됩니다. 이를 통해 볼륨 내부 또는 외부를 정의하는 항목에 대한 커스텀 기준을 만들 수 있습니다.

조건 충족 인터페이스를 구동하기 위해 블루프린트에서 Shift 키 상태 검사를 생성합니다.

  1. 내 블루프린트(My Blueprint) 패널의 인터페이스 > 오디오 게임플레이 조건(Audio Gameplay Condition) 아래에서 조건 충족 인터페이스를 더블클릭합니다.

  2. Return 노드의 반환 값 입력 핀에서 드래그하여 Is Shift Down 노드를 생성합니다.

  3. Is Shift Down 노드의 키 상태(Keys State) 입력 핀에서 드래그하여 Get Modifier Keys State 노드를 생성합니다.

4D - 조건 충족 조건 인터페이스 빌드

Condition Met Position Interface Graph

조건 충족 위치 인터페이스는 조건 충족 인터페이스와 비슷하지만 커스텀 조건 내에서 사용하도록 리스너 위치에 액세스할 수 있습니다.

조건 충족 위치 인터페이스를 구동하기 위해 블루프린트에서 리스너 높이 검사를 생성합니다.

  1. 내 블루프린트 패널의 인터페이스 > 오디오 게임플레이 조건 아래에서 조건 충족 위치 인터페이스를 더블클릭합니다.

  2. Condition Met Position 노드의 위치(Position) 출력 핀에서 드래그하여 Break Vector 3f 노드를 생성합니다.

  3. Break Vector 3f 노드의 Z 출력 핀에서 드래그하여 Greater 노드를 생성합니다.

  4. Greater 노드에서 다음을 수행합니다.

    1. 하단 입력에 350.0을 입력합니다.

    2. 출력 핀을 Return 노드에 연결합니다.

  5. 블루프린트를 저장합니다.

4E - 레벨 테스트

레벨 에디터 툴바에서 플레이 버튼을 클릭하고 소총 발사 사운드를 테스트합니다. 프록시의 리버브 이펙트는 Shift를 누른 상태 또는 플랫폼 위에서 발사할 때 적용됩니다.

5 - 직접 해보기!

이제 기본 볼륨 프록시를 생성하는 작업이 완료되었으므로, 이를 더 확장할 수 있습니다. 다음은 사용자가 직접 탐색해볼 수 있는 몇 가지 제안 사항입니다.

  • 커스텀 트리거를 추가했지만 블루프린트에서 On Proxy EnterOn Proxy Exit 이벤트 노드를 사용하여 커스텀 응답을 추가할 수도 있습니다. 이를 생성하려면 이벤트에 대해 타깃 볼륨 프록시 컴포넌트를 선택하고 이벤트 그래프(Event Graph) 에서 빈 공간을 우클릭한 후 On Proxy 이벤트 노드를 추가합니다.

  • 기본적으로 카메라는 리스너로 간주되며, 진입 및 나가기 이벤트를 결정하는 데 사용됩니다. 삼인칭 카메라를 사용하는 경우에는 대신 리스너를 플레이어 캐릭터로 지정할 수 있습니다. 조건 프록시를 사용하여 삼인칭 템플릿 프로젝트에서 디폴트 볼륨 콜리전을 오버라이드해보세요.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소