목차

Wwise Reflect

(아래 “Wwise Reflect 속성”을(를) 참조하세요.)

Wwise Reflect 플러그인 효과는 전문적인 초기 반사음을 시뮬레이션하기 위해 다중 탭(tap) 시간 가변성 지연선(delay line)을 필터로 구현합니다.

음향의 지오메트리 모델링을 고려할 때 공간화된 초기 반사음은 대부분 '허음원(image source) 기술'을 사용하여 계산됩니다. 이 접근 방법을 사용하면 소리가 반사되는 기하학이 마치 거울인 것처럼 초기 반사음을 이미지원으로 나타낼 수 있습니다. 아래의 그림에 이 방법이 묘사되어 있습니다.

그림에서 방사체(emitter) E와 청자(listener) L은 같은 지오메트리(공간)에 존재하며 상자로 둘러싸여 있습니다(검은색 굵은 선). 방사체에서 청자까지의 반사 경로는 초록색으로 그려져 있습니다 (굵은 선). 허음원 기술은 각 표면에 대한 방사체의 '허상(image)'을 생성합니다. 허음원은, 표면과 수직 관계이면서 방사체에서 직교하는 선 위에 있으며 각각 표면에서 방사체와의 거리만큼 떨어져 있습니다. 소리가 이동하는 총 거리는 허음원과 청자 간의 거리와 같습니다. 허음원의 배치는 전적으로 방사체의 위치와 지오메트리에 달려 있으며 청자의 위치와는 별로 상관이 없다는 점 기억하세요.

게임은 허음원의 목록을 주어진 플러그인 인스턴스에 입력합니다. 탭이 지연선에 추가되고, 각 허음원은 나아가 상대적 3D 위치, 거리 기반 곡선, 그리고 연관된 “Acoustic Textures”에 따라 필터링, 패닝, 크기 조정됩니다.

Wwise Reflect는 보통 Auxiliary Bus에 사용되어 초기 반사음을 표현하며, 이 버스로 소리를 보내는 게임 오브젝트가 연결되어 있으면 초기 반사음을 정확하게 시뮬레이션 해줍니다.

Wwise 프로젝트에서 Wwise Reflect 설정하기

  • 초기 반사에 Auxiliary Bus 추가하기

    • Auxiliary Bus Property Editor의 General Settings 탭에서 채널 구성을 1.0(Mono)으로 변경하세요. Reflect에 다채널 입력 사운드를 사용할 수도 있지만 이 경우 Reflect가 먼저 이 사운드를 모노로 다운믹스하게 됩니다. 그렇기 때문에 버스를 모노로 설정하면 Wwise가 보이스의 공간화를 이 Auxiliary Bus로 불필요하게 계산해 넣을 필요가 없기 때문에 더욱 효율적입니다.

      [참고] 참고

      버스를 모노로 설정하더라도 Reflect의 출력에 영향을 끼치지 않습니다 (모노로 변경되지 않습니다). 초기 반사음이 공간화되는 Reflect의 출력 구성은 Reflect의 Effect Settings에서 설정됩니다.

    • Effects 탭에서 Wwise Reflect의 인스턴스를 추가하세요

    • Positioning 탭에서 Listener Relative Routing 옵션을 선택하세요. 하지만 3D Spatialization은 None으로 유지하세요. 그렇지 않으면 Wwise가 Wwise Reflect에 의해 생성되고 공간화된 허음원을 더욱 더 변형(패닝 및 감쇠) 시키고 맙니다.

      [참고] 참고

      이 버스에는 감쇠를 설정하지 않아야 합니다. 감쇠는 Reflect Effect Editor에서 맞춤화할 수 있습니다.

  • 반사할 사운드를 점검하세요.

    • Sound Property Editor의 General Settings 탭에서 Use game-defined auxiliary sends 옵션을 선택하세요.

    • 보통 3D로 공간화되는 사운드는 감쇠를 사용합니다. Sound Property Editor의 Positioning 탭에서 Listener Relative Routing 옵션을 선택하고 3D Spatialization을 Position + Orientation으로 설정하세요. Attenuation 그룹 상자에 감쇠를 추가하세요.

  • Reflect Effect Editor에서 효과를 설정하세요.

    • Output Config 속성을 변경해서 출력 채널을 원하는 채널 구성으로 설정하세요. Parent Bus는 Auxiliary Bus의 상위 버스의 출력 채널 구성을 표시합니다.

    • Max Distance의 숫자가 허음원(image source)을 보기에 충분히 크도록 설정하세요.

  • 사운드뱅크를 생성하세요.

  • Reflect의 라이선스가 있는지 확인하세요.

