In my case, I have multiple music tracks which I play in different levels. I like to keep the download size of the game as small as possible. Since I only need one of the tracks for the first few levels, I can download the rest of the music at runtime in the background.
The way I like to use it is have an "Asset Bundle" option in the Audio Origin dropdown, where I specify the audio clip and the asset bundle version number and link to retrieve it from. When I want to use the clip, MasterAudio can use www.LoadFromCacheOrDownload to load the clip from cache and use it similar to any other audio clip in a playlist. I would have to do some work on my end to ensure the asset bundle is cached and ready when the game needs it. If isn't cached then there should be a few option on how to handle it. There should be a way to specify a fallback clip to play if this clip isn't available. A bool flag can specify whether to start caching the asset bundle or not. And another flag would specify whether to queue the playback of the clip once download is complete. If this flag is set, then it will start playing this clip after the fallback clip has reached its end or start right away if there is no fallback. Lastly, there should be an flag for playing the clip from its source file rather than the asset bundle when playing the game in the Editor.
Part of that is helpful. A new Audio Origin type is a good idea. But this feels half-baked if you still have to "do some work on your end to ensure the asset bundle is cached and ready when the game needs it". I'd like to avoid you having to write ANY code for this. Can you think of a way?
Also, once the Asset Bundle has been downloaded, is it permanently in the cache, taking up room (audio memory)?
The problem is that the Asset Bundle needs to be downloaded ahead of time for the audio clip to be available when needed. Depending on the design of the game, the download can happen anytime and in any scene. Perhaps, you could have a separate component (sort of an Asset Bundle Manager) which the developer can use to trigger a download of a specified asset when ever they like.
Once the Asset Bundle has been downloaded, it is saved on the local storage and assets can be loaded and unloaded from it into the memory.
Post by aaronbrownsound on Oct 10, 2014 0:28:38 GMT
Brian, YOU ROCK!! Thanks for all the excellent support! Anyone considering this tool should buy it for sure
Here is my list in four priority groups:
NEEDED 17) Some kind of prefab like Dynamic SGC but it's never supposed to be brought into a scene, and you can bulk export Sound Groups out of it into MA or Dynamic SGC prefabs. OMG #1. Managing everything in one place then exporting them out into scenes as banks would be AMAZING!!!! 3) Make a UI to fire a custom event for SongEnded and SongChanged on PlaylistController. (GREAT for triggering stingers!) 4) Gapless Playlist Controller transition, using PlayScheduled (unity 4 only). 4a) Make gapless work with Resource files. Will have to load earlier. 6) Make bus voice limit (besides 1-voice) stop all older sounds to play a new one, if possible. 20) Do equal power fade option, especially for crossfading: Math examples: www.kvraudio.com/forum/viewtopic.php?t=347151, stackoverflow.com/questions/10168842/equal-power-crossfade-in-audio-unit Also, having 2 types of equal power fades. 1 that quickly fades out the old track to keep the first transient of the new track and one that is in the center to keep the power equal with similar material! 22) It would be helpful to have 10-20 groups in the sample project, or in master audio, that can be copied and used as templates! Things like, 50% chance play, 25% chance play, chromatic rising, volumes rising up, random volumes of -.5, random pitches of -.1 to +.1, Looping clips. HUGE WIN! 22a) Maybe even allow creation of these template groups in an easy way. 24) Add Common / best practices section to readme. 26) Make some newer videos since the UI has changed a lot. 27) A guide / wizard to help get a project that already has audio ready for MA.
IMPORTANT AND COOL TO HAVE 2) Make "Follow Caller" the default for EventSounds script. 5) Ability to save mixer settings changes during play. Study plugins: PlayEditor or PlayModePersist to figure out how. 8) Add a button to apply "Audio Source 3d settings" from template prefab to all (select?) Audio Sources in Scene Or reference an Audio Source template (one of many). 14) Add option to crossfade on chained loop groups. 16) Unity 5 Mixer Asset automation for Event Sounds 18) Add bus "folders" for Sound Groups if feasible (not likely but I'll check into it). 19) Add the ability to specify pitch change in cents. 23) Add "silent Variation" with no audio clip. Should take no voices up. 28) Make a footstep component. ALMOST put this in the top priority category...
WANT EVENTUALLY 1) Random start time option for a Variation. 11) Make a settable looped section (less than whole clip). (Especially if it can detect markers or play from certain markers in files. May be impossible since most are compressed files which may not retain markers) 12) Ability to play part of a sound for SFX (11 and 12 seem like a very similar task using markers) 15) Possibility to chose if the random pitch/volume occurs each time the sound is looped 25) Fix NGUI related bug. OnMouseOver fires from OnClick. Fix in EventSounds and Button Clicker scripts.
LOWER PRIORITY 21) Add "mechanim state changed" demo scene. What is this? 13) Add support for Unity 4.6 GUI events. Haven't used much of the unity GUI events yet. 7) Add "Ambient Mixer" component for various background sounds with "plays per hour" controls for each. 10) Support for AssetBundles. Create playlist from bundle or create Sound Groups, or a single Variation (new Audio Origin type?). I don't know what this even means... ha
_ Good to know about Unity 5 mixer and the fact it won't have voice limiting! Thanks again!
We are just about to roll MA into our game, which we have already been working on for a bit. So #27 would be nice to have so we can get started on the right foot. The rest of Aaron's list is pretty spot on! We are really looking forward to getting Master Audio implemented!