Forum rules - please read before posting.

[Feature Request] Option to Define UI Element's Sounds Globally.

edited May 2016 in Engine development
Hi, all! I have a feature request, so, I'll go straight to the point:

Haven't you ever been bothered by the fact that you have to set the audio files for each and every one of your buttons or other UI elements? Wouldn't it be great if there was an area in the menu manager or sound manager to set the sounds for all your UI elements? After all, practically all games use a limited set of UI sounds. These sounds are usually the following:

Accept: a very definite positive sound, that makes it obvious you have made an important choice (e.g.: when you hit yes to proceed when combining or crafting).
Cancel: the negative counterpart of the Accept sound.
Move forward (menu): a subtle positive sound when you press a button to move forward a menu layer (e.g.: Pause to Configuration). 
Move backward (menu): a subtle negative sound when you press a button to move back a menu layer (e.g.: Configuration to Pause).
Scroll: A sound used while moving between a list of elements. Same as onHover or the Highlighted state in a unity UI button (e.g.: the beeping or clicking items in the inventory do while you browse them).
Error: the sound a disabled element does when the player tries to use it.

For the Accept and Cancel sounds, you could just check/tick a box in the menu manager to let AC know that the button will use either the Accept or Cancel sounds, else it would default to the other sounds. For the Scroll sound, depending on the control scheme, you could have the option to have it react to OnHover or Deselect state (Deselect works better for controller because when a menu opens there's always a button highlighted by default, using Deselect would avoid the sound triggering without player input). 

This way you would only need to set the sounds once and AC would know exactly when and which sounds to play for all elements in a less painful way. You could still use the sound slots in each element to override the global settings, so you could still customize the sounds of special elements.

Comments

  • Thank you for the clarity and detail - however, I'm a little hesitant.  For AC to remain user-friendly, it's important to keep the Editors as clutter-free as possible, and the complexity in assigning the various sound types to an element would outweigh the benefits.

    Instead I would suggest you incorporate these into Sound: Play Actions within ActionList assets.  Rather than assigning your sound clips into the Menu Manager, you could instead run these ActionLists when elements are clicked - Accept and Cancel would be the most common, I'd imagine.  An ActionList can run another on in parallel with the ActionList: Run Action.
  • edited May 2016
    Ummm... I don't know what you mean with clutter free. Guess I didn't really explain myself properly. What I mean is that there should be an area in the menu manager where you could have the 6 slots for the six common sound types, no more, then you could drop your preferred sounds in the slots and those would be used for all UI elements. The idea is that some script, under the hood, would then just take those sounds and play them in all UI elements without any real need for the user to do anything else (because all the buttons would share the same sounds). If a sound is not provided it would just be ignored. 

    This could even be further simplified by changing the hierarchy of sounds I showed above, by turning the Accept and Cancel I gave into Secondary Accept and Secondary Cancel sounds. So, at the top of the menu manager you could have a small unified group of sound slots like this:

    Accept sound
    Cancel sound
    Scroll/highlighted
    Error
    Secondary Accept( or optional Accept sound)
    Secondary Cancel( or optional Cancel sound)

    We must admit, most people developing for PC aren't gonna need more than 4 sounds, it's mostly people developing for consoles or keyboard only games that are ever going to be interested in more meaningful sounds (or anyone trying to mimic console quality). and by using Secondary sounds, anyone creating a new button could just tick the option "play secondary sound" in his/her new button and be done with it.

    PS: I realize now I should have named the topic -> Option to define UI element's Universal sounds.
  • By clutter-free, I mean keep the amount of options and properties an element has to a minimum, whereby it's still powerful yet not overwhelming.  While I do try to take on requests when possible, I also have a responsibility to limit "feature creep".

    I understand your request and indeed see how it could be useful, but you could also replace the audio file itself if you want to change the "global" e.g. Accept sound.
  • Wouldn't work quite as well if I had to replace the file all the time, I have a sound library whose organization I would prefer not to mutilate. Anyway, I was just saying it would've been nice to have it included. I was already using a similar approach. I created my own UI SFX manager which has the list of all the sounds to use, I have it attached to every UI canvas, then I just create the events in the UI elements which call the right sounds listed in the manager. That way, I only need to replace the sound from one place instead of changing the sound in each and everyone of my elements, and I don't have to replace any files, just change the selected file in the manager...

    Anyways, never mind...
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.