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") } }