Wwise SDK 2024.1.1
|
Integration Demo (통합 사용 예제) 애플리케이션에는 Wwise의 다양한 기능을 게임에 통합하는 방법을 보여주는 사용 예제들이 포함돼 있습니다.
참고: 이 섹션에 나오는 모든 코드는 samples\IntegrationDemo\ 디렉터리의 샘플 프로젝트에 들어있습니다. |
이 프로그램의 Wwise 프로젝트는 samples\IntegrationDemo\WwiseProject
에 들어있습니다.
참고: 이 프로그램의 Wwise 프로젝트는 다양한 오디오 파일 변환 포맷을 사용하며, 설치하신 Wwise가 지원하는 플랫폼에 따라 사용이 불가할 수도 있습니다. Wwise에서 프로젝트를 열면 다음과 같은 경고가 뜹니다.
사용할 수 없는 모든 플랫폼의 변환 포맷을 PCM으로 변경하시면 이 경고 알림을 없앨 수 있습니다. 더 자세한 정보는 Wwise 사용 안내서에 나와 있는 해당 주제를 참고하세요: Converting Audio Files. |
이 프로젝트의 SoundBank 또한 SDK와 함께 samples\IntegrationDemo\WwiseProject\GeneratedSoundBanks
폴더에 설치됩니다.
SoundBank를 재생성하기 위해서는 SoundBank Manager에서 다음 내용을 확인하세요.
이 모든 설정들이 올바르게 돼 있으면, SoundBank Manager에서 Generate 를 클릭해 뱅크를 생성할 수 있습니다.
Integration Demo 바이너리 파일들은 \[Debug|Profile|Release]\bin
디렉터리에 들어있습니다. 애플리케이션을 직접 다시 빌드하고자 할 경우, 다음 과정을 따르시면 됩니다.
samples\IntegrationDemo\Windows
에 있는 솔루션을 열고 원하는 환경 설정으로 빌드하세요.Integration Demo를 실행하려면 위에 나온 디렉터리에 들어있는 실행 파일을 실행시키기만 하면 됩니다.
samples/IntegrationDemo/Mac
에 있는 Xcode 프로젝트를 열고 원하는 환경 설정으로 빌드하세요.Mac/[Debug|Profile|Release]/bin
디렉터리에 들어있는 실행 파일을 실행시키기만 하면 됩니다. samples/IntegrationDemo/iOS
, samples/IntegrationDemo/tvOS
or samples/IntegrationDemo/visionOS
and build using the desired configuration. samples\IntegrationDemo\WwiseProject
에 있는 Wwise 프로젝트를 열고 기본 설정 경로에 Android용 SoundBank를 생성하세요.samples\IntegrationDemo\Android
로 변경하세요.samples\IntegrationDemo\Android\Android_[armeabi-v7a|arm64-v8a|x86|x86_x64]\[Debug|Profile|Release]\bin
로 변경하세요. 예시: samples\IntegrationDemo\Android\Android_armeabi-v7a\Debug\bin
.adb install IntegrationDemo.apk
를 입력하세요.Android Studio로 빌드하는 방법 Android Studio가 설치돼있는 경우, Wwise에서 Integration Demo를 컴파일하고 배포하는 Gradle 프로젝트를 제공합니다. 간단히 Android Studio의 samples\IntegrationDemo\Android
디렉터리를 열기만 하면 빌드 및 앱을 실행할 수 있습니다.
참고: Integration Demo와 상호작용할 때는 소프트웨어 키보드나 하드웨어 키보드를 사용해야합니다. 내비게이션 키는 W, A, S, D입니다. 엔터 키는 선택하기, 스페이스바는 돌아가기입니다. |
samples\IntegrationDemo\WwiseProject
and generate the SoundBanks for OpenHarmony in their default paths.SDK\samples\IntegrationDemo\OpenHarmony
.SDK\samples\IntegrationDemo\OpenHarmony
in DevEco Studio IDE.SDK\samples\IntegrationDemo\OpenHarmony\build-profile.json5
arm64-v8a_Debug
. Choosing "default" here will not work.cd SDK/samples/IntegrationDemo/Linux
IntegrationDemo_Linux.make
라는 Makefile과 Linux 관련 정보 에 나와있는 변수를 이용해 빌드합니다.make -f ./IntegrationDemo_Linux.make AK_LINUX_ARCH=x64 config=debug
SDK/Linux_x[32|64]/[Debug|Profile|Release]/bin
. 키보드나 연결된 장치, 또는 DirectInput 호환 기기를 이용해 Windows에서 Integration Demo를 탐색할 수 있습니다.
Toggle Control(토글 컨트롤)이나 Numeric Slider(숫자 슬라이더)같은 일부 컨트롤은 값을 변경할 수 있습니다. 이 값을 변경하려면 키보드의 좌, 우 방향 키를 사용하거나 게임패드의 좌, 우 방향 버튼을 사용하세요.
작은 정보: 이 애플리케이션에는 온라인 도움말 기능이 있습니다! Help 페이지로 가려면 키보드 F1을 누르거나 게임패드의 START 버튼을 누르세요. |
The code behind each demonstration can be found in the samples\IntegrationDemo\DemoPages
directory. For example, the code for the Localization demo will be in the DemoLocalization.h
and DemoLocalization.cpp
files in that directory.
작은 정보: 각 데모와 관련된 정보는 Integration Demo 애플리케이션의 온라인 도움말에서도 확인할 수 있습니다. |
이 데모는 현지화 오디오를 구현하는 방법을 보여줍니다. 현지화 사운드 오브젝트들은, SoundBank 생성 디렉터리의 하위 디렉터리에 들어있는 각 언어별 SoundBank에 있습니다. 현재 SoundBank를 언로드하고 원하는 언어의 SoundBank를 다시 로드하는 방식으로 현지화 효과를 냅니다.
Use the Language toggle control to switch the current language. 그런 다음 Say Hello 버튼을 누르면 선택한 언어로 된 인사말을 들을 수 있습니다.
언어 및 현지화에 대한 더 자세한 정보는 통합 세부사항 - 언어와 음성 를 참고하세요.
Dynamic Dialogue (동적 대사) 데모는 Wwise의 Dynamic Dialogue 기능을 이용한 여러 테스트들을 보여줍니다. 각 테스트는 서로 다른 컨트롤 진행을 보여주어 각각의 효과를 듣고 확인할 수 있습니다.
Dynamic Dialogue에 대한 더 자세한 정보는 통합 세부사항 - 동적 대사 를 참고하세요.
이 데모는 RTPC를 이용하는 방법을 보여줍니다. RPM 숫자 슬라이더는 엔진의 RTPC 값(RPM)에 연결돼있습니다. Press the Start Engine button to start/stop car engine audio. RPM 슬라이더를 이용해 RTPC 값을 변경하며 그에 따른 효과를 들어보세요.
RTPC에 대한 더 자세한 정보는 통합 세부사항 - RTPC 를 참고하세요.
이 데모는 게임에 발자국 소리를 구현하는 다양한 방법을 보여줍니다. 지표면을 사용하지 않는 동안에는 미디어와 메타 데이터 메모리를 최소화할 수 있도록 지표면에 따른 뱅크 관리 방법도 설명합니다. 마지막으로 이 데모는 또한 아주 간단한 환경 효과도 보여줍니다.
In this example, the footstep sounds are modified by two variables: walking speed, and walker weight.
여기서는 각 지표면에 대한 사운드 샘플과 변수를 다루는 또 다른 방법을 보여주고 있습니다. 이는 자신만의 구조체에서 다양하게 사용할 수 있는 아이디어이자 단순한 제안에 불과합니다.
뱅크 관리 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 사용법을 보여줍니다. Press the Start Metronome button to simulate an active metronome. Then select the BPM slider and press LEFT or RIGHT to change its value. 이 데모는 PostMIDIOnEvent
function 를 통해 MIDI Event를 사운드 엔진에 전달하도록 등록된 콜백 함수를 사용합니다.
이 예제는 Xbox One과 PS4의 DVR 법정 요구 사항을 다루는 방법을 보여줍니다. 많은 게임들이 저작권이 있는 음악을 사용하기 때문에 내장 DVR로 녹음하는 것이 허용되지 않는 경우가 많습니다. 이 데모는 DVR로 녹음한 사운드와 그렇지 않은 사운드의 차이를 보여줍니다. Wwise Project를 참고해 BGMDemo 폴더에 있는 사운드 설정에서 해당 라우팅과 사용 Audio Device를 확인하세요. 녹음이 불가능한 사운드는 DVR_Bypass 출력 버스로 전달됩니다.
이 데모는 Wwise에서 3D 위치 지정(positioning)을 하는 다양한 방법을 보여줍니다.
페이지를 들어가자마자 헬리콥터 소리가 날 것입니다. 다음 키를 이용해 화면의 X와 Z 주위로 'o'를 움직여보세요.
이 데모는 단일 위치 하나만 지정합니다.
이 데모는 두 위치를 지정합니다.
이 데모는 버스 계층 구조에만 적용된 위치 지정을 보여줍니다. 버스에만 적용된 Position + Orientation 3D Spatialization과 Attenuation으로 사운드 엔진은 세 개의 하위 계층 사운드가 함께 혼합된 후 공간화(spatialization)만 적용합니다.
이 데모는 움직이는 이미터와 리스너가 서로 어떻게 상호작용하는지 보여줍니다. 특히 Portal이 있는 Room을 통해 다음과 같은 내용을 확인할 수 있습니다.
3D 버스는 해당 출력의 위치가 지정되고 공간화된 후 Master Audio Bus에서 믹스되기 전에 리버브(reverb) Effect를 적용합니다.
이 데모에서는, 두 개의 다른 "Portaled" Room과 함께, 움직이는 이미터와 리스너가 서로 상호작용하는 것을 확인할 수 있습니다. 게임 오브젝트의 위치에 따라 이미터 출력이 가까운 경우 Room이 활성화될 수 있습니다.
3D 버스는 해당 출력의 위치가 지정되고 공간화된 후 Master Audio Bus에서 믹스되기 전에 리버브(reverb) Effect를 적용합니다.
These demos show various ways to use Spatial Audio to model sound propagation across Rooms, Portals, and Geometry.
Each demo page includes a movable emitter and a movable listener. You can offset the listener from a Distance Probe to simulate a third-person listening experience.
This demo shows the effect of Portals in Spatial Audio positioning. There are two Rooms with Portals and visible sound propagation paths. The resulting diffraction and transmission amounts are displayed in the lower-left corner. Same-room obstruction (emitter-listener and portal-listener) is calculated through a combination of Portal-driven propagation and a native game-side obstruction algorithm. Game object spread is calculated for the emitter with its set radial value. Finally, this demo shows how to use a Room to play multi-channel ambient sounds / room tones that contract and become point sources at portals.
This demo shows the effect of Portals in conjunction with the Spatial Audio Geometry API. There are two Rooms with Portals, Geometry for the wall inside and outside of the Room, an obstacle and visible sound propagation paths. The resulting diffraction and transmission amounts are displayed in the lower-left corner. Spatial Audio is set up so that diffraction/transmission controls both the project-wide curves and the built-in parameters, although only the former is used in the Wwise project. Spatial Audio handles diffraction and transmission using Portals and Geometry respectively. The demo does not compute additional obstruction and occlusion.
This demo showcases the Wwise Spatial Audio Geometry API, usable for direct (dry) path diffraction and transmission. There are two walls and visible diffraction paths. The resulting diffraction and transmission amounts are displayed in the lower-left corner. Spatial Audio is set up so that diffraction/transmission controls both the project-wide curves and the built-in parameters, although only the former is used in the project.
This demo showcases the Wwise Reflect plug-in using the Geometry API to simulate early reflection. There is a room and a separate wall, defined by Spatial Audio Geometry, and visible reflection paths. Spatial Audio is set up with a reflection order displayed in the lower-left corner. Additionally, Spatial Audio allows reflection paths to diffract. The room Geometry in this demo can change texture and be scaled in size demonstrating the adaptability of the Geometry API.
This demo showcases the Reflect plug-in within the context of Rooms and Portals. There are five Rooms, connected by Portals that can be toggled open or closed, some additional walls defined by Spatial Audio Geometry, and visible reflection paths.
This demo demonstrates the use of a Reverb Zone to create a space that has its own reverb effect and transitions into the outside Room without the use of Portals. There is a Room with a Portal that connects to a Reverb Zone, forming something like a covered balcony. The Reverb Zone's parent is the outdoor Room. There is also Geometry outside to show how paths can diffract around geometry, pass through the transparent surfaces of the Reverb Zone, and then continue through portals.
This page shows how to use the PrepareBank and PrepareEvent API functions.
When the page is loaded, a PrepareBank operation loads the lightweight structure and event data referenced by this demo, without loading any actual media into memory. When the user moves the cursor to an area button, a PrepareEvent operation loads the corresponding media file (a .wem file on disk) into memory in anticipation of a future PostEvent. When the user finally enters the area, the event is posted and the media is ready to play.
이 데모는 외부 음원의 사용 방법을 보여줍니다. 두 버튼 모두 동일한 사운드 구조체를 재생하지만, '1', '2', '3' 음원 또는 '4', '5', '6' 음원 중 하나를 런타임에 설정합니다.
또한, 외부 음원은 File Packager에 패키징 되어있어 데모 페이지를 열 때 로드됩니다. File Packager에 대한 더 많은 정보는 Wwise 도움말 을 참고하시고, 파일 패키징의 런타임과 관련된 자세한 정보는 스트리밍 / 스트림 매니저 챕터를 참고하세요.
This demo demonstrates the pros and cons of automatic event bank generation. When this option is selected in the Project Settings, Wwise generates individual banks for any events that are not contained in manually created banks. However, these auto-banks do not contain any media, only structure and event data. To load media associated with these events, the game must call either AK::SoundEngine::PrepareEvent or AK::SoundEngine::SetMedia.
이 데모는 마이크 오디오를 녹음하는 방법과 이를 Wwise 사운드 엔진에 입력하는 방법을 보여줍니다. In the Integration Demo, select the Microphone Demo and speak into the microphone to hear your voice played back by the Wwise sound engine. Toggle the Enable Delay to hear an example of how audio data fed to the Audio Input plug-in can be processed like any other sound created in Wwise.
각 플랫폼은 마이크 접근과 관련해 각기 다양한 코어 API를 갖고 있습니다. Integration Demo 코드에 있는 SoundInput
과 SoundInputMgr
클래스를 참고하면 AudioInput 플러그인과 어떻게 상호작용하는지 확인할 수 있습니다.
참고: This demo is available on the following platforms: Windows, macOS, iOS, and tvOS. |
Wwise의 동작(motion) 엔진을 게임에 통합하는 방법을 보여주는 종합적인 예제입니다.
이 데모의 각 플레이어에게는 주어진 환경에서 문을 닫을 것인지, 아니면 들고 있던 총을 쏠 것인지 선택하는 옵션이 있습니다. 리스너는 각 플레이어에 대해서 설정되며 이는 플레이어가 소유한 총과 같이 게임 오브젝트 문을 활성화합니다. 이렇게 하면 한 플레이어가 해당 환경에서 문을 닫으면 모든 플레이어가 강제 피드백 반응을 받게 됩니다. 그러나 총을 쏜 플레이어만 그 Event에 대한 강제 패드백을 받습니다. Additionally, on PS4 and PS5, the gun sound will only play on the gamepad speaker of each player.
참고: On Windows, a player using a keyboard should plug in a gamepad to participate in this demo. |
이 코드는 2차 출력 및 Wwise Motion, Listener/Emitter (리스너/이미터) 관리에 대한 사용법을 보여줍니다.
이 페이지에서는 Sound Engine의 몇몇 초기화 설정을 볼 수 있습니다. 또한 전체 애플리케이션에 적용될 오디오 출력을 선택할 수 있습니다. 예제 코드는 Sound Engine의 초기화 및 종료 방법과 다양한 물리적 오디오 출력을 선택하는 방법을 알려줍니다. Sound Engine 초기화에 대한 더 자세한 내용은 아래의 섹션을 참고하세요.
Intergration Demo와 해당 Wwise Project는 사운드 엔진 통합의 기본적인 내용을 보여주기 위해 최대한 간단하게 고안됐습니다. 실제 사용 상황에 더 가까운 통합 프로젝트는 AkCube 사운드 엔진 통합 예제 프로젝트 를 참고하세요.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요