Wwise에는 수많은 기능이 있습니다. 하지만 개발 초기에는 사용법에 대한 충분한 정보가 없을 경우 제대로 작동하지 않을 수 있죠. 저는 초기의 몇 가지 삐걱거림 때문에 Wwise가 사용하기 어렵다고 생각하지 않으셨으면 좋겠다는 마음으로, 여러분께 여기 설명된 단계대로 하면 실패없이 작동할 수 있는 과정을 소개해드리려고 합니다.
이 첫 번째 블로그 글에서는 Unreal Engine으로 사운드를 재생하는 법을 소개해드리려고 합니다.
이 과정이 작동하는지 검토한 버전은 다음과 같습니다.
- Wwise 2023.1.1.8417
- Unreal Engine 5.3.2
다른 버전을 사용할 경우 작동 방식이 다를 수 있습니다.
목차
프로젝트 생성하기
Unreal 프로젝트 생성하기
Unreal 통합 통합하기
Wwise 초기 구성
Unreal 초기 구성
Wwise 프로젝트에서 사운드 등록하기
UAsset 생성하기
Blueprint에서 사운드 재생하기
마치는 말
부록 - 샘플 폴더 구성
Unreal 프로젝트에 모든 내용 넣기
Wwise 프로젝트를 Unreal 프로젝트 밖에 놓기
부록 - UAsset 생성 방법
부록 – 사운드를 재생하는 빠른 방법
AkAmbientSound를 사용하여 사운드 재생하기
BluePrint를 사용하여 사운드 재생하기
C++를 사용하여 사운드 재생하기
프로젝트 생성하기
Unreal 프로젝트 생성하기
1. Unreal Engine을 열고 'GAMES – Third Person'을 선택합니다.
2. 프로젝트 이름을 지정합니다.
• 제 예시에서는 프로젝트의 이름을 'ThirdPerson_Tutorial'로 지정했습니다.
3. Create 버튼을 클릭하여 새로운 프로젝트를 생성합니다.
4. 프로젝트를 생성하면 Unreal Engine 에디터 뷰가 열리는데, 일단 이 뷰를 닫습니다.
Unreal 통합 통합하기
1. Audiokinetic 런처를 열고 Unreal 탭을 엽니다.
2. 방금 생성한 'ThirdPerson_Tutorial' 프로젝트의 'Integrate Wwise in Project…' 버튼을 클릭합니다.
3. 통합하려는 플랫폼을 확인합니다.
4. Wwise 프로젝트 경로를 지정하지 않으면 Unreal 프로젝트 아래 Wwise 프로젝트가 자동 생성됩니다.
• Wwise 프로젝트를 이미 다른 곳에 생성했을 경우 여기에 지정해서 사용하세요.
5. Integrate 버튼을 클릭합니다.
6. 이제 통합이 완료되었습니다.
7. 다음으로 Wwise 프로젝트를 업데이트하기 위해서 Open in Wwise - Wwise 2023.1.1.8417을 클릭합니다.
Wwise 초기 구성
1. Project – Project Settings – SoundBanks로 가서 'Enable Auto Defined SoundBanks'를 선택합니다.
2. Wwise 프로젝트를 저장하고 Unreal Engine을 다시 엽니다.
Unreal 초기 구성
1. Edit – Project Settings…를 엽니다.
2. Wwise – User Settings – WAAPI로 가서 'Auto Connect to WAAPI'를 활성화합니다.
3. Wwise – Integration Settings – Installation – Root Output Path로 가서 Wwise 프로젝트의 'GeneratedSoundBanks' 폴더를 지정합니다.
• 이 입력란을 비워둘 경우 Content 폴더를 참조하게 되며 사운드를 올바르게 재생할 수 없게 됩니다.
4. Unreal Engine을 열면 Wwise Authoring Tool이 'External Project Changes' 경고 메시지를 표시합니다. Reload 버튼을 클릭합니다.
5. Wwise Browser에 SoundBank 메타데이터를 찾을 수 없다는 경고가 표시됩니다. 걱정하지 말고 'Generate SoundBanks…' 버튼을 클릭합니다.
6. 'Generate SoundBanks' 대화 상자에서 Generate 버튼을 클릭하여 SoundBank가 생성되고 디렉터리 구성이 Wwise Browser에 표시되도록 합니다.
Wwise 프로젝트에서 사운드 등록하기
이제 환경음을 재생해봅시다.
IntegrationDemo 폴더에 있는 사운드를 사용해보겠습니다.
•<Wwise>\SDK\samples\IntegrationDemo\WwiseProject\Originals\SFX
1. 해당 폴더에서 waves.wav 파일을 드래그하여 Actor-Mixer Hierarchy의 Default Work Unit에 놓습니다. 'Audio File Importer' 대화 상자가 열립니다.
2. Import 버튼을 클릭합니다. 해당 사운드가 'waves'라는 Sound SFX로 등록됩니다.
3. Project Explorer에서 방금 등록한 'waves' Sound SFX를 선택하여 오른쪽에 해당 오브젝트에 대한 정보가 표시되도록 합니다.
4. General Settings 탭에는 Loop 설정이 있습니다. 이를 활성화합니다.
5. 'waves' Sound SFX를 우클릭하고 메뉴에서 다음 Event를 생성합니다.
•Play_waves: 'waves' Sound SFX를 재생합니다.
•Stop_waves: 'waves' Sound SFX를 중단합니다.
6. 다음 단계를 완료한 후 Wwise 프로젝트를 저장하고 Unreal Engine을 다시 엽니다.
UAsset 생성하기
사운드를 재생하려면 Unreal Engine 에셋, 혹은 UAsset을 생성해야 합니다.
이 에셋을 생성하는 방법은 여러 가지가 있지만, 여기에서는 Reconcile을 사용하여 생성하는 방법을 보여드리겠습니다.
1. 먼저 추가한 Event가 들어 있는 SoundBank를 생성합니다..
2. 다음으로 Wwise Browser에서 Reconcile 버튼을 클릭합니다.
3. 'UAsset Operation'이 'Create'로 설정되었는지 확인한 후 'Reconcile Unreal Assets' 버튼을 클릭합니다.
4. UAsset이 생성되었습니다. Wwise Browser에서 'Wwise UAssets Status' 열을 선택합니다.
Blueprint에서 사운드 재생하기
이 글에서는 Blueprint에서 사운드를 재생하는 방법을 보여드리겠습니다.
1. 메뉴에서 'Open Level Blueprint'를 선택합니다.
2. Blueprint를 우클릭하여 BeginPlay 이벤트를 생성합니다.
3. BeginPlay 이벤트에서 커넥터를 드래그하여 PostEvent 노드를 생성합니다.
4. 'Ak Event'에서 Play_waves를 설정합니다.
5. 컴파일링합니다.
6. 아무것도 변경하지 않고 Play 버튼을 클릭합니다.
7. 이제 파도 소리가 들릴 것입니다!
끝맺는 말
저는 다음 단계를 직접 수행해서 이 방법이 제대로 작동하는지 확인했습니다. 하지만 일부 단계나 스크린샷은 추후 버전 업그레이드로 인해 바뀔 수 있기 때문에 여기서 설명한 것과 작동 방식이 다를 경우 댓글 섹션을 통해 알려주세요.
또한 읽고 싶은 다른 내용이 있다면 댓글에 적어주세요.
부록 - 샘플 폴더 구성
Unreal 프로젝트에 모든 내용 넣기
'Generated SoundBanks' 폴더를 Wwise 프로젝트 안에 넣고 전체 Wwise 프로젝트를 Unreal 프로젝트 안에 배치할 수 있습니다.
• 장점: 모든 내용이 한 폴더/저장소에 저장됩니다.
• 단점: 사운드 디자이너가 아닌 사람들도 Wwise 프로젝트를 다운로드해야 합니다 (다만 Wwise 저작 도구는 필요하지 않습니다).
Wwise 프로젝트를 Unreal 프로젝트 밖에 놓기
'Generated SoundBanks' 폴더를 Unreal 프로젝트 안에 놓고 Wwise 프로젝트는 Unreal 프로젝트 밖에 배치할 수 있습니다.
• 장점: 사운드 디자이너가 아닌 사람들이 Wwise 프로젝트를 다운로드할 필요 없습니다.
• 단점: 모든 내용이 여러 폴더/저장소로 나뉩니다.
*팁: 이 설정을 Unreal 에디터에서 실행하기 위해 필요한 최소 구성은 'Generated SoundBanks'에 있는 파일과 Windows 폴더입니다.
부록 - UAsset 생성 방법
A) Wwise Browser에서 Event를 콘텐츠 브라우저로 드래그하여 놓습니다.
B) 우클릭하고 메뉴에서 'Import Selected Assets'를 선택합니다.
• 여러 Event나 폴더를 지정할 수 있습니다.
C) 또한 Wwise Browser에서 액터 속성이나 대상 Blueprint 컴포넌트로 Event를 드래그하여 놓아서 UAsset을 생성할 수 있습니다.
D) Event의 경우에만 Wwise Browser에서 뷰포트로 드래그하여 UAsset과 AkComponent를 동시에 생성할 수 있습니다.
C나 D 단계를 실행하면 UAsset이 Edit - Project Setting – Wwise – Integration Settings – Asset Creation – Default Asset Creation Path에 지정된 위치에 생성됩니다.
부록 – 사운드를 재생하는 빠른 방법
AkAmbientSound를 사용하여 사운드 재생하기
1. AkAmbientSound 액터를 배치합니다.
2. AkEvent에서 재생하고자 하는 이벤트를 설정합니다.
3. 'Auto Post'를 활성화합니다.
4. 'Obstruction Occlusion - Refresh Interval'을 0.0으로 설정합니다.
Blueprint를 사용하여 사운드 재생하기
1. 'Open Level Blueprint'를 선택합니다.
2. BeginPlay 이벤트를 생성합니다.
3. BeginPlay에서 Post Event 노드를 생성합니다.
4. Post Event의 AkEvent에서 재생하고자 하는 이벤트를 설정합니다.
C++를 사용하여 사운드 재생하기
AkAudioEvent.h에서 정의된 UAkAudioEvent 메소드를 사용하여 이벤트를 발송할 수 있습니다.
1. 지정된 Actor/Component/GameObject로 Event를 발송할 수 있습니다.
- AkPlayingID UakAudioEvent::PostOnActor()
- AkPlayingID UakAudioEvent::PostOnActorAndWait()
- AkPlayingID UakAudioEvent::PostOnComponent()
- AkPlayingID UakAudioEvent::PostOnComponentAndWait()
- AkPlayingID UakAudioEvent::PostOnGameObject()
- AkPlayingID UakAudioEvent::PostOnGameObjectAndWait()
- AkPlayingID UakAudioEvent::PostOnGameObjectID()
2. 모의의 GameObject를 사용할 수 있습니다.
- AkPlayingID UakAudioEvent::PostAtLocation ()
- AkPlayingID UakAudioEvent::PostAmbient()
3. APIs that manage data loading:
- void UakAudioEvent::LoadData()
- void UakAudioEvent::UnloadData()
- bool UakAudioEvent::IsDataFullyLoaded()
- bool UakAudioEvent::IsLoaded()
댓글