Hi all!
So, I'm really digging the new music handling from 1.51. My composer and I are chatting about how we're going to deal with music in Arkhangel, and had some requests to expand the music playlists a little more.
Right now, the Music Playlist/Storage is super high-level, which is awesome, but we wanted to see if we could get a little more micro with it. Our idea is that each scene would have it's own little container playlist that could be fully randomized and then turned off when going into a different scene.
The idea is that in addition to having "Add new music clip" in the Music Storage window, we would also have "Add new music container" (or something like that) which would, essentially be another playlist that you could add an intro cue, several short phrases/loops that could be randomized, and possibly a resolve/ending cue for a specific scene...all in one location. Now, we can almost get there right now, although it takes a lot of elbow grease to make it happen, plus we don't get true randomization. It would be really awesome to have one call where you could setup a container that has all cues for one scene wrapped up into single place and can be triggered once rather that having a spaghetti of actionlists that are triggered all over the place.
I know it's a pretty specific ask and you have tons of stuff on your plate, but this would be really awesome to give more dynamics to music in our title. There's a lot of exploration with Arkhangel, so having more randomization with music calls would be really great. Keeps the music from being too repetitive and predictable.
Thanks a bunch!
-Zack Q
Comments
To get the Music Engine, you just need:
Music music = KickStarter.stateHandler.GetMusicEngine ();
And the Scripting Guide's entry for the Music Engine is here.
I can certainly look to make the current music Action work with parameters - which will allow you to create a generic chain of "Intro", "Loop", "Outro" chain of Actions in an ActionList, that you can then call whenever you want - and set which tracks are run at the time that you call the ActionList.