버전
menu_open
Wwise Unity Integration Documentation
Wwise Demo 씬

이 1인칭 3D 맵은 경로를 따라 '스테이션(station)'을 포함합니다. 각 스테이션마다 옆에 작은 설명이 적혀 있습니다. 스테이션의 에셋이 씬 계층 구조 안에 들어가 있어서 참조 하기가 쉽습니다.

Footsteps demo(발자국 소리 데모)

첫 번째 스테이션과 길(footpath)은 스크립트 사용과 볼륨 트리거를 통해 발자국 소리 시스템의 제작 방법을 보여줍니다.

Wwise Project에서 발자국 소리와 관련해서 권장하는 방법인, 각 표면 유형에 따른 Random 컨테이너를 Switch Container 안에 넣어서 구현되었습니다. 발자국 소리는 Footstep 이벤트를 사용하여 보낼 수 있으며 표면 머터리얼은 'Footstep_material' Switch Group을 통해 제어됩니다.

씬의 지형은 잔디, 자갈, 나무, 흙 이렇게 네 가지의 다른 텍스처로 칠해져있습니다. 여러 다른 표면 유형 위로 걸어다니면 발자국 소리가 알맞게 바뀝니다.

이 작업을 위해서 각 구역에 Box Collider가 배치되었습니다. Footstep_Material 스위치는 Wwise Picker Window에서 Box Collider로 Switch Value를 드래그하여 쉽게 설정할 수 있습니다. 콜라이더 안으로 들어갈 때 First Person Controller에 스위치를 설정하려면 'AkTriggerEnter' 트리거에 Ak Switch 스크립트를 트리거해야 하며 'Use Other Object' 체크 상자가 활성화되어야 합니다 (Inspector창에서 보이는대로).

플레이어가 이동하면 0.3초마다 Footstep 이벤트를 보내는 아주 기초적인 발자국 소리 스크립트가 구현되어 있습니다. 이 스크립트는 First Person Controller에 연결되어 있습니다. 이는 스크립트를 통해 Wwise SoundEngine에 이벤트를 보내는 방법을 보여줍니다.

Subtitle demo (자막 데모)

이 스테이션은 Unity에서 커스텀 이벤트 트리거를 만드는 방법과 이벤트 콜백을 사용하는 방법을 설명합니다.

간단한 버튼 스크립트는 플레이어가 버튼에 충분히 가까울 때 실행되는 대리자(delegate)가 포함되어 있으며 키보드나 컨트롤러로 키를 누를 수 있습니다. 또 다른 스크립트인 AkTriggerButtonPress 는 스스로 이 대리자에 등록하며 상위 클래스인 AkTriggerBase 에서 triggerDelegate 를 호출합니다. AkTriggerBase 로부터 상속받으면 커스텀 트리거가 Wwise Component Inspector 창의 'trigger' 목록에 표시됩니다 (예를 들어 버튼에 연결된 Ak Ambient). 커스텀 트리거에 대한 더 많은 정보는 Wwise 이벤트에 새로운 트리거 추가하기 를 참조하세요.

해당 이벤트는 WAV 마커를 담은 사운드 파일을 재생합니다. 이벤트에 연결된 마커 콜백을 등록하면 패널에서 자막을 업데이트할 수 있습니다. 그렇게 하기 위해서 Ak Ambient의 인스펙터에서 'Use Callback' 옵션이 선택되어 있습니다. 그런 다음 스크립트 ( SubtitleDemo.cs ) 를 담은 GameObject ( SubtitleSign ) 가 'Game Object' 상자로 드래그되었습니다. 콜백이 트리거될 때 실행하기 위해서 Callback Function (MarkerCallback) 의 이름을 입력했으며 'Marker'가 Callback Flags로 선택되었습니다. SubtitleDemo 의 코드를 보면 Callback 함수가 MarkerCallbackuIdentifier 입력란을 인덱스로 사용하여 미리 정의된 문자열 배열에서 자막을 읽는 것을 볼 수 있습니다. 콜백에 대한 더 많은 정보는 인스펙터에서 AkAmbient 사용하기 를 참조하세요.

Environment demo(환경 데모)

이 스테이션은 씬의 구역 안에서 효과를 적용하는 방법을 보여줍니다. 두 개의 동굴은 AuxBus가 추가된 (Wwise Picker 창에서 드래그됨) EnvironmentZone (여기서도 Box Collider가 트리거의 역할을 합니다)을 담고 있습니다.

Wwise에서 두 개의 Auxiliary Bus가 생성되었으며 각 버스가 서로 다른 효과를 담고 있습니다. 그리고 발자국 소리와 Little Sequence에 'Use game-defined Auxiliary sends'가 선택되어 있습니다.