Spatial Audio와 함께 Wwise Reflect 설정하기

“Wwise 프로젝트에서 Wwise Reflect 설정하기” 후에 게임 측에서도 Wwise Reflect를 설정해야 합니다. 이 작업은 Spatial Audio API를 사용하여 실행할 수 있습니다.

  • AK/Plugin/AkReflectFXFactory.h를 포함하여 Reflect가 등록되었는지 확인하세요.

  • ReflectSpatial Audio 헤더 파일인 AK/SpatialAudio/Common/AkSpatialAudio.h를 포함시키세요.

  • 청자(listener)와 방사체(emitter)를 등록하세요

    // 청자(listener)를 등록합니다.
    static const AkGameObjectID LISTENER_ID = 10000;
    AK::SoundEngine::RegisterGameObj( LISTENER_ID, "Listener" );
    AK::SpatialAudio::RegisterListener( LISTENER_ID );
    
    // 방사체(emitter)를 등록합니다.
    static const AkGameObjectID LISTENER_ID = 100;
    AK::SoundEngine::RegisterGameObj( EMITTER_ID, "Emitter" );
    
    AkEmitterSettings emitterSettings = AkEmitterSettings();
    // ER은 Reflect 효과를 사용하는 Auxiliary Bus의 이름입니다.
    emitterSettings.reflectAuxBusID = AK::SoundEngine::GetIDFromString( "ER" );
    // 이 부분은 청자와 방사체 간에 청자가 방사체로부터 반사를 수신할 수 있는 최대 거리를 표시합니다.
    emitterSettings.reflectionMaxPathLength = 500.f;
    
    AK::SpatialAudio::RegisterEmitter( EMITTER_ID, emitterSettings );
    
    // 방사체를 청자와 연결합니다
    static const AkGameObjectID aLstnrsForEmitter = LISTENER_ID;
    AK::SoundEngine::SetListeners( EMITTER_ID, &aLstnrsForEmitter, 1 );
  • Reflect 지오메트리 표면을 구성할 지오메트리를 정의하고 설정하세요.

    AkGeometryParams를 생성하고 지오메트리의 삼각형, 꼭지점, 표면으로 채워넣으세요.

    static const AkGeometrySetID GEOMETRY_ID = 200;
    AkGeometryParams geometryParam;
    
    // geometryParam 안에 삼각형, 꼭지점, 표면을 채워넣습니다.
    // SIntegration Demo에서 예시를 봐주세요.
    // ...
    
    AK::SpatialAudio::SetGeometry( GEOMETRY_ID, geometryParams );
  • 방사체가 이동하면서 방사체의 위치를 업데이트합니다. (SoundEngine::SetPosition로의 호출을 SpatialAudio::SetPosition으로 교체하세요)

    AK::SpatialAudio::SetPosition( EMITTER_ID, soundPos );

Spatial Audio 없이 Wwise Reflect 설정하기

