Unreal EngineでWwiseから発音する方法

Wwiseの使い方やツール

Wwiseは多数の機能を持っていますが、特に開発初期において情報が足りず、思った通りに動かないことがあるかと思います。最初につまづいたことで、Wwiseが難しいという意識を持たれてしまう事を避けるために、これから「書かれた通りに設定すると必ず動作する」手順を紹介していきたいと思います。

初回はUnreal Engineで音を再生させるところまでを扱います。

なお、以下のバージョンを用いて動作を確認しています。

  • Wwise 2023.1.1.8417
  • Unreal Engine 5.3.2

バージョンが異なる場合、動作が異なる可能性がある事にご注意ください。

 

目次

プロジェクトの作成
  Unrealプロジェクトの作成
  Unreal Integrationを統合
  Wwise側の初期設定
  Unreal側の初期設定
Wwise Projectへの素材の登録
UAssetの作成
BluePrintからの音の再生
さいごに
付録 – フォルダ構成例
  Unrealプロジェクトにすべて含む場合
  WwiseプロジェクトをUnrealプロジェクトの外に出した場合
付録 - UAssetの作成方法
付録 – かんたん再生方法
  AkAmbientSoundによる再生
  BluePrintによる再生
  C++による再生

 

プロジェクトの作成

Unrealプロジェクトの作成

1. Unreal Engineを起動、GAMES – Third Personを選択します。
2. プロジェクト名を指定します。
  •この例では、ThirdPerson_Tutorialとしています。
3. 作成ボタンを押下し、プロジェクトを作成します。
4. プロジェクト作成後、Unreal Engineエディタ画面が起動しますが、いったん閉じておきます。

01_Unreal_Create_Project

 

Unreal Integrationを統合

1. Audiokinetic Launcherを起動し、Unrealタブを開きます。
2. 先ほど作成したThirdPerson_Tutorialプロジェクトに対して、Integrate Wwise in Project…ボタンを押下します。

02_Integrate_Wwise

3. 統合するプラットフォームを確認しておいてください。
4. Wwise Project Pathは無指定にしておけば、自動的にUnreal Projectの下にWwise Projectが作成されます。
  •事前に他の場所にWwiseプロジェクトを作成しておいた場合、ここで指定すれば利用できます。
5. Integrateボタンを押下します。

03_Integrate_Wwise_Menu

6. これでインテグレーションが完了しました。
7. 次に、Wwise Projectを更新するために、Open in Wwise- Wwise 2023.1.1.8417ボタンを押下してください。

04_Open_in_Wwise

 

Wwise側の初期設定

1. Project – Project Settings – SoundBanksの”Enable Auto Defined SoundBanks”にチェックします。
2. Wwise Projectを保存し、再びUnreal Engineを開きましょう。

05_Wwise_Initial_Settings

 

Unreal側の初期設定

1. Edit – Project Settings…を開きます。
2. Wwise – User Settings – WAAPIから、Auto Connect to WAAPIを有効にします。

06_Unreal_Initial_Settings_1

3. また、Wwise – Integration Settings – Installation – Root Output Pathに対して、Wwise ProjectのGeneratedSoundBanksフォルダを指定します。
  •空白の場合、Contentフォルダを参照するため、正常にサウンドを再生させることができません。

07_Unreal_Initial_Settings_2

4. Unreal Engineを開いた際、Wwise Authoring Tool側でExternal Project Changes警告ダイアログが表示されるため、Reloadボタンを押しておきましょう。

08_Unreal_Initial_Settings_3

5. Wwise Browserを見ると、SoundBankのmetadataが存在しない警告が出ていますが、気にせずGenerate SoundBanks…ボタンを押してください。

09_Unreal_Initial_Settings_4

6. Genate SoundBanksダイアログでGenerateボタンを押すとサウンドバンクが生成され、Wwise Browserにもディレクトリ構造が表示されるようになります。

10_Unreal_Initial_Settings_5

 

Wwise Projectへの素材の登録

今回は、1つの環境音を再生する事にします。
以下のフォルダにあるIntegrationDemoの素材を流用することにしましょう。
  •<Wwise>\SDK\samples\IntegrationDemo\WwiseProject\Originals\SFX

1. このフォルダにあるwaves.wavをActor-Mixer HierarchyのDefault Work Unitにドラッグ&ドロップすると、Audio File Importerダイアログが表示されます。

11_Register_Assets_1

2. そのままImportボタンを押下すると、wavesという名前のSound SFXとして登録されます。

12_Register_Assets_2

3. Project Explorerに表示される、今回登録したwavesという名前のSound SFXを選択すると、右側にオブジェクトの情報が表示されます。

13_Register_Assets_3

4. General Settingsタブ内にLoop指定があるので、それを有効にしておきましょう。

14_Register_Assets_4

5. wavesのSound SFXを右クリックして表示されるメニューを使って、以下のEventを作成します。
  •Play_waves: Sound SFX “waves”をPlay
  •Stop_waves: Sound SFX “waves”をStop

15_Register_Assets_5

6. ここまで実行したところでWwise Projectを保存し、再びUnreal Engineを開きましょう。

 

UAssetの作成

音を再生するには、Unreal EngineのアセットであるUAssetを作成する必要があります。
複数の方法がありますが、ここではReconcileを使用した方法を説明します。

1. まず、追加されたEventを含んだSoundBankを作成します。

16_Create_UAssets_1

2. 次に、Wwise BrowserのReconcileボタンを押下します。

17_Create_UAssets_2

3. UAsset OperationがCreateになっていることを確認し、Reconcile Unreal Assetsボタンを押下します。

18_Create_UAssets_3

4. これでUAssetが生成されました。Wwise BrowserのWwise UAssets Status列をご覧ください。

19_Create_UAssets_4

 

