#Setting speech speed
1 messages · Page 1 of 1 (latest)
you can find a "Text Speed Multiplier" in PQ tab under Tools
it's defined in QuestSettings.cs
TextSpeedMultiplier
Found it! But, it appears to have no effect. I tried to set it to 0.1 from 1.0, still same speed.
you could extend the say command in powerquest extensions, let me write down a few lines
I did it for my game's trailer
in PowerQuestExtensions.cs
in the ICharacter interface, add
public Coroutine SayWithTime(string dialog, float time, int id = -1);
then in the Character class
IEnumerator CoroutineSayWithTime(string text, float time, int id = -1)
{
if (PowerQuest.Get.GetStopWalkingToTalk())
StopWalking();
if (PowerQuest.Get.GetSkippingCutscene())
yield break;
StartSay(text, id);
yield return PowerQuest.Get.WaitForDialog(time, m_dialogAudioSource, PowerQuest.Get.GetShouldSayTextAutoAdvance(), true);
EndSay();
}
public Coroutine SayWithTime(string dialog, float time, int id = -1)
{
if (m_coroutineSay != null)
{
PowerQuest.Get.StopCoroutine(m_coroutineSay);
EndSay();
PowerQuest.Get.OnSay();
}
if (CallbackOnSay != null)
CallbackOnSay.Invoke(dialog, -1);
m_coroutineSay = CoroutineSay(dialog, time);
return PowerQuest.Get.StartCoroutine(m_coroutineSay);
}
then just call SayWithTime("hello",50) and you'll get a sentence that will stay up for 50 seconds 😛 but beware because I don't know how this reacts with both the quest script editor (I guess you have to manually write the yield return) and the systemtext script to localize
so for voiceover and translation, if it's something that happens once or twice in the whole game you can make up for it manually, just add the same sentences in a script that's never being called in a normal say command and you'll get some IDs generated, and then pass those IDs to your SayWithTime