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")
}
}
}
}
Tree("26_Castello_Castelli_di_Bellinzona_Chatbot_Init") {
// Initialization
// --- Castelli di Bellinzona - Outro ---
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.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()
}
}
}
// -- 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.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") {
// --- Castelli di Bellinzona - Chatbot Burgen ---
Composite(Sequence) {
BTC.Show("Depthkit.VIDEOS.ChatbotBurgen1Cast")
BTC.Run("Depthkit.VIDEOS.ChatbotBurgen1Cast")
BTC.Hide("Depthkit.VIDEOS.ChatbotBurgen1Cast")
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Hide("MediaPlayer.VIDEOS.GeschichteCastelli_FIdle04")
BTC.Run("MediaPlayer.VIDEOS.ChatbotBurgenFidle_02")
// --- Castelli di Bellinzona - Chatbot Burgen ---
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")
}
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")
}
}
// -- 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")
Composite(Marathon) {
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_09")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_07")
BTC.Hide("MediaPlayer.VIDEOS.ChatbotBurgenFidle_12")
}
}
// -- 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()
// TODO: KI-Chatbot implementieren
// Temporaerer Workaround: Info-Message
BTC.Run("MediaPlayer.VIDEOS.CastelliBotoffeneF_FIdle02")
// ... Tree?
}
}
}
}
}
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")
}
}
}
Tree("26_Castello_Hide") {
Composite(Sequence) {
// Go to scene 2.7 Slideshow
BTC.SetStoryAVisited()
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
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,17 +263,17 @@
"intentSentences": [
"No.",
"Non so.",
"Non mi interessa."
"Non mi interessa.",
"Non sono sicuro.",
"Non sono sicura."
]
},
{
"intentID": "Castelli_di_Bellinzona-Geschichte_Castelli-U-4b",
"intentSentences": [
"Ci vuole una fortezza per difendere la citt\u00e0 dai nemici. ",
"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