“Wwise 프로젝트에서 Wwise Reflect 설정하기” 후에 게임 측에서도 Wwise Reflect를 설정해야 합니다.

  • AK/Plugin/AkReflectFXFactory.h를 포함하여 Reflect가 등록되었는지 확인하세요.

  • Reflect 헤더 파일인 AK/Plugin/AkReflectGameData.h를 포함시키세요.

  • 또한 실행 파일의 입력 라이브러리에 AkReflectFX.lib를 추가해야 할 수도 있습니다.

  • Reflect API를 사용해서 허음원(image source)을 생성하고 사운드가 반사되고자 하는 곳에 배치하세요.

    // AkReflectGameData 오브젝트를 생성합니다.
    AkReflectGameData * reflectGameData = nullptr;
    reflectGameData = (AkReflectGameData *)_alloca(AkReflectGameData::GetSize(1));
    // 데이터를 채워넣습니다.
    reflectGameData->listenerID = LISTENER_ID;
    reflectGameData->uNumImageSources = 1;
    reflectGameData->arSources[0].uID = 123;
    reflectGameData->arSources[0].params.sourcePosition = { 200, 0, 0 };
    // 다음 내용은 청자와 허음원 간의 거리 계수를 표시합니다.
    // 음원 위치가 반사적 표면과 상응할 경우 이 숫자가 2여야 합니다.
    reflectGameData->arSources[0].params.fDistanceScalingFactor = 1.f;
    reflectGameData->arSources[0].params.fLevel = 1.f;
    // 필요한 경우 여기에서 허음원을 Acoustic Texture와 연결합니다.
    reflectGameData->arSources[0].texture.uNumTexture = 0;
    reflectGameData->arSources[0].name.SetName("Img src 1");
    
    // Reflect에 전송합니다.
    AK::SoundEngine::SendPluginCustomGameData(AK::SoundEngine::GetIDFromString("ER"), EMITTER_ID, AkPluginTypeEffect, AKCOMPANYID_AUDIOKINETIC, 171, reflectGameData, AkReflectGameData::GetSize(1));
  • 허음원의 위치를 업데이트해야 할 경우 새로운 AkReflectGameData를 전송하세요.

Acoustic Textures

각 허음원에 최대 4 Acoustic Texture를 보낼 수 있습니다. “Acoustic Texture Editor”에서 정의된 Acoustic Texture는 물질 속성을 표시합니다. 플러그인을 실행할 때 각 텍스처의 흡수 대역 네 개 (Low, Mid Low, Mid High, High)는 네 개의 주파수 대역 감쇠(attenuation)로 변환됩니다.

두 개 이상의 Acoustic Texture가 적용된 경우 신호가 연속적으로 필터링된 것처럼 대역 흡수 계수가 합쳐집니다. 이로 인해 여러 표면과 부딪칠 때 일어나는 반사를 효과적으로 시뮬레이션 할 수 있습니다.

Wwise Reflect의 Frequency Absorption 대역 기본 매핑

  • Low: < 250 Hz

  • Mid Low: > 250 Hz and < 1,000 Hz

  • Mid High: > 1,000 Hz and < 4,000 Hz

  • High: > 4,000 Hz

[작은 정보] Reflect의 Frequency Absorption 대역의 기본값을 변경할 수 있습니다.

Frequency Absorption의 기본 Reflect 값은 변경될 수 있지만 아주 특별한 상황에서만 사용해야 합니다. 기본값을 변경하려면 BaseTextureFrequencyDefault Value를 변경하여 %Wwise%\Authoring\x64\Release\bin\plugins\AkReflect.xml 파일을 직접 편집하세요. 이렇게 하면 새로운 기본 Low 대역이 정의되며 그 외 다른 대역은 2 옥타브만큼 잇따라 증가합니다.

Wwise Reflect를 사용한 3인칭 소리의 반사 시뮬레이션

Wwise Reflect를 3인칭 소리에 사용하려면 플러그인이 이 방사체에 연결된 버스의 인스턴스에서 실행되어야 합니다. 더 자세한 정보는 3D Bus AK::SoundEngine::SetGameObjectAuxSendValues()를 참조하세요. 이에 맞춰 버스 인스턴스를 설정하기 위해 AK::SpatialAudio를 사용할 수도 있습니다.

Wwise Reflect 설정 바꾸기

Reflect는 반사음을 조정할 수 있는 간단한 매개 변수를 제공합니다.

반사음은 다운 믹스된 입력 신호의 패닝, 필터링, 지연된 버전입니다. 지연 시간은 게임에서 주어진 허음원의 거리와 Reflect의 Speed of Sound의 영향을 받습니다. 필터링과 볼륨 조정은 다양한 곡선으로 평가된 허음원(image source)의 거리와 회절 계수에 따라 다릅니다. 또한 필터링은 허음원의 Acoustic Texture에도 영향을 받습니다.

[작은 정보] 작은 정보

거리 감쇠 곡선은 공기 흡수와 에너지 디케이를 시뮬레이션합니다.

회절 작업하기

