버전

menu_open
Wwise Unreal Integration Documentation
Spatial Audio Blueprint 컴포넌트

이제까지 저희는 미리 제작된 액터를 사용하거나 각 액터 인스턴스에 컴포넌트를 추가함으로써 모든 내용을 레벨 안에서 직접 제작했습니다. 또한 다양한 공간 음향 컴포넌트를 사용하면 레벨 전체에 복제할 수 있는 Blueprint 액터를 구성할 수 있습니다. 이 섹션에서는 Blueprint 클래스를 사용하여 Unreal 프로젝트 준비 섹션에서 구성한 구조의 복제본을 제작해서 세계 안에 쉽게 추가하고 스폰할 수 있도록 해봅시다.

참고: 이 튜토리얼을 시작하기 전에 반드시 Spatial Audio 튜토리얼 준비 를 반드시 완료해야 합니다.

Blueprint 클래스 구성하기

AkLateReverbComponentAkRoomComponent 는 오염 시험을 통해 주어진 게임 오브젝트의 위치가 해당 상위 PrimitiveComponent 안에 있는지의 여부를 확인합니다. 이 시험에는 단순 충돌이 사용됩니다. 그렇기 때문에 단순 충돌이 있는 상위 PrimitiveComponent 를 사용해야 합니다. 예를 들어 상자 충돌, 구형 충돌, 캡슐 충돌 컴포넌트를 사용할 수 있습니다. PrimitiveComponent 에 단순 충돌이 었을 경우 오염 시험이 컴포넌트 경계선을 사용하는데, 이 경우 결과가 보다 덜 정확할 수 있습니다.