Blueprintからの音の再生

今回の記事ではBluePrintから音を再生する事にします。

1. 以下のメニューから、Level Blueprintを開きます。

20_Play_by_BluePrint_1

2. Blueprint画面で右クリックし、BeginPlayイベントを作成します。

21_Play_by_BluePrint_2

3. BeginPlayイベントからコネクタを引き出し、PostEventノードを作成します。

22_Play_by_BluePrint_3

4. Ak EventにPlay_wavesを設定します。

23_Play_by_BluePrint_4

5. 最後にコンパイルしておきます。

24_Play_by_BluePrint_5

6. この状態でPlayボタンを押します。

25_Play_by_BluePrint_6

7. 波の音が聴こえるようになっているはずです!

26_Play_by_BluePrint_7

 

さいごに

ここに掲載した手順は、実際に操作してみて動作することを確認しています。しかし、今後のバージョンアップで手順や画面が変わってしまうことが予想されるため、もし実際の挙動と異なる記載を見かけられた場合は、コメントをいただけると助かります。
また、掲載を希望する機能がございましたら、そちらもぜひコメントを投稿ください。

 

付録 – フォルダ構成例

Unrealプロジェクトにすべて含む場合

Wwiseプロジェクトの中にGenerated SoundBanksフォルダを含み、WwiseプロジェクトごとUnrealプロジェクト内に配置します。

27_Wwise_in_Unreal

  •長所:1つのフォルダ・リポジトリで完結します。
  •短所:サウンドクリエイター以外もWwiseプロジェクトをダウンロードする必要があります(Wwiseオーサリングツールは不要です)。

 

WwiseプロジェクトをUnrealプロジェクトの外に出した場合

Generated SoundBanksフォルダはUnrealプロジェクト内に置きますが、WwiseプロジェクトはUnrealプロジェクトの外に配置します。

28_Wwise_outside_Unreal

  •長所:サウンドクリエイター以外はWwiseプロジェクトをダウンロードする必要がありません。
  •短所:フォルダ・リポジトリが複数に分かれます。
  ※TIPS:Unrealエディタ上での実行に必要な最小構成は、Generated SoundBanks直下のファイルおよび、Windowsフォルダのみです。

 

付録 - UAssetの作成方法

A) Wwise BrowserでEventをコンテンツブラウザにドラッグ&ドロップします。

29_Create_UAssets_1

B) 右クリックメニューから、Import Selected Assetsを選択します。
  •複数あるいはフォルダ単位でも指定できます。

30_Create_UAssets_2

C) Wwise BrowserからEvent等をドラッグし、アクタープロパティ、あるいはBluePrintの該当コンポーネントへのドロップでも作成できます。

31_Create_UAssets_3

32_Create_UAssets_4

D) Eventに限り、Wwise Browserからビューポートへのドラッグ&ドロップによって、AkComponentと同時にUAssetを生成できます。

33_Create_UAssets_5

CDの方法では、Edit - Project Setting – Wwise – Integration Settings – Asset Creation – Default Asset Creation Pathで指定した場所にUAssetが生成されます。

34_Create_UAssets_6

 

付録 – かんたん再生方法

AkAmbientSoundによる再生

1. AkAmbientSoundアクターを配置します。

35_Play_by_AkAmbientSound_1

2. AkEventに再生するイベントを設定します。

36_Play_by_AkAmbientSound_2

3. Auto Postを有効にします。

37_Play_by_AkAmbientSound_3

4. Obstruction Occlusion - Reflesh Intervalを0.0に設定します。

38_Play_by_AkAmbientSound_4

 

BluePrintによる再生

1. Level Blueprintを開きます。

39_Play_by_BluePrint_1

2. BeginPlayイベントを作成します。

40_Play_by_BluePrint_2

3. BeginPlayからPost Eventノードを作成します。

41_Play_by_BluePrint_3

4. Post EventのAkEventに再生するイベントを設定します。

42_Play_by_BluePrint_4

 

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. データのロード管理系API
  •void UakAudioEvent::LoadData()
  •void UakAudioEvent::UnloadData()
  •bool UakAudioEvent::IsDataFullyLoaded()
  •bool UakAudioEvent::IsLoaded()

合田 浩(HIROSHI GODA)

合田 浩(HIROSHI GODA)

Audiokinetic株式会社 シニアフィールドアプリケーションエンジニア・テクニカルエバンジェリストとして、導入中あるいは導入を検討中のお客様に対する技術支援活動に従事。97年よりゲームプログラマーとしてPlayStationからPlayStation3、その後スマートフォンでの開発に携わる。2016年からサイバーセキュリティ業界に移るが、2021年に現職としてゲーム業界に復帰。過去の活動では減色ツール、PS1用動画規格を開発、3値αムービーを使ったレイヤード描画で特許登録するなど、実はどちらかといえば音楽より画像系の人。

コメント

Replyを残す

メールアドレスが公開されることはありません。

ほかの記事

ダイアログ|WwiseとUnityのナレーション

9.2.2022 - 作者 ジェイク・ガムリン(Jake Gamelin)

ダイアログ|WwiseとUnreal Engineのナレーション

15.2.2022 - 作者 ジェイク・ガムリン(Jake Gamelin)

WAAPIとTTSでVOの仮アセットを自動作成する方法

はじめに...

17.6.2022 - 作者 Huang Chao (黄超)

ReaWwiseを使用してWAAPIをReaScript(Lua)で実行する

22.3.2023 - 作者 アンドリュー・コスタ

ReaWwiseの開発 パート2 - 実装

1.5.2023 - 作者 アンドリュー・コスタ

Unreal EngineのAudioLinkを使用する方法

はじめに...

2.7.2024 - 作者 合田 浩(HIROSHI GODA)