EnvironmentZone 안에서 Wwise 이벤트를 전송하면 사운드가 구역에 연결된 AuxBus로 라우팅됩니다.

또한 이 스테이션은 Environment Portal(환경 포털) 컴포넌트를 보여줍니다. 이 포털은 두 환경 간에 공간을 전환하도록 해줍니다. 이 예시에서는 세 개의 버튼을 사용하여 Environment Portal이 Auxiliary Bus의 믹싱을 변경하는 방법을 시연합니다.

환경 포털을 만들려면 먼저 한 축에서 두 개의 Ak Environment와 접촉하는 Box Collider를 만드세요 (이 예시에서 포털은 'z' 축에서 Red 구역과 Blue 구역이 접촉합니다). 그런 다음 Ak Environment Portal 컴포넌트를 추가하고 알맞은 축을 선택하세요. 조합될 두 가지 환경이 자동으로 채워집니다.

Environment와 Environment Portal에 대한 더 많은 정보는 인스펙터에서 AkEnvironment와 AkEnvironmentPortal 사용하기 (Reverb Zone) 을 참고하세요.

Timeline Demo(타임라인 데모)

이 스테이션은 Unity의 Timeline에서 AkEventTrack과 AkRTPCTrack의 사용을 보여줍니다. 여기에는 두 개의 큐브가 있으며 버튼을 누르면 서로를 향해 애니메이션해서 부딪힌 후 중단됩니다.

Timeline을 살펴보려면 Window->Timeline을 선택하세요. 그런 다음 Hierarchy에서 TimelineDemo 오브젝트를 펼친 후 Timeline Demo Button 오브젝트를 펼치세요. Button 오브젝트를 선택하세요. Timeline 에디터가 큐브의 애니메이션과 Wwise Event를 제어하는 Timeline을 보여줍니다. Timeline은 Button 오브젝트의 Playable Director 컴포넌트에 의해 제어됩니다.

Timeline에는 각 큐브 당 하나씩 총 두 개의 애니메이션 트랙이 있습니다. 이 트랙은 시간에 따라 각 큐브의 z 위치를 애니메이션하는 데 사용됩니다. 또한 Timeline에는 각각 흰색과 빨간색 탭으로 표시된 AkEventTrack과 AkRTPCTrack이 있습니다. AkEventTrack에는 두 가지 AkEventPlayable 클립이 있습니다. 첫 번째 클립은 PlayCubeMovement Wwise Event를 트리거하며 두 번째 트리거는 PlayImpact Wwise Event를 트리거합니다. 이 Wwise Event의 이름은 클립 안에 표시됩니다. 이름이 올바르게 표시되도록 하려면 Timeline 에디터 뷰의 크기를 늘이거나 줌 인해야 할 수도 있습니다. PlayCubeMovement Wwise Event는 정현파 음원을 재생하며 RTPC로 피치가 변경됩니다. 이 RTPC의 이름은 CubeAcceleration입니다. AkRTPCTrack은 큐브가 서로를 향해 이동하면서 시간에 따라 이 RTPC의 값을 늘립니다. 이렇게 RTPC의 값이 증가하면 정현파의 피치가 올라가서 각 큐브가 서로를 향해 움직이는 가속도를 표시하는 간단한 효과음이 생성됩니다.

또한 이 스테이션은 Motion(모션) 기능을 보여줍니다. 플레이어 계층 구조에 'Motion listener'라는 게임 오브젝트가 있습니다. 이 게임 오브젝트는 지원 플랫폼에서 Motion 장치의 출력을 설정합니다. 출력은 데이터를 수신하기 위해서 리스너가 필요합니다. 그렇기 때문에 Motion 리스너에는 Ak Game Object와 Ak Audio Listener도 있습니다. 큐브 충돌에서 Motion 효과를 활성화하려면 두 가지 중요한 작업이 실행되어야 합니다. 먼저 충돌음이 Wwise 프로젝트의 Wwise Motion ShareSet를 통해 출력 버스로 라우팅되어야 합니다. 두 번째로 Motion 출력에 사용되는 리스너가 충돌 이벤트를 전송하는 방사체의 리스너로 추가되어야 합니다. 출력을 추가하는 방법에 대한 예제로 AkMotionListener 스크립트를 확인하세요.

참고: 안드로이드에서 Motion 기능을 지원하려면 애플리케이션의 매니페스트(manifest)에 진동 퍼미션이 들어있어야 합니다. Unity는 애플리케이션의 내용물에 따라 매니페스트를 자동으로 생성합니다. Handheld.Vibrate() 의 호출을 추가하면 매니페스트에 원하는 퍼미션이 추가됩니다.

Timeline 통합에 대한 더 많은 정보는 Wwise Timeline 통합 을 참고하세요.


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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요