허음원에 회절 계수를 설정할 수 있습니다. 정반사의 경우 보통 값이 0이지만 청자에게 도달하기 위해 반사면의 가장 자리를 굽혀야 할 경우 0이 아니게 됩니다. 이러한 반사는 보통 진폭이 낮으며 필터링되빈다. Wwise Reflect는 회절 계수에 맞게 이러한 매개 변수를 조정할 수 있는 곡선을 제공합니다. 회절에 대한 더 많은 정보, 초기 반사와 상호 작용하는 법, AK::SpatialAudio에 의해 시뮬레이션하는 법은 공간 음향 개념 - 회절초기 반사음의 기하학적 회절을 봐주세요. AK::SpatialAudio에서의 Geometric Diffraction은 현재 실험 중인 기능입니다.

Wwise Reflect 속성

인터페이스 요소

설명

Inclusion

해당 요소가 포함될지 포함되지 않을지를 정합니다. 이 옵션이 선택되었을 경우 해당 요소는 포함됩니다. 이 옵션이 선택되지 않았을 경우 해당 요소는 포함되지 않습니다. 이 옵션은 기본적으로 모든 플랫폼에 적용됩니다. 이를 결정하거나 특정 플랫폼에 대해 맞춤화된 사항들을 설정하기 위해서는 (체크 박스의 왼쪽편에 위치한) Link indicator 를 사용해 주세요.

이 옵션이 선택되지 않은 경우 Property Editor(속성 편집기) 내 속성 밎 작동 방식 옵션은 사용이 불가합니다.

Default value: true

이름

Effect instance의 이름을 말합니다.

Effect 인스턴스는 효과 속성 설정의 묶음입니다. 인스턴스에는 두 가지 다른 유형이 있습니다. 바로 맞춤(custom) 인스턴스와 ShareSets입니다. 맞춤 인스턴스는 단 하나의 오브젝트에서만 사용할 수 있는 데에 반해, ShareSets는 여러 오브젝트들이 공유하여 사용할 수 있습니다.

Effect

효과의 유형을 말합니다.

Shared by (Used by)

선택된 ShareSet를 현재 공유(사용)하고 있는 오브젝트의 목록을 말합니다.

Effect의 맞춤 인스턴스를 편집할 때엔 'Used by'로 표시됩니다.

검색창을 열어 표준 영숫자 입력을 통해 해당 뷰에서 맞지 않는 요소를 걸러냅니다. 더 자세한 설명을 위해서는 “표 사용하기”을(를) 참조해 주세요.

검색 아이콘의 왼쪽에 위치한 Close 아이콘을 클릭하여 검색란을 닫고 필터를 제거하세요.

[참고] 참고

검색할 때에 “List View”, “Query Editor”, “MIDI Keymap Editor ”, 및 “Reference View”의 축소된 노드 안의 요소는 포함하지 않습니다.

Effect 속성 설정을 기본 값으로 되돌립니다.

이 옵션은 Effect의 맞춤 인스턴스를 편집할 경우에만 사용 가능합니다.

Notes

Effect에 대한 추가 정보를 메모하는 란입니다.

General

Speed Of Sound

초 당 단위를 나타냅니다. 단위는 게임에 의해 사용되는 거리 단위와 상응하며 Reflect로 보내집니다. 공기 내 소리의 속도는 ~340 m/s입니다. 만약 게임 단위가 센티미터일 경우 대략 34,000(cm)/s의 값을 사용해야 합니다.

Default value: 345
Range: 0.001 to 2147483648

Distance Smoothing

지연선으로 전송된 반사 광선 거리에 적용된 스무딩 필터를 말합니다. 스무딩이 더 많이 적용될수록 반사 시간이 더 느리게 업데이트되지만 이동으로 인해 일어나는 Doppler 피치 변화가 제한됩니다. 이 값은 0과 1 사이로 정규화됩니다.

Smoothing Type

시간에 따른 스무딩 필터 반응의 모양을 정의합니다. IIR과 FIR의 곡선 아이콘은 광선 거리가 갑자기 변경될 경우 필터의 모양이 어떻게 변할지를 표시합니다.

Threshold Mode

Continous 모드는 움직임으로 인한 최대 허용 Doppler 피치 변화를 허용합니다. 움직임이 한계점을 초과할 만큼 빠를 경우 반사음의 볼륨은 피치가 한계점 아래로 돌아올 때까지 덕킹됩니다. 한계점이 0이면 이동이 일어날 때마다 반사음의 볼륨이 덕킹되게 됩니다.

