버전
(아래 “Wwise Reflect 속성”을(를) 참조하세요.)
Wwise Reflect 플러그인 효과는 전문적인 초기 반사음을 시뮬레이션하기 위해 다중 탭(tap) 시간 가변성 딜레이선(delay line)을 필터로 구현합니다.
음향의 지오메트리 모델링을 고려할 때 공간화된 초기 반사음은 대부분 '허음원(image source) 기술'을 사용하여 계산됩니다. 이 접근 방법을 사용하면 소리가 반사되는 지오메트리가 마치 거울인 것처럼 초기 반사음을 이미지원으로 나타낼 수 있습니다. 아래의 그림에 이 방법이 묘사되어 있습니다.
그림에서 이미터(emitter) E와 리스너(listener) L은 같은 지오메트리(공간)에 존재하며 상자로 둘러싸여 있습니다(검은색 굵은 선). 이미터에서 리스너까지의 반사 경로는 초록색으로 그려져 있습니다 (굵은 선). 허음원 기술은 각 표면에 대한 이미터의 '허상(image)'을 생성합니다. 허음원은, 표면과 수직 관계이면서 이미터에서 직교하는 선 위에 있으며 각각 표면에서 이미터와의 거리만큼 떨어져 있습니다. 소리가 이동하는 총 거리는 허음원과 리스너 간의 거리와 같습니다. 허음원의 배치는 전적으로 이미터의 위치와 지오메트리에 달려 있으며 리스너의 위치와는 별로 상관이 없다는 점 기억하세요.
게임은 허음원의 목록을 주어진 플러그인 인스턴스에 입력합니다. 탭이 딜레이선에 추가되고, 각 허음원은 나아가 상대적 3D 위치, 거리 기반 곡선, 그리고 연관된 “Acoustic Textures”에 따라 필터링, 패닝, 크기 조정됩니다.
Wwise Reflect는 보통 Auxiliary Bus에 사용되어 초기 반사음을 표현하며, 이 버스로 소리를 보내는 게임 오브젝트가 연결되어 있으면 초기 반사음을 정확하게 시뮬레이션 해줍니다.
초기 반사에 Auxiliary Bus 추가하기
Project Explorer에서 초기 반사 보조 버스를 생성하고자 하는 버스를 우클릭하세요.
New Child > Presets > Early Reflection Auxiliary Bus를 선택하세요.
새로운 보조 버스가 추가됩니다.
참고 | |
---|---|
이 프리셋은 Wwise Reflect가 설치되어 있고 Wwise Reflect Factory Preset이 프로젝트에 추가되어 있을 경우에만 제공됩니다. 그렇지 않을 경우 Project > Import Factory Assets... 메뉴를 통해 언제든지 추가할 수 있습니다. |
초기 반사 보조 버스는 다음 설정을 가진 표준 보조 버스입니다.
버스 구성은 1.0 (모노)입니다. Reflect에 다채널 입력 사운드를 사용할 수도 있지만 이 경우 Reflect가 먼저 이 사운드를 모노로 다운믹스하게 됩니다. 따라서 Wwise가 보이스의 공간화를 이 Auxiliary Bus로 불필요하게 공간화하지 않도록, 버스를 모노로 설정하는 것이 더 효율적입니다.
참고 | |
---|---|
버스를 모노로 설정하더라도 Reflect의 출력에 영향을 끼치지 않습니다 (모노로 변경되지 않습니다). 초기 반사가 공간화되는 출력 구성은 Reflect의 Effect Settings에 의해 결정됩니다. |
여기에는 Wwise Reflect의 인스턴스가 장착되어 있습니다.
Positioning 탭에서 Listener Relative Routing 옵션은 활성화되지만, 3D Spatialization은 None으로 유지됩니다. 그렇지 않으면 Wwise가 계속하여 Wwise Reflect에 의해 생성되고 공간화된 허음원(image source)을 변형 (패닝 및 감쇠)하게 됩니다.
참고 | |
---|---|
이 버스에는 감쇠가 적용되지 않아야 합니다. 감쇠는 Reflect Effect Editor에서 맞춤화할 수 있습니다. |
반사할 사운드를 점검하세요.
Wwise Reflect에 Wwise Spatial Audio Geometry API를 함께 사용할 경우 (선호하는 방법) Sound Property Editor의 General Settings 탭에서 새로 만든 버스를 Early Reflections의 Auxiliary Bus로 지정하세요. 선택적으로 센드 볼륨을 조정할 수도 있습니다.
Wwise Reflect에서 Wwise Spatial Audio raw SetImageSource API를 함께 사용하거나 후반 리버브을 위해 다른 보조 버스로 전송하고자 할 경우, 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의 라이선스가 있는지 확인하세요.
“Wwise 프로젝트에서 Wwise Reflect 설정하기” 후에 게임 측에서도 Wwise Reflect를 설정해야 합니다. 이 작업은 Spatial Audio API를 사용하여 실행할 수 있습니다.
AK/Plugin/AkReflectFXFactory.h
를 포함하여 Reflect가 등록되었는지 확인하세요.
ReflectSpatial Audio 헤더 파일인 AK/SpatialAudio/Common/AkSpatialAudio.h
를 포함시키세요.
Spatial Audio 모듈을 초기화하고 공간 음향 리스너를 등록하세요.
// Wwise Spatial Audio를 초기화합니다. AkSpatialAudioInitSettings settings; res = AK::SpatialAudio::Init(settings); // 리스너 게임 오브젝트가 이미 등록되지 않은 경우 리스너 게임 오브젝트를 등록합니다. 그런 다음 이 오브젝트를 유일한 공간 음향 리스너로 등록합니다. static const AkGameObjectID LISTENER_ID = 10000; AK::SoundEngine::RegisterGameObj( LISTENER_ID, "Listener" ); AK::SpatialAudio::RegisterListener( LISTENER_ID );
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 );
“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
를 전송하세요.
각 허음원에 최대 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 값은 변경될 수 있지만 아주 특별한 상황에서만 사용해야 합니다. 기본값을 변경하려면 |
Wwise Reflect를 3인칭 소리에 사용하려면 플러그인이 이 이미터에 연결된 버스의 인스턴스에서 실행되어야 합니다. 더 자세한 정보는 3D Bus와 AK::SoundEngine::SetGameObjectAuxSendValues()
를 참조하세요. 이에 맞춰 버스 인스턴스를 설정하기 위해 AK::SpatialAudio
를 사용할 수도 있습니다.
Reflect는 반사음을 조정할 수 있는 간단한 매개 변수를 제공합니다.
반사음은 다운믹스된 입력 신호의 패닝, 필터링, 딜레이된 버전입니다. 딜레이 시간은 게임에서 주어진 허음원의 거리와 Reflect의 Speed of Sound의 영향을 받습니다. 필터링과 볼륨 조정은 다양한 곡선으로 평가된 허음원(image source)의 거리와 회절 계수에 따라 다릅니다. 또한 필터링은 허음원의 Acoustic Texture에도 영향을 받습니다.
팁 | |
---|---|
거리 감쇠 곡선은 공기 흡수와 에너지 디케이를 시뮬레이션합니다. |
허음원에 회절 계수를 설정할 수 있습니다. 정반사의 경우 보통 값이 0이지만 리스너에게 도달하기 위해 반사면의 가장 자리를 굽혀야 할 경우 0이 아니게 됩니다. 이러한 반사는 보통 진폭이 낮으며 필터링되빈다. Wwise Reflect는 회절 계수에 맞게 이러한 매개 변수를 조정할 수 있는 곡선을 제공합니다. 회절에 대한 더 많은 정보, 초기 반사와 상호 작용하는 법, AK::SpatialAudio
에 의해 시뮬레이션하는 법은 공간 음향 개념 - 회절과 초기 반사음의 기하학적 회절을 봐주세요.
인터페이스 요소 |
설명 |
|||
---|---|---|---|---|
Name |
Effect instance의 이름을 말합니다. Effect 인스턴스는 효과 속성 설정의 묶음입니다. 인스턴스에는 두 가지 다른 유형이 있습니다. 바로 맞춤(custom) 인스턴스와 ShareSets입니다. 맞춤 인스턴스는 단 하나의 오브젝트에서만 사용할 수 있는 데에 반해, ShareSets는 여러 오브젝트들이 공유하여 사용할 수 있습니다. |
|||
오브젝트의 색깔을 표시합니다. 아이콘을 클릭하면 색깔 선택 버튼이 열립니다. 오브젝트에 적용되는 색깔을 선택합니다.
|
||||
Inclusion |
해당 요소가 포함될지 포함되지 않을지를 정합니다. 이 옵션이 선택되었을 경우 해당 요소는 포함됩니다. 이 옵션이 선택되지 않았을 경우 해당 요소는 포함되지 않습니다. 이 옵션은 기본적으로 모든 플랫폼에 적용됩니다. 이를 결정하거나 특정 플랫폼에 대해 맞춤화된 사항들을 설정하기 위해서는 (체크 박스의 왼쪽에 위치한) Link indicator 를 사용해 주세요. 이 옵션을 선택하지 않으면 에디터에서 속성과 작동 방식 옵션을 사용할 수 없게 됩니다. Default value: true |
|||
프로젝트에서 해당 오브젝트로의 직접 참조를 담고 있는 구성 요소의 개수를 표시합니다. 이 아이콘은 오브젝트로의 참조가 존재할 경우 주황색으로 표시되며, 참조가 없을 경우 회색으로 표시됩니다. 버튼을 선택하면 “Reference View”가 열리며 오브젝트의 이름이 References to: 입력란에 표시됩니다.<부분 13589 ¶> |
||||
Notes |
Effect에 대한 추가 정보를 메모하는 란입니다. |
|||
Metering |
현재 미터가 측정되는 오브젝트의 이름을 표시합니다. |
|||
미터를 측정할 다른 오브젝트를 탐색할 수 있게 해줍니다.
|
||||
Effect Editor에서 선택한 탭의 표시 방법을 설정합니다. 기본적으로 하나의 패널이 선택한 하나의 탭만 표시하도록 설정되어 있습니다. 하지만 화면 분할 버튼을 클릭하면 좌우로 혹은 위아래로 구분된 두 개의 다른 탭으로 패널을 분할할 수 있습니다. 현재 선택한 옵션이 배경 색깔로 강조 표시됩니다.
|
General | ||||
Speed Of Sound |
초 당 단위를 나타냅니다. 단위는 게임에 의해 사용되는 거리 단위와 상응하며 Reflect로 보내집니다. 공기 내 소리의 속도는 ~340 m/s입니다. 만약 게임 단위가 센티미터일 경우 대략 34,000(cm)/s의 값을 사용해야 합니다. Default value: 345 |
|||
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 |
|||
Output Config |
Wwise Reflect는 입력 신호와는 다른 채널 구성으로 신호를 출력하는 기능을 가지고 있는 ‘특이한’ Effect입니다. Output Config는 플러그인의 출력에서의 채널 구성을 정의합니다. 사운드 엔진이 멀티 채널 구성에서 불필요하게 공간화를 계산하는 것을 방지하기 위해서, Wwise Reflect를 모노 버스에서 사용하는 것이 좋습니다. 버스 구성이 모노가 아닐 경우 Wwise Reflect는 먼저 입력 신호를 모노로 다운믹스합니다. 하지만 출력된 초기 반사음은 공간화되어야 합니다. Output Config 컨트롤을 사용하면 이 초기 반사음을 어떤 구성으로 공간화할지 결정할 수 있습니다. 값이 Parent Bus일 경우 Wwise Reflect는 삽입된 버스의 상위 계층의 버스 구성을 대기열에 추가하고 사용합니다. 상위 버스의 구성이 Audio Objects일 경우 Wwise Reflect는 초기 반사음 당 한 개의 Audio Object를 출력하게 됩니다. 이렇게 하면 상당량의 Audio Object를 나타낼 수 있습니다. Default value: Parent Bus |
|||
Output Level |
변조(set) 신호 의 볼륨 레벨 (dB)을 나타냅니다. Default value: 0 |
|||
Monitoring List | ||||
Filter |
게임 오브젝트의 Name 또는 ID와 일치하는 전체 또는 부분 내용을 입력하세요. 그래프의 Monitoring List 표와 곡선 커서는 일치하는 허음원만 나타냅니다. |
|||
|
Filter 란의 내용을 지우면 아래의 열과 연관된 그래프 곡선에 Wwise Reflect가 적용되는 모든 허음원을 표시합니다. |
|||
허음원의 Mute와 Solo 상태를 조절하고 허음원의 암시적 뮤트와 솔로 상태를 보여줍니다. 허음원을 뮤트하면 현재 모니터링 세션에서 허음원을 무음(silence)화합니다. 허음원을 솔로화하면 Wwise Reflect의 현재 인스턴스 내 모든 다른 허음원을 무음화합니다. 굵은 글씨로 표기된 M 또는 S는 Mute 또는 Solo 상태가 해당 허음원에 명시적으로 설정되었다는 것을 의미합니다. 희미한 색깔의 일반 글씨로 표기된 M 또는 S는 해당 허음원의 Mute 또는 Solo 상태가 다른 허음원의 상태로 인해 암시적으로 설정되었음을 의미합니다.
|
||||
Image Source ID |
허음원과 연관된 식별 숫자를 나타냅니다. 이 숫자는 게임에 의해 할당된 고유한 숫자입니다. |
|||
Image Source Name |
허음원의 이름을 표시합니다. |
|||
Game Object ID |
게임 오브젝트에 할당된 식별 숫자를 말합니다. 이 숫자는 게임에 의해 할당된 고유한 숫자입니다. |
|||
Game Object Name |
게임 오브젝트의 이름을 말합니다. |
|||
Textures |
소리가 반사되는 Acoustic Texture의 이름(또는 이름을 찾을 수 없을 경우 ID)를 나타냅니다. 각 반사 순서에 두 개 이상의 텍스쳐가 나열됩니다.
|
|||
Distance |
이미지원과 리스너간의 거리를 게임 단위로 나타냅니다. |
|||
Level |
허음원(image source)에 의해 방사되는 사운드의 게인을 말합니다 이 레벨은 AkImageSourceParams를 통해 사용자가 설정하거나 모서리 반사에 의한 회절각에 따라 Spatial Audio에 의해 제어될 수 있습니다. 후자의 경우 반사가 정반사일 때 값이 1이 되며 반사된 방향이 표면과 평행할 경우 0이 됩니다. |
|||
Diffraction |
가시 영역 회절의 경우, 이 값은 정반사 방향과 반사된 방향 사이의 각도를 나타냅니다. 음영 영역 회절의 경우, 이 값은 음영 영역 경계선과 반사된 방향 간의 각도를 나타냅니다. |
|||
Smoothed Distance |
스무딩 필터가 적용된 후 거리의 현재 값을 말합니다. |
|||
Current Pitch |
Continuous Threshold Mode에서 반사 거리를 변경함으로써 일어나는 현재 Doppler 피치 변화 (센트 단위)를 말합니다. |
|||
Displacement |
Step Threshold Mode일 경우 아직 적용되지 않은 현재 반사음의 길이로부터 누적된 이동량을 말합니다. 거리 스레숄드를 초과할 경우 0으로 초기화됩니다. |
|||
(Image Source Graph View) |
Distance (X축)과 허음원 속성값 (Y축) 간의 연관 관계를 그래픽으로 나타냅니다. 여러 개의 곡선을 동시에 그래프에 표시할 수 있습니다. |
|||
Cursor Name Category |
다음은 그래프 보기 내에서 나타내거나 숨길 수 있는 매개 변수 깃발의 목록입니다.
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 |
|||
(Pin/Unpin) |
Pin 아이콘이 선택되면 해당 속성 곡선이 지금 선택되지 않았어도 해당 속성 곡선의 외곽선이 그래프에 유지됩니다. |
|||
Color |
여러 가지 그래프 곡선을 구별하는 데에 쓰는 색깔 블록 일러두기를 말합니다. |
|||
Property |
아래 표시된 여덟 개의 Wwise Reflect 허음원 곡선 중 하나를 말합니다. 곡선을 선택하면 그래프에 표시되며 편집할 수 있습니다.
|
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요