598 lines
24 KiB
Plaintext

Tree("Root") {
Composite(Sequence) {
BTC.InitializeSpeechManager()
BTC.SetSpeechRecognitionLanguage("it-IT")
BTC.SetVoiceName("it-IT-FabiolaNeural")
Composite(Race) {
Composite(Sequence) {
// Error in Speech Service: Cancel BTC Trees
BTC.SpeechErrorOccured()
BTC.SetBool("error")
}
Composite(Sequence) {
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
RunTree("32_Grotto_Im_Grotto_Essen_Intro")
}
}
Composite(Sequence) {
BTC.CompareBool("error")
// Error Handling
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
BTC.Show("GO.GO.SpeechButton")
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Restart")
BTC.Show("GO.GO.Option1Button")
BTC.Run("NamedEventTrigger.GO.Option1Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
}
}
}
Tree("32_Grotto_Im_Grotto_Essen_Intro") {
// --- Im Grotto Essen - Intro ---
Composite(Sequence) {
Composite(Marathon) {
BTC.Run("StudioEventEmitter.STATIC.KuechenAmbi")
BTC.Run("StudioEventEmitter.STATIC.AmbiGarten")
}
BTC.Show("Depthkit.VIDEOS.Intro1ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Intro1ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Intro1ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Intro2ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Intro2ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Intro2ImGrottoesse")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Intro.3")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.ClearPossbileSpeechIntents()
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
}
}
BTC.Show("Depthkit.VIDEOS.Intro6ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Intro6ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Intro6ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Intro7ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Intro7ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Intro7ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Intro8ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Intro8ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Intro8ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Intro9ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Intro9ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Intro9ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Intro10ImGrottoess")
BTC.Run("Depthkit.VIDEOS.Intro10ImGrottoess")
BTC.Hide("Depthkit.VIDEOS.Intro10ImGrottoess")
// --- Im Grotto Essen - Zweite Bestellung ---
BTC.Show("Depthkit.VIDEOS.NachfrageKellner1I")
BTC.Run("Depthkit.VIDEOS.NachfrageKellner1I")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellner1I")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Zweite_Bestellung.2")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.ClearPossbileSpeechIntents()
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Fallback Button
Composite(Marathon) {
BTC.Show("GO.GO.SpeechButton")
BTC.Set("TextMeshPro.GO.Option1Button", "text", "una gazzosa")
BTC.Show("GO.GO.Option1Button")
}
BTC.Run("NamedEventTrigger.GO.Option1Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
}
}
// --- Im Grotto Essen - Nachfrage Kellner Essen ---
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerEs_01")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerEs_01")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerEs_01")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Nachfrage_Kellner_Essen.2")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Nachfrage_Kellner_Essen.3")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Nachfrage_Kellner_Essen.4")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
// Intent erkannt
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Im_Grotto_essen.Nachfrage_Kellner_Essen.2")
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("ChoosedRisotto")
}
Composite(Sequence) {
BTC.CompareIntentID("Im_Grotto_essen.Nachfrage_Kellner_Essen.3")
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("ChoosedPizochen")
}
Composite(Sequence) {
BTC.CompareIntentID("Im_Grotto_essen.Nachfrage_Kellner_Essen.4")
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("ChoosedInsalata")
}
}
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
// --- Im Grotto Essen - Nachfrage Kellner Unklar ---
// SpeechIntentRecognized Failed: kein Intent erkannt
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_01")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_01")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_01")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
Composite(Sequence) {
BTC.UserStartedSpeechInput()
BTC.SpeechIntentRecognized()
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Im_Grotto_essen.Nachfrage_Kellner_Essen.2")
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("ChoosedRisotto")
}
Composite(Sequence) {
BTC.CompareIntentID("Im_Grotto_essen.Nachfrage_Kellner_Essen.3")
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("ChoosedPizochen")
}
Composite(Sequence) {
BTC.CompareIntentID("Im_Grotto_essen.Nachfrage_Kellner_Essen.4")
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("ChoosedInsalata")
}
}
}
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
BTC.CompareUserSpeechInputStarted(true)
}
}
}
// Selector 3: Fallback Button
Composite(Sequence) {
Composite(Marathon) {
BTC.Show("GO.GO.SpeechButton")
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Risotto")
BTC.Show("GO.GO.Option1Button")
BTC.Set("TextMeshPro.GO.Option2Button", "text", "Pizochen")
BTC.Show("GO.GO.Option2Button")
BTC.Set("TextMeshPro.GO.Option3Button", "text", "Insalata")
BTC.Show("GO.GO.Option3Button")
}
Composite(Race) {
Composite(Sequence) {
// Risotto
BTC.Run("NamedEventTrigger.GO.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option3Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.Option3Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
BTC.SetBool("ChoosedRisotto")
}
Composite(Sequence) {
// Pizochen
BTC.Run("NamedEventTrigger.GO.Option2Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option3Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.Option3Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
BTC.SetBool("ChoosedPizochen")
}
Composite(Sequence) {
// Insalata
BTC.Run("NamedEventTrigger.GO.Option3Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.Option3Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
BTC.SetBool("ChoosedInsalata")
}
}
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Fallback Button
Composite(Sequence) {
Composite(Marathon) {
BTC.Show("GO.GO.SpeechButton")
BTC.Set("TextMeshPro.GO.Option1Button", "text", "Risotto")
BTC.Show("GO.GO.Option1Button")
BTC.Set("TextMeshPro.GO.Option2Button", "text", "Pizochen")
BTC.Show("GO.GO.Option2Button")
BTC.Set("TextMeshPro.GO.Option3Button", "text", "Insalata")
BTC.Show("GO.GO.Option3Button")
}
Composite(Race) {
Composite(Sequence) {
// Risotto
BTC.Run("NamedEventTrigger.GO.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option3Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.Option3Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
BTC.SetBool("ChoosedRisotto")
}
Composite(Sequence) {
// Pizochen
BTC.Run("NamedEventTrigger.GO.Option2Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option3Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.Option3Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
BTC.SetBool("ChoosedPizochen")
}
Composite(Sequence) {
// Insalata
BTC.Run("NamedEventTrigger.GO.Option3Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.GO.Option2Button")
BTC.Hide("GO.GO.Option1Button")
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.Option3Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Show("GO.GO.Home")
BTC.Hide("GO.GO.SpeechOptions")
BTC.SetBool("ChoosedInsalata")
}
}
}
}
}
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_03")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_03")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_03")
BTC.Wait(5)
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_04")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_04")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_04")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Nachfrage_Kellner_unklar.5")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.ClearPossbileSpeechIntents()
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
}
}
// Getränke hinstellen fuer User und Franscesca
BTC.Show("GO.INTERACTABLES.GazosaMandarina")
BTC.Show("GO.INTERACTABLES.Tazzin")
BTC.Show("GO.INTERACTABLES.Gazosa")
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_09")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_09")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_09")
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_10")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_10")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_10")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Nachfrage_Kellner_unklar.11")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.ClearPossbileSpeechIntents()
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
}
}
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_15")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_15")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_15")
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_16")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_16")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_16")
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_18")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_18")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_18")
Composite(Marathon) {
BTC.Show("GO.INTERACTABLES.PizochenFrancesca")
Composite(Race) {
Composite(Sequence) {
BTC.CompareBool("ChoosedPizochen")
BTC.Show("GO.INTERACTABLES.PizochenUser")
}
Composite(Sequence) {
BTC.CompareBool("ChoosedInsalata")
BTC.Show("GO.INTERACTABLES.InsalataUser")
}
Composite(Sequence) {
BTC.CompareBool("ChoosedRisotto")
BTC.Show("GO.INTERACTABLES.RisottoUser")
}
}
}
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_22")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_22")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_22")
BTC.Show("Depthkit.VIDEOS.NachfrageKellnerun_23")
BTC.Run("Depthkit.VIDEOS.NachfrageKellnerun_23")
BTC.Hide("Depthkit.VIDEOS.NachfrageKellnerun_23")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Nachfrage_Kellner_unklar.24")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.ClearPossbileSpeechIntents()
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
}
}
// --- Im Grotto Essen - Outro ---
Composite(Marathon) {
BTC.SetPosition("GO.XRInteractionHandsSetup.XROrigin", -1.14, 0, 1.698)
BTC.SetPosition("GO.HANDMENU", -1.14, 0, 1.698)
BTC.RotateToAngle("GO.XRInteractionHandsSetup.XROrigin", 60.0)
BTC.RotateToAngle("GO.HANDMENU", 60.0)
}
BTC.Show("Depthkit.VIDEOS.Outro1ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Outro1ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Outro1ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Outro2ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Outro2ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Outro2ImGrottoesse")
BTC.AddPossbileSpeechIntent("Im_Grotto_essen.Outro.3")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.ClearPossbileSpeechIntents()
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
}
}
BTC.Show("Depthkit.VIDEOS.Outro6ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Outro6ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Outro6ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Outro7ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Outro7ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Outro7ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Outro8ImGrottoesse")
BTC.Run("Depthkit.VIDEOS.Outro8ImGrottoesse")
BTC.Hide("Depthkit.VIDEOS.Outro8ImGrottoesse")
BTC.Show("Depthkit.VIDEOS.Outro10ImGrottoess")
BTC.Run("Depthkit.VIDEOS.Outro10ImGrottoess")
BTC.Hide("Depthkit.VIDEOS.Outro10ImGrottoess")
RunTree("32_Grotto_Hide")
}
}
Tree("32_Grotto_Hide") {
Composite(Sequence) {
// Go to scene 1.0 SBB
BTC.SetStoryBVisited()
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}