Step 모드는 최소량의 이동이 일어날 때까지 반사음을 업데이트하지 않는 거리 한계점 '버블'을 허용합니다. 한계점이 0이면 움직임이 일어날 때마다 Reflection이 이전의 반사음과 새로운 반사음 사이로 크로스페이드하게 됩니다. 크로스페이드는 피치를 변경하지 않는 지속 시간 변경 효과를 초래합니다.

Pitch Threshold

Continuous Threshold Mode일 경우 반사음의 볼륨을 덕킹하기 전에 최대 허용 Doppler 피치 변화 (센트 단위로)를 설정합니다. 이 값이 0일 경우 움직임이 일어날 때 반사음의 볼륨이 덕킹됩니다.

Distance Threshold

Step Threshold Mode일 경우 반사음 지연 시간을 업데이트하는 데에 필요한 광선 거리의 최소 변경 (게임에서 쓰는 단위로)을 설정합니다. 이 값이 0이면 움직임이 일어날 때 반사음이 크로스페이드됩니다.

Center %

3D 위치 지정에 사용되는 Center %를 나타냅니다. Wwise가 3D 위치 지정에서 Center%를 다루는 법에 대한 자세한 정보는 Positioning Tab(공간이동 탭): Audio Auxiliary Busses(오디오 및 보조 버스) 를 참조하세요.

Default value: 100
Range: 0 to 100

Output Level

변조(set) 신호 의 볼륨 레벨 (dB)을 나타냅니다.

Default value: 0
Range: -96 to 24

Monitoring List

Filter

게임 오브젝트의 Name 또는 ID와 일치하는 전체 또는 부분 내용을 입력하세요. 그래프의 Monitoring List 표와 곡선 커서는 일치하는 허음원만 나타냅니다.

Filter 란의 내용을 지우면 아래의 열과 연관된 그래프 곡선에 Wwise Reflect가 적용되는 모든 허음원을 표시합니다.

허음원의 Mute와 Solo 상태를 조절하고 허음원의 암시적 뮤트와 솔로 상태를 보여줍니다.

허음원을 뮤트하면 현재 모니터링 세션에서 허음원을 무음(silence)화합니다. 허음원을 솔로화하면 Wwise Reflect의 현재 인스턴스 내 모든 다른 허음원을 무음화합니다.

굵은 글씨로 표기된 M 또는 S는 Mute 또는 Solo 상태가 해당 허음원에 명시적으로 설정되었다는 것을 의미합니다. 희미한 색깔의 일반 글씨로 표기된 M 또는 S는 해당 허음원의 Mute 또는 Solo 상태가 다른 허음원의 상태로 인해 암시적으로 설정되었음을 의미합니다.

[참고] 참고

Mute와 Solo는 모니터링을 목적으로 사용하도록 설계되었으며 프로젝트에서 계속 유지하거나 SoundBank에 저장하기 위한 목적으로 설계되지 않았습니다.

Image Source ID

허음원과 연관된 식별 숫자를 나타냅니다. 이 숫자는 게임에 의해 할당된 고유한 숫자입니다.

Image Source Name

허음원의 이름을 표시합니다.

Game Object ID

게임 오브젝트에 할당된 식별 숫자를 말합니다. 이 숫자는 게임에 의해 할당된 고유한 숫자입니다.

Game Object Name

게임 오브젝트의 이름을 말합니다.

Textures

소리가 반사되는 Acoustic Texture의 이름(또는 이름을 찾을 수 없을 경우 ID)를 나타냅니다.

[참고] 참고

이차 반사음의 경우 두 개 이상의 텍스처가 나열됩니다.

Distance

이미지원과 청자간의 거리를 게임 단위로 나타냅니다.

Smoothed Distance

스무딩 필터가 적용된 후 거리의 현재 값을 말합니다.

Current Pitch

Continuous Threshold Mode에서 반사 거리를 변경함으로써 일어나는 현재 Doppler 피치 변화 (센트 단위)를 말합니다.

Displacement

Step Threshold Mode일 경우 아직 적용되지 않은 현재 반사음의 길이로부터 누적된 이동량을 말합니다. 거리 한계점을 초과할 경우 0으로 초기화됩니다.

(Image Source Graph View)

