SBB Szenenwahl

This commit is contained in:
Nadine Ganz 2025-07-16 12:09:05 +02:00
parent dde31bdf88
commit 768bd1f312
6 changed files with 206082 additions and 901 deletions

View File

@ -94,7 +94,7 @@ Tree("05_Tutorial") {
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(10)
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
@ -251,7 +251,7 @@ Tree("05_Tutorial") {
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(10)
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()

View File

@ -146,8 +146,6 @@ Tree("10_SBB_Zugabteil_Intro") {
Tree("10_SBB_Zugabteil_Szenenwahl_Selection") {
// --- Zugabteil - Szenenwahl Selection ---
Composite(Sequence) {
BTC.SetBool("handmenu_active", false)
Composite(Selector) {
Composite(Sequence) {
// Story A besucht
@ -157,48 +155,18 @@ Tree("10_SBB_Zugabteil_Szenenwahl_Selection") {
Composite(Sequence) {
// Story A + B besucht
BTC.StoryBVisited()
Composite(Selector) {
Composite(Sequence) {
// Story A + B + C besucht
BTC.StoryCVisited()
// --- Zugabteil - Story Ende ---
BTC.Show("Depthkit.VIDEOS.StoryEnde1Zugabtei")
BTC.Run("Depthkit.VIDEOS.StoryEnde1Zugabtei")
BTC.Hide("Depthkit.VIDEOS.StoryEnde1Zugabtei")
// --- ENDE ---
}
Composite(Sequence) {
// Story A + B besucht
// Story C nicht besucht
// --- Zugabteil - Repetition Intro C ---
BTC.Show("Depthkit.VIDEOS.RepetitionIntroC1Z")
BTC.Run("Depthkit.VIDEOS.RepetitionIntroC1Z")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
}
// --- Story Ende ---
BTC.Run("MediaPlayer.VIDEOS.StoryEndeF1")
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.00Menu")
}
Composite(Sequence) {
// Story A besucht
// Story B nicht besucht
BTC.StoryCVisited()
// Story A + C besucht
// Story B nicht besucht
// --- Zugabteil - Repetition Intro B ---
BTC.Show("Depthkit.VIDEOS.RepetitionIntroB1Z")
BTC.Run("Depthkit.VIDEOS.RepetitionIntroB1Z")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
Composite(Sequence) {
// Story A besucht
// Story B + C nicht besucht
// --- Zugabteil - Repetition Intro BC ---
BTC.Show("Depthkit.VIDEOS.RepetitionIntroBC1")
BTC.Run("Depthkit.VIDEOS.RepetitionIntroBC1")
// --- Repetition Intro B ---
BTC.Run("MediaPlayer.VIDEOS.RepetitionIntroBF1")
BTC.Run("MediaPlayer.VIDEOS.RepetitionIntroBFi_2")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
}
@ -208,71 +176,17 @@ Tree("10_SBB_Zugabteil_Szenenwahl_Selection") {
// Story A nicht besucht
BTC.StoryBVisited()
Composite(Selector) {
Composite(Sequence) {
// Story B besucht
// Story A nicht besucht
BTC.StoryCVisited()
// Story B + C besucht
// Story A nicht besucht
// --- Zugabteil - Repetition Intro A ---
BTC.Show("Depthkit.VIDEOS.RepetitionIntroA1Z")
BTC.Run("Depthkit.VIDEOS.RepetitionIntroA1Z")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
Composite(Sequence) {
// Story B besucht
// Story A + C nicht besucht
// --- Zugabteil - Repetition Intro AC ---
BTC.Show("Depthkit.VIDEOS.RepetitionIntroAC1")
BTC.Run("Depthkit.VIDEOS.RepetitionIntroAC1")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
}
}
Composite(Sequence) {
// Story A + B nicht besucht
BTC.StoryCVisited()
// Story C besucht
// Story A + B nicht besucht
// --- Zugabteil - Repetition Intro AB ---
BTC.Show("Depthkit.VIDEOS.RepetitionIntroAB1")
BTC.Run("Depthkit.VIDEOS.RepetitionIntroAB1")
// Story B besucht
// Story A nicht besucht
// --- Repetition Intro A ---
BTC.Run("MediaPlayer.VIDEOS.RepetitionIntroAF1")
BTC.Run("MediaPlayer.VIDEOS.RepetitionIntroAFi_2")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
Composite(Sequence) {
// Nichts besucht
Composite(Selector) {
Composite(Sequence) {
BTC.CompareRepetitionVisitedCounter(0)
// --- Zugabteil - Intro ABC erste ---
BTC.Show("Depthkit.VIDEOS.IntroABCerste1Zuga")
BTC.Run("Depthkit.VIDEOS.IntroABCerste1Zuga")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
Composite(Sequence) {
// Erste Wiederholung
BTC.CompareRepetitionVisitedCounter(1)
// --- Zugabteil - Intro ABC zweite ---
BTC.Show("Depthkit.VIDEOS.IntroABCzweite1Zug")
BTC.Run("Depthkit.VIDEOS.IntroABCzweite1Zug")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
Composite(Sequence) {
// Zweite Wiederholung
BTC.CompareRepetitionVisitedCounter(2)
// --- Zugabteil - Intro ABC dritte ---
BTC.Show("Depthkit.VIDEOS.IntroABCdritte1Zug")
BTC.Run("Depthkit.VIDEOS.IntroABCdritte1Zug")
BTC.SetBool("handmenu_active")
RunTree("10_SBB_Zugabteil_Szenenwahl")
}
}
// Story A + B nicht besucht
RunTree("10_SBB_Zugabteil_Intro")
}
} // First Selector
} // Sequence
@ -281,6 +195,10 @@ Tree("10_SBB_Zugabteil_Szenenwahl_Selection") {
Tree("10_SBB_Zugabteil_Szenenwahl") {
// --- Zugabteil - Szenenwahl ---
Composite(Sequence) {
Composite(Marathon) {
BTC.Hide("MediaPlayer.VIDEOS.RepetitionIntroAFi_2")
BTC.Hide("MediaPlayer.VIDEOS.RepetitionIntroBFi_2")
}
BTC.Run("MediaPlayer.VIDEOS.SzenenwahlF1")
BTC.Run("MediaPlayer.VIDEOS.SzenenwahlFidle2")
@ -338,271 +256,22 @@ Tree("10_SBB_Zugabteil_Szenenwahl") {
BTC.Run("MediaPlayer.VIDEOS.SzenenwahlF3")
BTC.Run("MediaPlayer.VIDEOS.SzenenwahlFidle4")
// TODO: Race mit VR Brille und Handy
// Race
// -- Handmenu Start
Composite(Marathon) {
BTC.Show("GO.HANDMENU.SpeechButton")
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "picnic")
BTC.Show("GO.HANDMENU.Option1Button")
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "grotto")
BTC.Show("GO.HANDMENU.Option2Button")
}
Composite(Race) {
Composite(Sequence) {
// picnic
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
Composite(Marathon) {
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
// Load Scene: Story A Picknicken
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.20SBB")
}
Composite(Sequence) {
// grotto
BTC.Run("NamedEventTrigger.HANDMENU.Option2Button")
Composite(Marathon) {
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
// Load Scene: Story B Grotto
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.30SBB")
}
}
// -- Handmenu End
// TODO: Check if necessary
//BTC.Hide("MediaPlayer.VIDEOS.SzenenwahlFidle4")
}
}
Tree("10_SBB_Zugabteil_Szenenwahl_old") {
// ----
BTC.AddPossbileSpeechIntent("Zugabteil.Szenenwahl.3")
BTC.AddPossbileSpeechIntent("Zugabteil.Szenenwahl.5")
BTC.AddPossbileSpeechIntent("Zugabteil.Szenenwahl.7")
BTC.StartSpeechIntentRecognition()
Composite(Race) {
// -- Race 1: User sagt etwas
Composite(Sequence) {
BTC.UserStartedSpeechInput()
Composite(Selector) {
// -- Selector 1: Intent erkannt
Composite(Sequence) {
BTC.SpeechIntentRecognized()
BTC.AbortEventListener("NamedGrabEvent.INTERACTABLES.VRBrille")
// Intent erkannt
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Zugabteil.Szenenwahl.3")
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story A Picknicken
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.20SBB")
}
Composite(Sequence) {
BTC.CompareIntentID("Zugabteil.Szenenwahl.5")
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story B Grotto
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.30SBB")
}
Composite(Sequence) {
BTC.CompareIntentID("Zugabteil.Szenenwahl.7")
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story C Wandern
// ...
//BTC.SetStoryCVisited()
RunTree("10_SBB_Hide_Videos")
}
}
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.AbortEventListener("NamedGrabEvent.INTERACTABLES.VRBrille")
// Fallback: nicht verstanden, wiederholen
// ...
BTC.SynthesizeText("Temo di non averla capita. Può ripetere, per favore? In alternativa, può usare l'aiuto sul cellulare che tiene nella mano sinistra.")
BTC.SpeechOutputEnded()
BTC.StartSpeechIntentRecognition()
Composite(Race) {
Composite(Sequence) {
// Option 1: Spracheingabe
BTC.UserStartedSpeechInput()
BTC.SpeechIntentRecognized()
Composite(Race) {
Composite(Sequence) {
BTC.CompareIntentID("Zugabteil.Szenenwahl.3")
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story A Picknicken
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.20SBB")
}
Composite(Sequence) {
BTC.CompareIntentID("Zugabteil.Szenenwahl.5")
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story B Grotto
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.30SBB")
}
Composite(Sequence) {
BTC.CompareIntentID("Zugabteil.Szenenwahl.7")
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story C Wandern
// ...
//BTC.SetStoryCVisited()
RunTree("10_SBB_Hide_Videos")
}
}
}
Composite(Sequence) {
// Option 2: Handmenu
Composite(Marathon) {
BTC.Show("GO.HANDMENU.SpeechButton")
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "picnic")
BTC.Show("GO.HANDMENU.Option1Button")
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "grotto")
BTC.Show("GO.HANDMENU.Option2Button")
BTC.Set("TextMeshPro.HANDMENU.Option3Button", "text", "escursione")
BTC.Show("GO.HANDMENU.Option3Button")
}
Composite(Race) {
Composite(Sequence) {
// picnic
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
Composite(Marathon) {
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story A Picknicken
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.20SBB")
}
Composite(Sequence) {
// grotto
BTC.Run("NamedEventTrigger.HANDMENU.Option2Button")
Composite(Marathon) {
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story B Grotto
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.30SBB")
}
Composite(Sequence) {
// escursione
BTC.Run("NamedEventTrigger.HANDMENU.Option3Button")
Composite(Marathon) {
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story C Wandern
// ...
//BTC.SetStoryCVisited()
RunTree("10_SBB_Hide_Videos")
}
} // Ende Race Buttons
} // Ende Option 2 Handmenu
} // Ende Race Optionen
} // Ende Sequence
} // Ende Selector
} // Ende Sequence 1
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(10)
BTC.CompareUserSpeechInputStarted(false)
Decorator(Inverter) {
BTC.CompareBool("handmenu_active")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
BTC.AbortEventListener("NamedGrabEvent.INTERACTABLES.VRBrille")
BTC.IncrementRepetitionVisitedCounter()
RunTree("10_SBB_Hide_Videos")
RunTree("10_SBB_Zugabteil_Szenenwahl_Selection")
}
// -- Race 3: VR Brille in die Hand nehmen
// VR Brille nehmen
Composite(Sequence) {
BTC.Run("NamedGrabEvent.INTERACTABLES.VRBrille")
Decorator(Inverter) {
BTC.CompareBool("handmenu_active")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
BTC.IncrementRepetitionVisitedCounter()
// --- Bilder Bergell ---
//BTC.Run("LoadScene.NEXT.35Slideshow")
RunTree("10_SBB_Hide_Videos")
RunTree("10_SBB_Zugabteil_Szenenwahl_Selection")
// TODO: Minigame starten
// Nach Minigame: zuruck zu Szenenwahl
}
// -- Race 4: Hand Menu
// Szenenwahl per Handmenu
Composite(Sequence) {
BTC.CompareBool("handmenu_active")
Composite(Marathon) {
BTC.Show("GO.HANDMENU.SpeechButton")
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "picnic")
BTC.Show("GO.HANDMENU.Option1Button")
BTC.Set("TextMeshPro.HANDMENU.Option2Button", "text", "grotto")
BTC.Show("GO.HANDMENU.Option2Button")
BTC.Set("TextMeshPro.HANDMENU.Option3Button", "text", "escursione")
BTC.Show("GO.HANDMENU.Option3Button")
}
Composite(Race) {
@ -612,18 +281,12 @@ Tree("10_SBB_Zugabteil_Szenenwahl_old") {
Composite(Marathon) {
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story A Picknicken
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.20SBB")
@ -634,61 +297,21 @@ Tree("10_SBB_Zugabteil_Szenenwahl_old") {
Composite(Marathon) {
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story B Grotto
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.30SBB")
}
Composite(Sequence) {
// escursione
BTC.Run("NamedEventTrigger.HANDMENU.Option3Button")
} // Race Buttons
} // Handmenu Ende
}
Composite(Marathon) {
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option1Button")
BTC.AbortEventListener("NamedEventTrigger.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option2Button")
BTC.Hide("GO.HANDMENU.Option3Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
// Load Scene: Story C Wandern
// ...
//BTC.SetStoryCVisited()
RunTree("10_SBB_Hide_Videos")
}
}
}
} // Ende Race
}
}
Tree("10_SBB_Hide_Videos") {
Composite(Marathon) {
BTC.Hide("Depthkit.VIDEOS.RepetitionIntroC1Z")
BTC.Hide("Depthkit.VIDEOS.RepetitionIntroB1Z")
BTC.Hide("Depthkit.VIDEOS.RepetitionIntroBC1")
BTC.Hide("Depthkit.VIDEOS.RepetitionIntroA1Z")
BTC.Hide("Depthkit.VIDEOS.RepetitionIntroAC1")
BTC.Hide("Depthkit.VIDEOS.RepetitionIntroAB1")
BTC.Hide("Depthkit.VIDEOS.IntroABCerste1Zuga")
BTC.Hide("Depthkit.VIDEOS.IntroABCzweite1Zug")
BTC.Hide("Depthkit.VIDEOS.IntroABCdritte1Zug")
// TODO: Check if necessary
//BTC.Hide("MediaPlayer.VIDEOS.SzenenwahlFidle4")
}
}

View File

@ -1090,26 +1090,6 @@ public class BTC : MonoBehaviour {
}
}
[Task]
public void StoryCVisited()
{
if (Task.getState == NodeState.FirstRun)
{
if (VisitedStories.StoryC)
{
Debug.Log("Story C was visited.");
Task.SetSucceeded();
return;
}
else
{
Debug.Log("Story C was not visited.");
Task.SetFailed();
return;
}
}
}
[Task]
public void SetStoryAVisited()
{
@ -1134,56 +1114,12 @@ public class BTC : MonoBehaviour {
}
}
[Task]
public void SetStoryCVisited()
{
if (Task.getState == NodeState.FirstRun)
{
VisitedStories.StoryC = true;
Debug.Log($"Set Visited Story C = {VisitedStories.StoryC}");
Task.SetSucceeded();
return;
}
}
[Task]
public void IncrementRepetitionVisitedCounter()
{
if (Task.getState == NodeState.FirstRun)
{
VisitedStories.RepetitionCounter++;
Debug.Log($"Set Visited Repetition Counter = {VisitedStories.RepetitionCounter}");
Task.SetSucceeded();
return;
}
}
[Task]
public void CompareRepetitionVisitedCounter(int number)
{
if (Task.getState == NodeState.FirstRun)
{
if (VisitedStories.RepetitionCounter == number)
{
Debug.Log($"Visited Repetition Counter equals {number}");
Task.SetSucceeded();
return;
}
else
{
Debug.Log($"Visited Repetition Counter not equals {number}");
Task.SetFailed();
return;
}
}
}
[Task]
public void NoStoriesVisited()
{
if (Task.getState == NodeState.FirstRun)
{
if (!VisitedStories.StoryA && !VisitedStories.StoryB && !VisitedStories.StoryC)
if (!VisitedStories.StoryA && !VisitedStories.StoryB)
{
Task.SetSucceeded();
return;

View File

@ -91,7 +91,6 @@ public class NamedAVProMediaPlayer : ComponentHandler
if (_mediaPlayer.Control.IsFinished())
{
_mediaPlayer.CloseMedia();
_mediaPlayer.ForceDispose();
Task.SetSucceeded();
return;
}
@ -104,7 +103,6 @@ public class NamedAVProMediaPlayer : ComponentHandler
switch (nodeState)
{
case NodeState.FirstRun:
gameObject.SetActive(true);
if (_mediaPlayer != null)
{
_mediaPlayer.OpenMedia(new MediaPath(videoPath, MediaPathType.RelativeToPersistentDataFolder), autoPlay: false);
@ -130,8 +128,6 @@ public class NamedAVProMediaPlayer : ComponentHandler
_mediaPlayer.Stop();
_mediaPlayer.CloseMedia();
}
_mediaPlayer.ForceDispose();
}
Task.SetSucceeded();

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,4 @@ public static class VisitedStories
{
public static bool StoryA = false;
public static bool StoryB = false;
public static bool StoryC = false;
public static int RepetitionCounter = 0;
}