버전
Wwise SDK 2019.1.11
|
Integration Demo (통합 사용 예제) 애플리케이션에는 Wwise의 다양한 기능을 게임에 통합하는 방법을 보여주는 사용 예제들이 포함돼 있습니다.
참고: 이 섹션에 나오는 모든 코드는 "samples\\IntegrationDemo\\$(Platform)" 디렉터리의 샘플 프로젝트에 들어있습니다. |
이 프로그램의 Wwise 프로젝트는 "samples\\IntegrationDemo\\WwiseProject" 에 들어있습니다.
참고: 이 프로그램의 Wwise 프로젝트는 다양한 오디오 파일 변환 포맷을 사용하며, 설치하신 Wwise가 지원하는 플랫폼에 따라 사용이 불가할 수도 있습니다. Wwise에서 프로젝트를 열면 다음과 같은 경고가 뜰 것입니다. '\Actor-Mixer Hierarchy\Dialogues\Captain_A\UNA-BM-AL_01\UNA-BM-AL_01' uses the conversion plugin 'XMA', which is not installed. 사용할 수 없는 모든 플랫폼의 변환 포맷을 PCM으로 변경하시면 이 경고 알림을 없앨 수 있습니다. 더 자세한 정보는 Wwise 사용 안내서에 나와 있는 해당 주제를 참고하세요: Converting Audio Files. |
이 프로젝트의 SoundBank 또한 SDK와 함께 "samples\\IntegrationDemo\\WwiseProject\\GeneratedSoundBanks" 폴더에 설치됩니다.
SoundBank를 재생성하기 위해서는 SoundBank Manager에서 다음 내용을 확인하세요.
이 모든 설정들이 올바르게 돼 있으면, SoundBank Manager에서 Generate 를 클릭해 뱅크를 생성할 수 있습니다.
Integration Demo 바이너리 파일들은 "$(Platform)\\[Debug|Profile|Release]\\bin" 디렉터리에 들어있습니다. 애플리케이션을 직접 다시 빌드하고자 할 경우, 다음 과정을 따르시면 됩니다.
Integration Demo를 실행하려면 위에 나온 디렉터리에 들어있는 실행 파일을 실행시키기만 하면 됩니다.
adb install IntegrationDemo.apk
를 입력하세요.Android Studio로 빌드하는 방법 Android Studio가 설치돼있는 경우, Wwise에서 Integration Demo를 컴파일하고 배포하는 Gradle 프로젝트를 제공합니다. 간단히 Android Studio의 "samples\IntegrationDemo\Android" 디렉터리를 열기만 하면 빌드 및 앱을 실행할 수 있습니다.
참고: Integration Demo와 상호작용할 때는 소프트웨어 키보드나 하드웨어 키보드를 사용해야합니다. 내비게이션 키는 "a, w, s, d"입니다. "엔터" 키는 선택하기, "스페이브바"는 돌아가기입니다. |
키보드나 연결된 장치, 또는 DirectInput 호환 기기를 이용해 Windows에서 Integration Demo를 탐색할 수 있습니다.
Toggle Control(토글 컨트롤)이나 Numeric Slider(숫자 슬라이더)같은 일부 컨트롤은 값을 변경할 수 있습니다. 이 값을 변경하려면 키보드의 좌, 우 방향 키를 사용하거나 게임패드의 좌, 우 방향 버튼을 사용하세요.
작은 정보: 이 애플리케이션에는 온라인 도움말 기능이 있습니다! Help 페이지로 가려면 키보드 F1을 누르거나 게임패드의 START 버튼을 누르세요. |
각 데모에 사용된 코드는 "samples\\IntegrationDemo\\DemoPages" 디렉터리에서 확인할 수 있습니다. 예를 들어, Localization 데모 코드는 DemoLocalization.h에 있으며 이 디렉터리에 DemoLocalization.cpp 파일이 있습니다.
작은 정보: 각 데모와 관련된 정보는 Integration Demo 애플리케이션의 온라인 도움말에서도 확인할 수 있습니다. |
이 데모는 현지화 오디오를 구현하는 방법을 보여줍니다. 현지화 사운드 오브젝트들은, SoundBank 생성 디렉터리의 하위 디렉터리에 들어있는 각 언어별 SoundBank에 있습니다. 현재 SoundBank를 언로드하고 원하는 언어의 SoundBank를 다시 로드하는 방식으로 현지화 효과를 냅니다.
"Language" 토글 컨트롤을 이용해 현재 언어를 변경하세요. 그런 다음 Say Hello 버튼을 누르면 선택한 언어로 된 인사말을 들을 수 있습니다.
언어 및 현지화에 대한 더 자세한 정보는 통합 세부사항 - 언어와 음성 를 참고하세요.
Dynamic Dialogue (동적 대사) 데모는 Wwise의 Dynamic Dialogue 기능을 이용한 여러 테스트들을 보여줍니다. 각 테스트는 서로 다른 컨트롤 진행을 보여주어 각각의 효과를 듣고 확인할 수 있습니다.
Dynamic Dialogue에 대한 더 자세한 정보는 통합 세부사항 - 동적 대사 를 참고하세요.
이 데모는 RTPC를 이용하는 방법을 보여줍니다. RPM 숫자 슬라이더는 엔진의 RTPC 값(RPM)에 연결돼있습니다. "Start Engine" 버튼을 눌러 자동차 엔진 소리를 시작하거나 멈출 수 있습니다. RPM 슬라이더를 이용해 RTPC 값을 변경하며 그에 따른 효과를 들어보세요.
RTPC에 대한 더 자세한 정보는 통합 세부사항 - RTPC 를 참고하세요.
이 데모는 게임에 발자국 소리를 구현하는 다양한 방법을 보여줍니다. 지표면을 사용하지 않는 동안에는 미디어와 메타 데이터 메모리를 최소화할 수 있도록 지표면에 따른 뱅크 관리 방법도 설명합니다. 마지막으로 이 데모는 또한 아주 간단한 환경 효과도 보여줍니다.
여기 나온 예제에서는 지표면, 걷는 속도, 캐릭터의 몸무게, 이 세 가지 변수에 따라 발자국 소리가 변경됩니다.
여기서는 각 지표면에 대한 사운드 샘플과 변수를 다루는 또 다른 방법을 보여주고 있습니다. 이는 자신만의 구조체에서 다양하게 사용할 수 있는 아이디어이자 단순한 제안에 불과합니다.
뱅크 관리 Footsteps 데모의 뱅크들은 지표면 하나당 하나씩, 네 개의 미디어 뱅크로 나뉘어있습니다. 화면을 넷으로 나누어 각 지표면 사이에는 완충 영역을 경계선으로 두고, 이 영역에서는 두 뱅크 모두 로드되도록 했습니다. 이렇게 하면 발자국 소리에서 뱅크 로딩에 의해 빈 공간이 생기는 것을 방지할 수 있습니다. SoundBank Manager에서 GameSync 탭을 확인하세요. 각 지표면 뱅크에는 그에 해당하는 표면의 Switch만 들어있다는 점에 주목하세요. 이 뱅크에는 해당 Switch와 관련된 계층 구조 외에 다른 것은 들어있지 않습니다. 규모가 큰 게임을 개발할 때 이러한 설정을 해놓으면 특정 상황에서 사용하지 않는 샘플의 양을 제한할 수 있어 메모리 사용을 줄일 수 있습니다. 레벨이나 섹션 기반의 게임의 경우, 설계 단계부터 명확하기 때문에 사용되는 지표면을 확인하는 것은 어렵지 않습니다. 오픈 게임에서는 사용하는 지표면 확인이 게임 구조에 따라 달라지고 좀 더 까다롭지만 전혀 불가능한 것은 아닙니다. 예를 들어, 플레이어가 현재 따뜻한 도시에 있고 당분간 추운 설정으로 바뀔 일이 없다면 '눈과 얼음' 지표면 사운드가 메모리에 있을 필요가 없는 것입니다.
이 데모는 사운드 파일 내에서 마커에 도달했을 때 콜백 함수를 설정하는 방법을 보여줍니다. 이 데모에는 오디오 트랙과 자막의 싱크를 맞추기 위한 마커가 사용됩니다.
마커에 대한 더 자세한 정보는 마커 통합 을 참고하세요.
이 데모는 음악 콜백에 대한 전반적인 사용법을 보여줍니다. 비트와 바(bar) 알림은 음악 템포와 박자표 정보에 의해 생성됩니다.
이 예제는 랜덤 재생 목록이 다음 요소를 순차적으로 선택하게 만드는 방법을 보여줍니다. 재생 목록 요소는 콜백으로도 정지시킬 수 있습니다.
콜백을 이용해 게임이 받을 수 있는 MIDI 메시지를 보여줍니다. MIDI 메시지에는 MIDI 노트와 CC 값, Pitch Bend, After Touch, Program Changes가 포함돼있습니다.
음악 콜백에 대한 더 자세한 정보는 refer to 통합 상세 내용 - 음악 콜백 을 참고하세요..
이 예제는 Music Switch Container를 사용합니다. 데모 페이지에 나와있는 Event를 트리거해 State를 변경해보세요. State를 변경하면 그 결과가 즉각적으로 발생하거나 Music Container의 규칙에서 지정된 시각에 발생하게 됩니다.
이 예제는 MIDI API 사용법을 보여줍니다. "Start Metronome" 버튼을 눌러 움직이는 메트로놈을 실행하세요. 그런 다음 "BPM" 슬라이더를 선택하고 LEFT나 RIGHT를 눌러 값을 변경하세요. 이 데모는 PostMIDIOnEvent
function 를 통해 MIDI Event를 사운드 엔진에 전달하도록 등록된 콜백 함수를 사용합니다.
Wwise의 동작(motion) 엔진을 게임에 통합하는 방법을 보여주는 종합적인 예제입니다.
이 데모의 각 플레이어에게는 주어진 환경에서 문을 닫을 것인지, 아니면 들고 있던 총을 쏠 것인지 선택하는 옵션이 있습니다. 리스너는 각 플레이어에 대해서 설정되며 이는 플레이어가 소유한 총과 같이 게임 오브젝트 문을 활성화합니다. 이렇게 하면 한 플레이어가 해당 환경에서 문을 닫으면 모든 플레이어가 강제 피드백 반응을 받게 됩니다. 그러나 총을 쏜 플레이어만 그 Event에 대한 강제 패드백을 받습니다. 또한, PS4에서는 각 플레이어의 게임 컨트롤러 스피커에서만 총소리가 재생됩니다.
참고: 키보드를 이용하는 플레이어는 게임패드를 연결시켜야 이 데모에 참여할 수 있습니다. |
이 코드는 2차 출력 및 Wwise Motion, Listener/Emitter (리스너/방사체) 관리에 대한 사용법을 보여줍니다.
이 데모는 마이크 오디오를 녹음하는 방법과 이를 Wwise 사운드 엔진에 입력하는 방법을 보여줍니다. Integration Demo에서 "Microphone Demo"를 선택하고 마이크에 대고 말을 해보면 Wwise 사운드 엔진에 의해 재생되는 자신의 목소리를 들을 수 있습니다. "Enable Delay"를 토글해 Audio 입력 플러그인에 입력된 오디오 데이터가 Wwise에서 생성된 여타 사운드처럼 어떻게 처리되는지 알려주는 예를 들어보세요.
각 플랫폼은 마이크 접근과 관련해 각기 다양한 코어 API를 갖고 있습니다. Integration Demo 코드에 있는 SoundInput
과 SoundInputMgr
클래스를 참고하면 AudioInput 플러그인과 어떻게 상호작용하는지 확인할 수 있습니다.
참고: 이 데모는 다음 플랫폼에서 사용 가능합니다: Windows, UWP, macOS, iOS, tvOS. |
이 데모는 Wwise에서 3D 위치 지정(positioning)을 하는 다양한 방법을 보여줍니다.
페이지를 들어가자마자 헬리콥터 소리가 날 것입니다. 다음 키를 이용해 화면의 X와 Z 주위로 'o'를 움직여보세요.
이 데모는 단일 위치 하나만 지정합니다.
이 데모는 두 위치를 지정합니다.
이 데모는 공간 음향 위치 지정에 있어서 Portal의 효과를 보여줍니다. 움직이는 방사체와 리스너, 그리고 포털이 있는 두 개의 공간(Room)에서, 소리 전달 경로와 그에 따른 회절 정도가 오른쪽 아래 끝에 표시됩니다. 포털에 의한 전달 외에, 네이티브 게임쪽 방해 알고리즘은 동일 공간 내 방해로 사용됩니다 (방사체-리스너와 포털-리스너). 마지막으로 이 데모는 Room을 이용해 다채널 주변 환경음 / 공간 톤이 줄어들어 포털의 점음원이 되기까지의 방법을 보여줍니다.
이 데모는 Wwise Spatial Audio Geometry API(공간 음향 지오메트리 API)를 보여줍니다. 이는 단방향 (dry) 경로 회절에 사용할 수 있으며, Wwise Reflect 플러그인에 사용됩니다 (단, 이 데모에서는 Reflect를 사용하지 않았습니다). 두 개의 벽과 움직이는 방사체와 리스너가 있어, 회절 경로와 그에 따른 회절 정도가 오른쪽 아래 끝에 표시됩니다. Spatial Audio를 설정해 회절이 프로젝트 전반에 걸친 방해와 Diffraction(회절) 내장 매개 변수를 모두 제어할 수 있도록 합니다. 단, 이 프로젝트에서는 이 둘 중 방해만 다루고 있습니다.
이 데모는 버스 계층 구조에만 적용된 위치 지정을 보여줍니다. 버스에만 적용된 Position + Orientation 3D Spatialization과 Attenuation으로 사운드 엔진은 세 개의 하위 계층 사운드가 함께 혼합된 후 공간화(spatialization)만 적용합니다.
이 데모는 움직이는 방사체와 리스너가 서로 어떻게 상호작용하는지 보여줍니다. 특히 Portal이 있는 Room을 통해 다음과 같은 내용을 확인할 수 있습니다.
3D 버스는 해당 출력의 위치가 지정되고 공간화된 후 Master Audio Bus에서 믹스되기 전에 리버브(reverb) Effect를 적용합니다.
이 데모에서는, 두 개의 다른 "Portaled" Room과 함께, 움직이는 방사체와 리스너가 서로 상호작용하는 것을 확인할 수 있습니다. 게임 오브젝트의 위치에 따라 방사체 출력이 가까운 경우 Room이 활성화될 수 있습니다.
3D 버스는 해당 출력의 위치가 지정되고 공간화된 후 Master Audio Bus에서 믹스되기 전에 리버브(reverb) Effect를 적용합니다.
이 데모는 외부 음원의 사용 방법을 보여줍니다. 두 버튼 모두 동일한 사운드 구조체를 재생하지만, '1', '2', '3' 음원 또는 '4', '5', '6' 음원 중 하나를 런타임에 설정합니다.
또한, 외부 음원은 File Packager에 패키징 되어있어 데모 페이지를 열 때 로드됩니다. File Packager에 대한 더 많은 정보는 Wwise 도움말 을 참고하시고, 파일 패키징의 런타임과 관련된 자세한 정보는 스트리밍 / 스트림 매니저 챕터를 참고하세요.
이 예제는 Xbox One과 PS4의 DVR 법정 요구 사항을 다루는 방법을 보여줍니다. 많은 게임들이 저작권이 있는 음악을 사용하기 때문에 내장 DVR로 녹음하는 것이 허용되지 않는 경우가 많습니다. 이 데모는 DVR로 녹음한 사운드와 그렇지 않은 사운드의 차이를 보여줍니다. Wwise Project를 참고해 BGMDemo 폴더에 있는 사운드 설정에서 해당 라우팅과 사용 Audio Device를 확인하세요. 녹음이 불가능한 사운드는 DVR_Bypass 출력 버스로 전달됩니다.
Intergration Demo와 해당 Wwise Project는 사운드 엔진 통합의 기본적인 내용을 보여주기 위해 최대한 간단하게 고안됐습니다. 실제 사용 상황에 더 가까운 통합 프로젝트는 AkCube 사운드 엔진 통합 예제 프로젝트 를 참고하세요.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요