Distance (X축)과 허음원 속성값 (Y축) 간의 연관 관계를 그래픽으로 나타냅니다.

여러 개의 곡선을 동시에 그래프에 표시할 수 있습니다.

Cursor Name Category

다음은 그래프 보기 내에서 나타내거나 숨길 수 있는 매개 변수 깃발의 목록입니다.

  • No Flag
  • Image Source ID
  • Image Source Name
  • Game Object ID
  • Game Object Name
  • Texture(s)

Default value: No Flag

X

선택된 기준점의 X축상 좌표를 말합니다. X 값은 선택한 Distance의 값을 의미합니다.

만약 두 개 이상의 기준점이 선택되었을 경우 값이 0으로 표시되는데, 이 때 선택된 모든 기준점의 현재 값을 기준으로 값을 늘리거나 줄일 수 있습니다. 예를 들어 두 개의 기준점을 선택한 후 X 슬라이더를 -5만큼 움직이면 두 기준점 모두 왼쪽으로 5 단위 이동하게 됩니다.

Y

선택된 기준점의 Y축상 좌표를 말합니다. Y 값은 속성값 (데시벨 단위 Distance Attenuation, 백분율 단위 Distacnce Spread, 헤르츠 단위 Low/High-Pass Filter)을 표현합니다.

만약 두 개 이상의 기준점이 선택되었을 경우 값이 0으로 표시되는데, 이 때 선택된 모든 기준점의 현재 값을 기준으로 값을 늘리거나 줄일 수 있습니다. 예를 들어 두 개의 기준점을 선택한 후 Y 텍스트 상자에 5를 입력하면 두 기준점 모두 위로 5 단위를 이동하게 됩니다.

그래프의 중심을 향해 확대합니다.

그래프를 기본 확대율인 1:1로 재설정합니다.

그래프의 중심을 기준으로 축소합니다.

Max Distance

곡선의 최대 거리를 게임 단위로 나타냅니다.

Default value: 1000
Range: 1 to 2147483648

(Pin/Unpin)

Pin 아이콘이 선택되면 해당 속성 곡선이 지금 선택되지 않았어도 해당 속성 곡선의 외곽선이 그래프에 유지됩니다.

색깔

여러 가지 그래프 곡선을 구별하는 데에 쓰는 색깔 블록 일러두기를 말합니다.

Property

아래 표시된 여덟 개의 Wwise Reflect 허음원 곡선 중 하나를 말합니다. 곡선을 선택하면 그래프에 표시되며 편집할 수 있습니다.

  • Distance Attenuation: 이미지원과 청자 사이의 거리에 따른 음량 감쇠를 말합니다.
  • Distance Attenuation (Emitter vs. Listener): 방사체와 청자의 거리에 따른 볼륨 감쇠를 말합니다.
  • Distance Spread: 허음원과 청자 간의 거리에 따른 Spread를 말하며 3D 위치 지정에 사용됩니다. Wwise가 3D 위치 지정에서 Spread를 다루는 법에 대한 자세한 정보는 Wwise 도움말 문서의 다음은 3D 위치 지정이 계산되는 방법입니다.을(를) 참조하세요.
  • Distance Low-Pass Filter: 이미지원과 청자 간의 거리에 따른 1차 로우 패스 필터를 말합니다.
  • Distance High-Pass Filter: 이미지원과 청자 사이의 거리에 따른 1차 하이 패스 필터를 말합니다.
  • Diffraction Attenuation: 반사의 회절 계수에 따른 볼륨 감쇠를 말합니다. 정반사와 회절 반사 사이에 매끄러운 보간을 보장하려면 0% 회절에서 값이 0dB가 되도록 설정하세요.
  • Diffraction Low-pass Filter: 이 허음원의 회절 계수에 따른 1차 저역 통과 필터를 말합니다. 정반사와 회절 반사 사이에 매끄러운 보간을 보장하려면 0% 회절에서 값이 가장 높도록 (필터링 없음) 설정하세요.
  • Diffraction High-pass Filter: 이 허음원의 회절 계수에 따른 1차 고역 통과 필터를 말합니다. 정반사와 회절 반사 사이에 매끄러운 보간을 보장하려면 0% 회절에서 값이 가장 낮도록 (필터링 없음) 설정하세요.