コミュニティQ&A

Audiokineticのコミュニティ主導のQ&Aフォーラムへようこそ。ここはWwiseとStrataのユーザのみなさまがお互いに協力し合う場です。弊社チームによる直接のサポートをご希望の場合はサポートチケットページをご利用ください。バグを報告するには、Audiokinetic LauncherのBug Reportオプションをご利用ください。(Q&AフォーラムではBug Reportを受け付けておりませんのでご注意ください。専用のBug Reportシステムをご利用いただくことで、バグの報告が適切な担当部門に届き、修正される可能性が高まります。)

最適な回答を迅速に得られるよう、ご質問を投稿される際は以下のヒントをご参考ください。

  • 具体的に示す:何を達成したいのか、またはどんな問題に直面しているのかを具体的に示してください。
  • 重要な詳細情報を含める:Wwiseとゲームエンジンのバージョンやご利用のOSなど詳細情報を記載してください。
  • 試したことを説明する:すでに試してみたトラブルシューティングの手順を教えてください。
  • 事実に焦点を当てる:問題の技術的な事実を記載してください。問題に焦点を当てることで、ほかのユーザのみなさまが解決策を迅速に見つけやすくなります。

+1 支持
  • Wwise 2019.2.5 + UE4.2whatever (event based packaging enabled)

In most of my blueprints I'm assigning event names VIA strings (easier to swap event strings that way). Everything works great in the editor, but playing the game in standalone mode, only sounds with the events assigned directly (in a BP, or on the Ak component) will play. Interestingly enough, if I add an Ak PostEvent Action to my BP then assign it an event directly, that event will work when playing the game in standalone mode. The Action doesn't even need to be hooked up to play in order to work in standalone mode.

I'm guessing Unreal only packages events that are referenced on/ in a BP directly as to not bloat the build with "unused assets" when building or using standalone mode. Is this a build settings thing where I need to include the whole WwiseAudio folder?

It would be great to get some more documentation or videos from the AK team on how event based packaging works. The feature is great! But looks like some workflows don't work super well with it. Also it's unclear to me when events are being loaded; I'd assume it when the event is called, but this makes me think it might be different. Maybe adding an option in the Wwise profiler to see when an event is loaded/ unloaded would help?

A great feature would be an option to include all audio data in the WwiseAudio folder in my unreal project into builds in the Project Settings. Or maybe I just need an engineer to do that for me. But they are just as confused as I am and my bribe budget for them is running low.

Austin D. (110 ポイント) Feature Requests

回答 1

0 支持
If you want your game to always load every sound, that defeats the purpose of event-based packaging. If that's what you want, you're better off with the old Sound Bank system. You just create one big Sound Bank in Wwise, load the soundbank in your game at init, and voila! You can call any sound any time with a string.

Event-based packaging works on the idea of Unreal only loading exactly what sounds it needs, to save memory. So if an actor/component/etc.. has an AkAudioEvent loaded on it, it will load when the level loads, or when the object gets spawned, etc..

But maybe you like event based packaging most of the time, but you'd like to to things the old-fashioned way in some situations.

Here's some ideas:

use LoadObject to get the AkAudioEvent you need, when you need it. Then it will be loaded, and PostEvent will work.

UAkAudioEvent* Event = LoadObject(null, "Game/WwiseAudio/path/to/objectName.objectName")

You could hold events like these in a data structure, so you don't have to Load them every time. You could even implement some "garbage collection" to Unload events that haven't

been used in a while.

Another idea (less certain of this one, but it works in theory): Would be to simply use an AkSoundBank for some of your sounds. Create the banks in Wwise, then next time you sync assets in Unreal, you'll get the bank you created as an AkAudioBank, and you can load it in code at Initialization, or have it referenced by a blueprint that's instantiated in your level, and that should auto-load it.
Eric C. (320 ポイント)
TY for the reply, super funny it's a year after I initially asked this, but I appreciate the time put into the response and hope this can help anyone else that runs into a similar issue.

Using LoadObject in BPs should work, but seems cumbersome to upkeep as designs change, the team scales, scope increases. The classic game dev stuff where you can only keep so many plates spinning with the resources at hand.

The solution I came to on this was to divide my Events Tab into some macro workunits of directly referenced events and indirectly referenced events. Direct references work great with EBP in a build, since UE4 knows the file is getting used, so it needs to include it in a build.

Indirect references (Ex - two characters use the same anim, but you want to have different sounds for a whoosh based on character or weapon type or whatever, so you swap a piece of the event name) were placed in specific folders that got tied into Enumerator tags that are set on the character. With a specific tag, UE4 knows to build the assets in the folder if a character is included now. Similar to soundbanks, but less manual maintenance. If you swap a tag on a character, all the loading and event swapping should happen automatically. All it needs is a consistent naming convention.

There's probably a smarter way to do it! But this one works for my project. Good luck to anyone else that runs into a similar confusing thing!
...