Page 1 of 1

WWise Audio Question ;)

Posted: Thu Jun 30, 2022 5:21 pm
by HawkX
Hi again! :)

Hope you are doing well!

My audio team has been asking me for suggestion on how to implement audio and voice over in the dialogues...

I have searched your forums... found 2 threads (1 from 2018 and 1 from earlier this year)
https://www.pixelcrushers.com/phpbb/vie ... ise#p29947

However I have zero knowledge on how to use the Sequencer... nor do I think we really "need" to for our project...
Maybe I should learn it... i don't know really since we use very classic "visual novel style" of dialogues

My audio team wanted to simply add some "type sound" WWise Event every time a letter appeared using the UnityUITypewriterEffect.cs --- I found that at line 241 there is a reference to the audiosource/audioclip, then on line 326 there is PlayCharacterAudio.. which is where I would fire up the Wwise Event... a single line would do it...

YOU DID however tell me a few months ago when I started at this job to let you know if i ever wanted to modify your source code ;)
https://www.pixelcrushers.com/phpbb/vie ... 268#p32268

So I am writing! hehehe...

As always, thank you very much for your time and have a nice day!!

Re: WWise Audio Question ;)

Posted: Thu Jun 30, 2022 8:05 pm
by Tony Li
Hi,

Two suggestions:

1. Consider using TextMesh Pro and TextMeshProTypewriterEffect instead of UI Text and UnityUITypewriterEffect. In most cases, TextMesh Pro looks much nicer than UI Text. (More info: TextMesh Pro support, or Dialogue UI Tutorial 1 for video example)

2. If you want to use Wwise instead of Unity's audio, make a subclass of the typewriter effect script (UnityUITypewriterEffect or TextMeshProTypewriterEffect) and override the PlayCharacterAudio() method. No need to directly modify source code.

Re: WWise Audio Question ;)

Posted: Thu Jun 30, 2022 8:11 pm
by HawkX
We already use textmeshpro everywhere... I was under the impression we were already using textmeshpro... we use it everywhere else in the game... and i DID install the dialogue system version of it as well...

perhaps its because the prefab model we duplicated to use/modify (VN Template Standard Dialogue UI) was not using it?

We actually hired a new programmer (that is much more knowledgeable than I am) so i'll ask him how to do the override :)

thanks again!!

Re: WWise Audio Question ;)

Posted: Thu Jun 30, 2022 8:17 pm
by Tony Li
None of the templates use TextMesh Pro since we can't guarantee that everyone's project has TextMesh Pro installed. The Dialogue UI Tutorial 1 video (linked in my previous reply) starts with converting a dialogue UI to TextMesh Pro.

I suspect the override will look roughly like this:

Code: Select all

using UnityEngine;
using PixelCrushers.DialogueSystem;

public class MyTypewriterEffect : TextMeshProTypewriterEffect
{
    public AK.Wwise.Event wwiseEvent;
    
    protected override void PlayCharacterAudio() //[EDIT: Fixed "public" to "protected"]
    {
        wwiseEvent.Post();
    }
}
Note: There's also a PlayCharacterAudio(char) that accepts a character as a parameter. If you want to play different sounds for different characters, you can override that method.

Re: WWise Audio Question ;)

Posted: Thu Jun 30, 2022 9:07 pm
by HawkX
Ohhh I always assumed when we "installed" the TMPro "plugin/version" of DialogueSystem that it was replacing the existing prefab with the TMPRO ones... :)

Alright I'll do that then!

As always Thank you so much for all of your help!

Re: WWise Audio Question ;)

Posted: Thu Jun 30, 2022 10:13 pm
by Tony Li
Happy to help!

Re: WWise Audio Question ;)

Posted: Thu Jul 07, 2022 5:06 pm
by HawkX
Hi again :)

I followed your video to changed my text to TMP... tested it ingame to make sure the new typerwriter for TMP was working fine...

then I copied your "override" class...

Then I was getting this error :
cannot change access modifiers when overriding 'protected' inherited member

a quick search told me to change it from public to protected override void PlayCharacterAudio()
which worked...
(right now im just trying to print some debug.logs)
but i dont know how to make it "get used"...
its not a monobehavior so i cannot put it on any gameobject...
yet it seems to be getting ignored (perhaps because the original PlayCharacteraudio starts with the following) :
if (audioClip == null || audioSource == null) return; ?
shouldnt the "override" skips all of it and simply run my own code instead?
or am I missing something :)

Sorry for being "noob" again... this is all pretty new for me!

EDIT : hopefully before you have answered :P
I found it!! i went back to my prefab, and replaced the typewriter tmp fx with this new script and it worked!! :)

Re: WWise Audio Question ;)

Posted: Fri Jul 08, 2022 8:53 am
by Tony Li
Great! I'm glad you got it working. Thanks for letting me know about the protected/public thing. I just fixed my code example above.