또한 Unreal에서 메쉬 에셋에 단순 충돌을 추가할 수도 있습니다 (스태틱 메시에 콜리전 구성(Setting Up Collision With Static Meshes 참조). 하지만 출입구와 열린 공간과 같은 복잡한 메쉬의 경우 경우에 따라 메쉬의 충돌 설정에서 'use complex collision as simple(복합 충돌을 단순 충돌로 사용)'을 사용해야 할 수도 있습니다 (단순 vs 복합 콜리전 (Simple Vs Complex Collision) 참조). 예를 들어 이 설정은 캐릭터가 출입구를 통해 공간 안으로 들어갈 수 있지만 여전히 벽과 충돌하도록 하기 위해 필요할 수 있습니다. 이 설정을 사용할 경우 단순 충돌이 무시되며 메쉬의 전체 트라이메쉬(trimesh)가 사용되기 때문에 AkLateReverbComponentAkRoomComponent 에 대한 오염 시험이 실패하게 됩니다. AkLateReverbComponentAkRoomComponent 에 의해 사용되는 단순 충돌은 트라이메쉬를 지원하지 않습니다. 따라서 Blueprint 클래스에서는 AkLateReverbComponent 컴포넌트와 and AkRoomComponent 를 사용할 경우 단순 충돌 컴포넌트를 상위 계층으로 사용하는 것을 권장합니다. 단순 충돌 컴포넌트의 예시는 상자, 구형, 캡슐이 있습니다. 공간이나 건물에 특정한 메쉬가 있을 경우 단순 충돌 컴포넌트를 해당 메쉬의 하위 컴포넌트로 추가할 수 있습니다.

  1. 콘텐츠 브라우저에서 우클릭하여 Blueprint Class를 선택하세요.
  2. Actor를 기반 베이스로 선택하고 새로운 클래스의 이름을 'SpatialAudioBP'로 지정하세요.
  3. SpatialAudioBP를 더블 클릭해서 클래스를 열고 Viewport 탭을 클릭하세요.
  4. 루트 컴포넌트가 선택되었는지 확인한 후 Add Component > Static Mesh를 클릭하세요.
  5. 새로운 고정 메쉬 컴포넌트를 클릭하고 Details 패널에서 해당 메쉬를 선택하세요.

    • 이 예시에서는 Unreal 프로젝트 준비 섹션에서 사용한 SpatialAudioDemoMesh를 선택했습니다.
    • SpatialAudioDemoMesh를 사용할 경우 Materials 섹션에서 SpatialAudioDemoMeshMaterial을 선택해야 합니다.
    고정 메쉬 컴포넌트에서 메쉬와 물질 설정하기
    참고: 포털으로의 자동 자동 지정은 볼록한 메쉬(convex mesh)에서만 작동합니다. 오목한 메쉬(concave mesh) (예: L- 모양 공간)은 정확한 포털 공간 교차를 만들어낼 수 없습니다.
  6. 메쉬의 각 공간 및 출입구에 상자 충돌 컴포넌트를 추가하세요.

    • 이 튜토리얼에서 상자 충돌 컴포넌트의 이름은 BoxRoomLarge, BoxRoomSmall, BoxPortalInner, BoxPortalOuter로 지정했습니다.
    메쉬의 공간과 포털에 상자 충돌 컴포넌트를 추가하세요

Repositioning 상자 충돌 컴포넌트

이제 모든 상자 충돌 컴포넌트가 동일한 위치에 서로 겹쳐 있습니다. 이 컴포넌트의 위치, 규모, 방향을 조정해서 공간과 출입구와 정렬되도록 해봅시다. Orthographic 뷰를 사용하면 가장 쉽게 작업할 수 있습니다. (다음 단계는 SpatialAudioDemoMesh에 특정하지만 다른 메쉬에서도 유사한 단계를 실행할 수 있습니다.)

참고: 이 튜토리얼에서 공간과 포털을 메쉬에 정렬할 때에는 완벽하게 정렬되거나 중심에 있지 않더라도 괜찮습니다. 올바른 영역을 대략 덮어주기만 하면 됩니다. 실제 환경을 설계할 떄에는 Details 패널의 Transform 섹션을 사용해서 정확한 값을 입력할 수 있습니다.
  1. Viewport 탭에서 Perspective를 클릭하고 뷰를 Top으로 변경하세요.

    • 이제 씬을 위에서 아래로 바라보게 되며 씬이 와이어 프레임으로 렌더링됩니다.
    직교 평면 뷰
  2. BoxRoomLarge를 선택하고 메쉬의 큰 공간의 중앙까지 y축을 따라 아래로 움직이세요.
  3. BoxRoomLarge의 크기가 큰 공간의 크기와 맞춰질 때까지 x와 y축을 따라 크기를 변경하세요. (R을 누르거나 Viewport 탭에서 Scale 위젯을 선택해서 크기 변경 모드로 전환할 수 있습니다).

    X와 Y축에서 큰 공간의 위치와 크기를 조정하세요
  4. BoxRoomSmall을 선택하고 작은 공간의 크기와 맞춰질 때까지 x와 y축을 따라 크기를 변경하세요.

    X와 Y축에서 공간 위치와 크기를 조정하세요
  5. BoxPortalInner 를 선택하고 메쉬에서 내부 출입구 범위가 보이 때까지 와이어 프레임에서 줌 인하세요.

    와이어 프레임 메쉬에서 출입구의 범위를 찾으세요
  6. BoxPortalInner를 출입구의 중앙으로 옮긴 후 출입구의 범위를 덮도록 x축을 따라 크기를 조정하세요.

    내부 포털 상자가 출입구를 덮도록 위치와 크기를 조정하세요
  7. BoxPortalOuter를 선택하고 해당 y 차원이 출입구를 가리키도록 회전시키세요.

    참고: 포털에는 포털의 y 차원을 따라 가장 가까운 교차 공간을 감지함으로써 자동 지정되는 앞 공간과 뒷 공간이 있기 때문에 이 작업을 반드시 해주어야 합니다. BoxPortalOuter의 경우 '뒤'(해당 좌표 공간에서)는 메쉬에서 작은 공간과 연결되며 '앞'은 어떤 공간으로도 연결되지 않습니다.
  8. z축을 중심으로 BoxPortalOuter를 90도 회전시키세요. Details 패널의 Transform 섹션에 있는 z축 Rotation 텍스트 상자에 '90'을 입력하면 됩니다.

    외부 포털 상자가 해당 문 밖에 있는 Y축을 가리키도록 회전시키세요
  9. BoxPortalOuter를 외부 출입구로 옮긴 후 출입구의 범위를 덮도록 크기를 조정하세요.
  10. 상면 뷰에서 모든 공간과 포털이 아래와 같이 메쉬와 정렬되었는지 확인하세요:

    상면 뷰에서 공간과 포털이 알맞게 정렬되었습니다
  11. 이제 z축에서 상자 충돌 컴포넌트의 위치와 크기를 조정해야 합니다. Viewport 탭에서 Top을 클릭하고 뷰를 Back으로 변경하세요.
  12. BoxRoomLargeBoxRoomSmall을 선택하고 공간의 크기와 맞춰질 때까지 z축을 따라 크기를 변경하세요.

    Z축에서 공간 상자 크기를 조정하세요
  13. BoxPortalOuterBoxPortalInner를 선택하고 출입구의 중앙에 오도록 아래로 옮긴 다음 문의 크기와 맞춰질 때까지 z축을 따라 크기를 조정하세요.

    Z축에서 포털 상자의 위치와 크기를 조정하세요

공간과 포털 설정하기

이제 AkRoom 컴포넌트를 공간에, AkPortal 컴포넌트를 포털에 추가해봅시다.

  1. 상자 충돌 컴포넌트를 하나씩 선택한 다음 Add Component를 선택하세요.
  2. 각 상자 충돌 컴포넌트에서 공간이나 포털 컴포넌트(알맞은대로)를 생성하고 상위 계층과 비슷한 이름으로 지정하세요. 결과가 다음과 같아야 합니다:

    AkRoom 컴포넌트를 공간 상자에 추가하고 AkPortal 컴포넌트를 포털 상자에 추가하세요
    참고:

    컴포넌트를 올바른 상위 계층으로 추가했는지 확인하세요. 예를 들어 AkRoomLarge를 큰 공간에 추가할 경우 Add Component를 클릭하기 전에 먼저 BoxRoomLarge가 선택되었는지 확인하세요.

    AkRoomComponent와 AkPortalComponent는 어떤 기본 컴포넌트로든 추가할 수 있는 일반 컴포넌트입니다. 더 많은 정보는 AkRoomComponentAkPortalComponent 를 참고해 주세요.

  3. 포털이 올바르게 배치되었는지 확인하기 위해 Integration Settings에서 Visualize Rooms and Portals 옵션을 선택하세요.

    Integration Settings에서 있는 Visualize Rooms and Portals 옵션
  4. 이제 연결된 공간과 포털 사이에 선이 그려집니다. 포털의 위치가 유효하지 않을 경우 빨간색으로 표시됩니다.

    포털 공간 연결을 뷰포트에서 시각적으로 확인할 수 있음
    참고: 포털에 연결된 공간이 없거나 동일한 공간이 양 면으로 연결되었을 경우 유효하지 않습니다. 더 많은 정보는 AkPortalComponent 를 참고해 주세요.
  5. Integration Settings에서 Visualize Rooms and Portals 옵션을 선택 해제하세요.

지오메트리와 후기 잔향 추가하기

Blueprint 클래스에 추가해야 할 마지막 두 가지 항목은 바로 AkGeometry와 AkLateReverb 컴포넌트입니다.

  1. AkGeometry 컴포넌트를 고정 메쉬 컴포넌트로 추가하세요.
  2. AkLateReverb 컴포넌트를 BoxRoomLarge 상자 충돌 컴포넌트로 추가하세요.

    AkGeometry와 AkLateReverb가 Blueprint 클래스로 추가됨
  3. AkLateReverb 컴포넌트를 클릭하세요.
  4. Details 패널에서 보조 버스를 LargeRoom으로 설정하세요.

셋업 검토하기

이제 Blueprint 클래스를 사용할 준비가 되었습니다. 클래스의 인스턴스를 세계 안으로 드래그하세요.

  1. 콘텐츠 브라우저에서 공간 음향 데모 맵으로 SpatialAudioBP의 인스턴스를 드래그하세요.
  2. 기존의 빌딩 안에 배치하세요.

    Blueprint 클래스의 인스턴스를 세계 안에 추가함
  3. Wwise로 원격 연결하고 에디터에서 재생을 시작하세요.
  4. 마우스를 클릭해서 외부 사운드를 재생하세요.
  5. Wwise의 Game Object Profiler 레이아웃에서 새로운 Blueprint 클래스의 지오메트리가 올바르게 등록되었으며 이 지오메트리에서 레이가 올바르게 반사되는지를 확인하세요.
  6. 새로운 Blueprint 구조에서 레이가 포털을 올바르게 통과하는지 확인하세요.

    공간 음향 경로가 새로운 Blueprint 클래스 인스턴스와 올바르게 상호작용함
  7. 후기 잔향 컴포넌트를 시험하기 위해서는 반드시 SpatialAudioBP 인스턴스 안에 있는 큰 공간 안에 사운드를 추가 및 배치해야 합니다. 세계 안에 있는 기존의 Play_Outside AkAmbientSound 액터를 우클릭하고 복제하세요.

    기존의 Play_Outside Sound를 복제하세요
  8. 복제한 액터의 이름을 'Play_LargeRoom_BP'로 변경하세요. (또한 Play_LargeRoom_BPButton_Outside 위로 드래그하면 Play_LargeRoom_BP를 World Outliner 계층 구조 안의 Button_Outside로부터 떼어낼 수 있습니다.)
  9. Play_LargeRoom_BP를 SpatilAudioBP 인스턴스 안에 있는 큰 공간 안으로 옮기세요.

    사운드를 큰 공간 안에 배치하세요
  10. Level Blueprint를 열고 B 키를 누르면 Play_LargeRoom_BP 사운드가 재생되도록 논리를 추가하세요 (Unreal 프로젝트 준비 3 단계 참고).

    Level Blueprint에서 B 키를 사용하여 새로운 사운드를 재생하는 논리
  11. Level Blueprint를 컴파일 및 저장하세요.
  12. 에디터에서 재생을 시작하세요.
  13. B를 눌러서 새로운 사운드를 재생하세요.
  14. SpatialAudioBP 빌딩 안에 있는 큰 공간 안으로 들어가세요.
    • 잔향이 적용되는 것이 들립니다.

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요