Update Castello, add Keystore

This commit is contained in:
Nadine Ganz 2025-08-04 16:37:18 +02:00
parent 095b6532b9
commit 664c3a0326
8 changed files with 2159 additions and 4349 deletions

Binary file not shown.

View File

@ -12,12 +12,7 @@
}
Composite(Sequence) {
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
RunTree("26_Castello_Castelli_di_Bellinzona_Intro")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli")
//RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Init")
//RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen")
}
}
@ -42,11 +37,18 @@
Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
// --- Castelli di Bellinzona - Intro ---
Composite(Sequence) {
BTC.Show("Depthkit.VIDEOS.Intro1CastellidiBe")
BTC.Run("Depthkit.VIDEOS.Intro1CastellidiBe")
BTC.Hide("Depthkit.VIDEOS.Intro1CastellidiBe")
Composite(Marathon) {
Composite(Sequence) {
BTC.Wait(1)
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
}
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Intro.2")
BTC.Run("MediaPlayer.VIDEOS.IntroF1")
}
BTC.Run("MediaPlayer.VIDEOS.IntroFidle2")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Intro-U-2a")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -78,12 +80,11 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
}
}
BTC.Show("Depthkit.VIDEOS.Intro10CastellidiB")
BTC.Run("Depthkit.VIDEOS.Intro10CastellidiB")
BTC.Hide("Depthkit.VIDEOS.Intro10CastellidiB")
BTC.Hide("MediaPlayer.VIDEOS.IntroFidle2")
BTC.Run("MediaPlayer.VIDEOS.IntroF3")
BTC.Run("MediaPlayer.VIDEOS.IntroFidle4")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Intro.11")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Intro.12")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Intro-U-4a")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -115,12 +116,48 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
}
}
BTC.Show("Depthkit.VIDEOS.Intro15CastellidiB")
BTC.Run("Depthkit.VIDEOS.Intro15CastellidiB")
BTC.Hide("Depthkit.VIDEOS.Intro15CastellidiB")
BTC.Hide("MediaPlayer.VIDEOS.IntroFidle4")
BTC.Run("MediaPlayer.VIDEOS.IntroF5")
BTC.Run("MediaPlayer.VIDEOS.IntroFidle6")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Intro.16")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Intro.18")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Intro-U-6")
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.Hide("MediaPlayer.VIDEOS.IntroFidle6")
BTC.Run("MediaPlayer.VIDEOS.IntroF7")
BTC.Run("MediaPlayer.VIDEOS.IntroFidle8")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Intro-U-8a")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Intro-U-8b")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -135,17 +172,17 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Castelli_di_Bellinzona.Intro.16")
BTC.CompareIntentID("Castelli_di_Bellinzona-Intro-U-8a")
BTC.ClearPossbileSpeechIntents()
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.SetBool("InitOffeneFragen", false)
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli")
}
Composite(Sequence) {
BTC.CompareIntentID("Castelli_di_Bellinzona.Intro.18")
BTC.CompareIntentID("Castelli_di_Bellinzona-Intro-U-8b")
BTC.ClearPossbileSpeechIntents()
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli")
BTC.SetBool("InitOffeneFragen")
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
}
}
@ -172,7 +209,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Hide("GO.GO.SpeechOptions")
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.SetBool("InitOffeneFragen", false)
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli")
}
Composite(Sequence) {
@ -183,8 +220,9 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Hide("GO.GO.SpeechOptions")
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli")
BTC.SetBool("InitOffeneFragen")
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
}
}
@ -198,34 +236,77 @@ Tree("26_Castello_Castelli_di_Bellinzona_Intro") {
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
BTC.SetBool("InitOffeneFragen", false)
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli")
}
}
// --- Castelli di Bellinzona - Outro ---
Composite(Marathon) {
BTC.Hide("GO.HINTS.SpeechErrorHint")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
BTC.Hide("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
}
BTC.Run("MediaPlayer.VIDEOS.OutroF1")
BTC.Run("MediaPlayer.VIDEOS.OutroFidle2")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Outro-U-2a")
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()
}
}
}
Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Init") {
// Initialization
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
}
}
BTC.Hide("MediaPlayer.VIDEOS.OutroFidle2")
Composite(Marathon) {
BTC.SetPosition("GO.XRInteractionHandsSetup.XROrigin", 52.097, 0, 20.562)
BTC.SetPosition("GO.HANDMENU", 53.319, 0, 20.829)
BTC.RotateToAngle("GO.XRInteractionHandsSetup.XROrigin", 90.0)
BTC.RotateToAngle("GO.HANDMENU", 90.0)
BTC.Run("MediaPlayer.VIDEOS.OutroF3")
Composite(Sequence) {
BTC.Wait(2.5)
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
}
}
BTC.SetStoryAVisited()
BTC.Run("LoadScene.NEXT.10SBB")
}
}
Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli") {
// --- Castelli di Bellinzona - Geschichte Castelli ---
Composite(Sequence) {
RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Init")
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_01")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_01")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_01")
BTC.Hide("MediaPlayer.VIDEOS.IntroFidle8")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_F1")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle02")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Geschichte_Castelli.2")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Geschichte_Castelli-U-2a")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -257,17 +338,13 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli") {
}
}
BTC.Hide("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle02")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_F3")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_05")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_05")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_05")
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_06")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_06")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_06")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Geschichte_Castelli.7")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Geschichte_Castelli.9")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Geschichte_Castelli-U-4a")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Geschichte_Castelli-U-4b")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Geschichte_Castelli-U-5")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -282,25 +359,25 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli") {
Composite(Race) {
Composite(Sequence) {
// User weiss es nicht
BTC.CompareIntentID("Castelli_di_Bellinzona.Geschichte_Castelli.7")
// User weiss es nicht (Nein)
BTC.CompareIntentID("Castelli_di_Bellinzona-Geschichte_Castelli-U-4a")
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen")
}
Composite(Sequence) {
// User weiss Antwort
BTC.CompareIntentID("Castelli_di_Bellinzona.Geschichte_Castelli.9")
BTC.CompareIntentID("Castelli_di_Bellinzona-Geschichte_Castelli-U-4b")
BTC.ClearPossbileSpeechIntents()
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_10")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_10")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_10")
// --- Castelli di Bellinzona - Geschichte Castelli Bot1 ---
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_Bot1_01")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_Bot1_01")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_Bot1_01")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot")
BTC.Hide("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_F5")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
}
Composite(Sequence) {
// Sonstiges, freie Antwort
BTC.CompareIntentID("Castelli_di_Bellinzona-Geschichte_Castelli-U-5")
BTC.ClearPossbileSpeechIntents()
BTC.Hide("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_F6")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
}
}
}
@ -308,7 +385,9 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli") {
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen")
BTC.Hide("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_F6")
BTC.Run("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
}
}
}
@ -320,37 +399,48 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli") {
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen")
}
}
}
}
Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen") {
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Hide("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
// --- Castelli di Bellinzona - Chatbot Burgen ---
Composite(Sequence) {
BTC.Show("Depthkit.VIDEOS.ChatbotBurgen1Cast")
BTC.Run("Depthkit.VIDEOS.ChatbotBurgen1Cast")
BTC.Hide("Depthkit.VIDEOS.ChatbotBurgen1Cast")
Composite(Marathon) {
BTC.SetPosition("GO.XRInteractionHandsSetup.XROrigin", 52.569, 0, 19.735)
BTC.SetPosition("GO.HANDMENU", 53.419, 0, 20.002)
BTC.RotateToAngle("GO.XRInteractionHandsSetup.XROrigin", 0)
BTC.RotateToAngle("GO.HANDMENU", 0)
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
BTC.Show("GO.Canvaspanoramatafelslideshow.SlideshowChatbot")
}
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF1")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
// TODO: U druckt Knopf
BTC.Wait(3)
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_Start")
BTC.Show("Depthkit.VIDEOS.ChatbotBurgen2Cast")
BTC.Run("Depthkit.VIDEOS.ChatbotBurgen2Cast")
BTC.Hide("Depthkit.VIDEOS.ChatbotBurgen2Cast")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF3")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_04")
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_ThinkStart")
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_ThinkEnd")
BTC.SynthesizeText("Per proteggere la città dagli attacchi nemici. Vuoi saperne di più?")
BTC.SynthesizeText("Per difendere la città dai nemici. Vuoi saperne di più?")
BTC.SpeechOutputEnded()
BTC.Show("Depthkit.VIDEOS.ChatbotBurgen4Cast")
BTC.Run("Depthkit.VIDEOS.ChatbotBurgen4Cast")
BTC.Hide("Depthkit.VIDEOS.ChatbotBurgen4Cast")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_04")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF6")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Chatbot_Burgen.5")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Chatbot_Burgen.7")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Chatbot_Burgen-U-7")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Chatbot_Burgen-U-10")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -365,15 +455,27 @@ Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen") {
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Castelli_di_Bellinzona.Chatbot_Burgen.5")
// Ja
BTC.CompareIntentID("Castelli_di_Bellinzona-Chatbot_Burgen-U-7")
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF8")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_09")
BTC.SynthesizeText("La valle era chiusa da una grande muro. In questo modo nessuno poteva attraversare i passi alpini del Gottardo, del San Bernardino, della Novena e del Lucomagno. Bellinzona si trovava su un'importante via commerciale tra il nord e il sud dell'Europa.")
BTC.SpeechOutputEnded()
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
Composite(Sequence) {
BTC.CompareIntentID("Castelli_di_Bellinzona.Chatbot_Burgen.7")
// Nein
BTC.CompareIntentID("Castelli_di_Bellinzona-Chatbot_Burgen-U-10")
BTC.ClearPossbileSpeechIntents()
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF11")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen_Entscheidung_Offene_Fragen")
}
}
}
@ -400,7 +502,15 @@ Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen") {
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Hide("GO.GO.SpeechOptions")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF8")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_09")
BTC.SynthesizeText("La valle era chiusa da una grande muro. In questo modo nessuno poteva attraversare i passi alpini del Gottardo, del San Bernardino, della Novena e del Lucomagno. Bellinzona si trovava su un'importante via commerciale tra il nord e il sud dell'Europa.")
BTC.SpeechOutputEnded()
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
Composite(Sequence) {
// Nein
@ -410,8 +520,12 @@ Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen") {
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Hide("GO.GO.SpeechOptions")
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenF11")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen_Entscheidung_Offene_Fragen")
}
}
}
@ -426,35 +540,17 @@ Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen") {
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot")
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
}
}
}
Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot") {
// --- Castelli di Bellinzona - Geschichte Castelli Bot ---
Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Burgen_Entscheidung_Offene_Fragen") {
// --- Castelli di Bellinzona - Chatbot Burgen - Entscheidung Zeile 301 ---
Composite(Sequence) {
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_Bot1_02")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_Bot1_02")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_Bot1_02")
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_ThinkStart")
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_ThinkEnd")
BTC.SynthesizeText("La valle veniva chiusa costruendo la cinta muraria della città e la Murata. In questo modo nessuno poteva attraversare i passi alpini del Gottardo, del San Bernardino, della Novena e del Lucomagno. Bellinzona si trovava su un'importante via commerciale tra il nord e il sud dell'Europa.")
BTC.SpeechOutputEnded()
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_Bot_02")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_Bot_02")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_Bot_02")
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_Bot_03")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_Bot_03")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_Bot_03")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Geschichte_Castelli_Bot.4")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Geschichte_Castelli_Bot.6")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Chatbot_Burgen-U-12a")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona-Chatbot_Burgen-U-12b")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
@ -469,15 +565,16 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot") {
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Castelli_di_Bellinzona.Geschichte_Castelli_Bot.4")
// Ja
BTC.CompareIntentID("Castelli_di_Bellinzona-Chatbot_Burgen-U-12a")
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_weitererzaehlen")
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
Composite(Sequence) {
BTC.CompareIntentID("Castelli_di_Bellinzona.Geschichte_Castelli_Bot.6")
// Nein
BTC.CompareIntentID("Castelli_di_Bellinzona-Chatbot_Burgen-U-12b")
BTC.ClearPossbileSpeechIntents()
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_weitererzaehlen")
// Go to Outro
}
}
}
@ -504,7 +601,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot") {
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Hide("GO.GO.SpeechOptions")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_weitererzaehlen")
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
Composite(Sequence) {
// Nein
@ -514,8 +611,7 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot") {
BTC.Hide("GO.GO.Option2Button")
BTC.Hide("GO.GO.SpeechButton")
BTC.Hide("GO.GO.SpeechOptions")
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_weitererzaehlen")
// Go To Outro
}
}
}
@ -530,135 +626,47 @@ Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_Bot") {
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
//RunTree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli")
RunTree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_weitererzaehlen")
RunTree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen")
}
}
}
}
Tree("26_Castello_Castelli_di_Bellinzona_KI_Audio_Chat_Castelli") {
// --- Castelli di Bellinzona - KI Audio Chat Castelli ---
Tree("26_Castello_Castelli_di_Bellinzona_Castelli_Bot_offene_Fragen") {
// --- Castelli di Bellinzona - Castelli Bot offene Fragen ---
Composite(Sequence) {
//RunTree("26_Castello_Castelli_di_Bellinzona_Chatbot_Init")
BTC.GetKeyDown("Return")
}
}
Tree("26_Castello_Castelli_di_Bellinzona_Geschichte_Castelli_weitererzaehlen") {
// --- Castelli di Bellinzona - Geschichte Castelli weitererzaehlen ---
Composite(Sequence) {
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_01")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_01")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_01")
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_02")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_02")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_02")
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_03")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_03")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_03")
Composite(Race) {
Composite(Sequence) {
// User stellt Chatbot eine Frage
// TODO: Button Chatbot starten drücken
// ... Tree?
BTC.GetKeyDown("Return")
RunTree("26_Castello_Hide")
}
Composite(Sequence) {
// User fragt nichts
BTC.Wait(10)
// TODO: Check, ob Button gedrueckt worden ist - wenn ja, fail
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_07")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_07")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_07")
// TODO: Chatbot antwortet
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_08")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_08")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_08")
Composite(Race) {
Composite(Sequence) {
// User stellt Chatbot eine Frage
// TODO: Button Chatbot starten drücken
// ... Tree?
BTC.GetKeyDown("Return")
}
Composite(Sequence) {
// User fragt 2tes Mal nichts
BTC.Wait(10)
// TODO: Check, ob Button gedrueckt worden ist - wenn ja, fail
BTC.Show("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_12")
BTC.Run("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_12")
BTC.Hide("Depthkit.VIDEOS.GeschichteCastelli_weitererzaehlen_12")
BTC.AddPossbileSpeechIntent("Castelli_di_Bellinzona.Geschichte_Castelli_weitererzaehlen.13")
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()
RunTree("26_Castello_Hide")
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Hide")
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(10)
BTC.CompareUserSpeechInputStarted(false)
// TODO: Check, ob Button gedrueckt worden ist - wenn ja, fail
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
RunTree("26_Castello_Hide")
}
// -- Race 3: User startet Chatbot
Composite(Sequence) {
// TODO: Button Chatbot starten drücken
BTC.GetKeyDown("Return")
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// ... Tree?
}
}
}
}
}
}
BTC.CompareBool("InitOffeneFragen")
Composite(Marathon) {
BTC.Hide("MediaPlayer.VIDEOS.IntroFidle8")
BTC.SetPosition("GO.XRInteractionHandsSetup.XROrigin", 52.569, 0, 19.735)
BTC.SetPosition("GO.HANDMENU", 53.419, 0, 20.002)
BTC.RotateToAngle("GO.XRInteractionHandsSetup.XROrigin", 0)
BTC.RotateToAngle("GO.HANDMENU", 0)
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
BTC.Show("GO.Canvaspanoramatafelslideshow.SlideshowChatbot")
}
}
Tree("26_Castello_Hide") {
Composite(Sequence) {
// Go to scene 2.7 Slideshow
BTC.SetStoryAVisited()
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
Composite(Marathon) {
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_09")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
}
}
// TODO: KI-Chatbot implementieren
// Temporaerer Workaround: Info-Message
BTC.Run("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
Composite(Marathon) {
BTC.Set("TextMeshPro.HINTS.SpeechErrorTitle", "text", "Coming soon")
BTC.Set("TextMeshPro.HINTS.SpeechErrorText", "text", "Offenes Gespräch mit Chatbot\n ist noch in Arbeit. Stay tuned!")
BTC.Show("GO.HINTS.SpeechErrorHint")
BTC.Run("Timeline.TIMELINES.TimelineCastelloCh_atbot_End")
}
BTC.Wait(7)
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Billboard : MonoBehaviour
{
[Header("Position")]
public float distanceFromCamera = 2.0f;
public Vector3 offset = Vector3.zero;
[Header("Smoothing")]
[Range(0.01f, 20f)]
public float moveSmoothSpeed = 5f;
[Range(0.01f, 20f)]
public float rotateSmoothSpeed = 5f;
private Transform mainCamera;
void Start()
{
if (Camera.main != null)
{
mainCamera = Camera.main.transform;
}
else
{
Debug.LogWarning("Main Camera not found.");
}
}
void LateUpdate()
{
if (mainCamera == null) return;
// Calculate target position in field of view
Vector3 targetPosition = mainCamera.position + mainCamera.forward * distanceFromCamera + mainCamera.TransformVector(offset);
transform.position = Vector3.Lerp(transform.position, targetPosition, moveSmoothSpeed * Time.deltaTime);
Vector3 directionToCamera = transform.position - mainCamera.position;
directionToCamera.y = 0f; // only horizontal orientation
if (directionToCamera.sqrMagnitude > 0.001f)
{
Quaternion targetRotation = Quaternion.LookRotation(directionToCamera);
transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, rotateSmoothSpeed * Time.deltaTime);
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 83a0fb9fd335d4dd7a8acec20f9a233d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -219,10 +219,6 @@
"Sono tristo di non aver conosciuto il mio nonno. "
]
},
{
"intentID": "Castelli_di_Bellinzona-Intro-U-4b",
"intentSentences": []
},
{
"intentID": "Castelli_di_Bellinzona-Intro-U-6",
"intentSentences": [
@ -267,7 +263,9 @@
"intentSentences": [
"No.",
"Non so.",
"Non mi interessa."
"Non mi interessa.",
"Non sono sicuro.",
"Non sono sicura."
]
},
{
@ -275,9 +273,7 @@
"intentSentences": [
"Ci vuole una fortezza per difendere la citt\u00e0 dai nemici.",
"Potrebbe essere per trovare rifugio.",
"Per la protezione.",
"Non sono sicuro.",
"Non sono sicura."
"Per la protezione."
]
},
{
@ -292,7 +288,7 @@
{
"intentID": "Castelli_di_Bellinzona-Chatbot_Burgen-U-7",
"intentSentences": [
"Si, certo.",
"S\u00ec, certo.",
"Certamente."
]
},
@ -308,7 +304,9 @@
{
"intentID": "Castelli_di_Bellinzona-Chatbot_Burgen-U-12a",
"intentSentences": [
"Si."
"S\u00ec.",
"S\u00ec, certo.",
"Certamente."
]
},
{

View File

@ -5,7 +5,7 @@ EditorBuildSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Scenes:
- enabled: 0
- enabled: 1
path: Assets/Scenes/0.0-Menu.unity
guid: c83d90128ed611646968487737573267
- enabled: 1
@ -17,25 +17,25 @@ EditorBuildSettings:
- enabled: 1
path: Assets/Scenes/2.0-SBB.unity
guid: 0492708372646415eb23036f23680178
- enabled: 0
- enabled: 1
path: Assets/Scenes/2.2-Geschaeft.unity
guid: 498707af75f244daa9eacd8a71c6ee5f
- enabled: 0
- enabled: 1
path: Assets/Scenes/2.6-Castello.unity
guid: 8554de5c9e3d141a1bee7985b31e8313
- enabled: 1
path: Assets/Scenes/3.0-SBB.unity
guid: a21f6e13e09234179a685c8f89b0e031
- enabled: 0
- enabled: 1
path: Assets/Scenes/3.2-Grotto1.unity
guid: b27cb7d9a21e8ee4e840d82d91ef4704
- enabled: 0
- enabled: 1
path: Assets/Scenes/3.2-Grotto2.unity
guid: 29eb141b9ba0d10498d9c1caf0961359
- enabled: 0
- enabled: 1
path: Assets/Scenes/3.2-Grotto3.unity
guid: e3d34354680716649befc361ed0ac6df
- enabled: 0
- enabled: 1
path: Assets/Scenes/4.0-Puschlav.unity
guid: d30b9a945a08543918f700fd6e5cd57e
m_configObjects:

View File

@ -146,6 +146,9 @@ PlayerSettings:
- {fileID: 0}
- {fileID: 0}
- {fileID: 0}
- {fileID: -8196854396901781169, guid: 1a4c68ca72a83449f938d669337cb305, type: 2}
- {fileID: 7708199778347151547, guid: 0f4832b23b368b643bc8a91696fbb473, type: 2}
- {fileID: 11400000, guid: f794167165c214ad18ff9cc20bddcafb, type: 2}
metroInputSource: 0
wsaTransparentSwapchain: 0
m_HolographicPauseOnTrackingLoss: 1
@ -268,7 +271,7 @@ PlayerSettings:
AndroidTargetDevices: 0
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
AndroidKeystoreName: Y:/FHGR/Viagg-io/01-doku/viaggio_pico.keystore
AndroidKeystoreName: '{inproject}: ../Keystore/viaggio_pico.keystore'
AndroidKeyaliasName: viaggio pico
AndroidEnableArmv9SecurityFeatures: 0
AndroidBuildApkPerCpuArchitecture: 0