Update slideshow Puschlav

This commit is contained in:
Nadine Ganz 2025-07-28 20:39:14 +02:00
parent f7e7c0c8b8
commit 774cf722a8
57 changed files with 6945 additions and 6605 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 520200da4f0ec417dbb2587ecb944594
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 9d94e0386d6a94697b7fc74ea29d6d76
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 777946b42230141e6b1d61dbe0e363fc
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: e97efd9109fdd44d982b54890815714a
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 8e7e85c4d1fb8420681596aed2d61474
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 555e42cb99d8e4c10955be6397f4d35c
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 69beb963378c24bf5a16a0d161c473bf
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: e8c26ec2017c84107ba3b17d1c25750e
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 4ae482b18ed9b47c082ffd3c46c03861
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: c7d49f1a586be4cb592f872abb3b6bca
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 9b7cd3b6db72d4d368ed4986950097dc
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 278dd976a04a74f89806b4bcb13cd341
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 32197ed85cccc404286bb5ee87cd75f5
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 6046d87321ac84fd28cd066c00293b90
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 0014d0674deab4c69a58bfa61de8fb80
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 3d11b82d0cce149289e52d73a45e9b5f
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 7204ed64163a74da6b3561f481c3f65c
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: e9733678a1fc54ec7b378503740b91c7
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 67a6345fa4171440d9c28f2241ab4953
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 06b126809972042d29c01dc46815819d
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 2534d41f5001d4dc18fb5ffaf0e3bacb
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: bb67aa9f184e24dc1960ad0e079a2711
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 02520ea4c846c4fc1a3386b114fcac5c
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: c22dfe72b2d244fe18ad66379e2bdc80
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 2351baa42407c4cfeb10a5387f774a28
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: 62ec488378f0f4ecf8353d8f8c46db73
AudioImporter:
externalObjects: {}
serializedVersion: 7
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,10 +1,851 @@
Tree("Root") {
Composite(Sequence) {
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("StereoSlideshow.XRInteractionHandsSetup.19099")
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) {
RunTree("40_Puschlav_Story_C_Puschlav")
}
}
Composite(Sequence) {
BTC.CompareBool("error")
// Error Handling
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
BTC.Show("GO.HANDMENU.SpeechButton")
BTC.Set("TextMeshPro.HANDMENU.Option1Button", "text", "Restart")
BTC.Show("GO.HANDMENU.Option1Button")
BTC.Run("NamedEventTrigger.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.Option1Button")
BTC.Hide("GO.HANDMENU.SpeechButton")
BTC.Hide("GO.HANDMENU.SpeechOptions")
}
}
}
Tree("40_Puschlav_Story_C_Puschlav") {
Composite(Sequence) {
BTC.FadeIn("FadeScene.XRInteractionHandsSetup.Black")
Composite(Marathon) {
// 1. Foto
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 0)
BTC.Run("AudioSource.AUDIO.0ingamevrintro")
}
// Start Slideshow
BTC.Show("StereoSlideshow.XRInteractionHandsSetup.19099")
Composite(Marathon) {
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 1)
Composite(Sequence) {
BTC.Wait(2)
BTC.Run("AudioSource.AUDIO.19099voice1")
}
}
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.Run("AudioSource.AUDIO.19099voice2")
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 0, 1)
Composite(Marathon) {
Composite(Sequence) {
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 2)
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 3)
}
Composite(Sequence) {
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.29119voice1")
}
}
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.5") // TODO: Update Speech Intent
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3A_Gletschergarten")
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3B_Alpgruem")
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.5")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3B_Alpgruem")
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.Run("AudioSource.AUDIO.29119voice2")
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3A_Gletschergarten")
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3B_Alpgruem")
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.5")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- Selector 2: Intent nicht erkannt
Composite(Sequence) {
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3B_Alpgruem")
}
}
}
// -- Race 2: User sagt nichts
Composite(Sequence) {
BTC.Wait(5)
BTC.CompareUserSpeechInputStarted(false)
BTC.AbortSpeechEventListener()
BTC.StopSpeechIntentRecognition()
BTC.ClearPossbileSpeechIntents()
RunTree("40_Puschlav_Story_C_Puschlav_3B_Alpgruem")
}
}
}
}
// Ende
// ToDo: Jump Point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
Tree("40_Puschlav_Story_C_Puschlav_3A_Gletschergarten") {
Composite(Sequence) {
BTC.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 1, 2)
// Bild 3a
Composite(Marathon) {
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 4)
Composite(Sequence) {
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.3a8927voice1")
}
}
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.Run("AudioSource.AUDIO.3a8927voice2")
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 2, 4)
// Bild 4a
Composite(Marathon) {
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 6)
Composite(Sequence) {
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.4a8975voice1")
}
}
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.Run("AudioSource.AUDIO.4a8975voice2")
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 4, 5)
// Bild 5a
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.5a9003voice1")
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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
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.Run("AudioSource.AUDIO.5a9003voice2")
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
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()
}
}
}
}
}
}
Tree("40_Puschlav_Story_C_Puschlav_3B_Alpgruem") {
Composite(Sequence) {
BTC.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 1, 3)
// Bild 3b
Composite(Marathon) {
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 5)
Composite(Sequence) {
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.3b8595voice1")
}
}
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.Run("AudioSource.AUDIO.3b8595voice2")
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 3, 4)
// Bild 4b
Composite(Marathon) {
BTC.LoadImage("StereoSlideshow.XRInteractionHandsSetup.19099", 7)
Composite(Sequence) {
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.4b8623voice1")
}
}
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.Run("AudioSource.AUDIO.4b8623voice2")
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("Story_B_Grotto.Intro.3")
BTC.ClearPossbileSpeechIntents()
}
Composite(Sequence) {
BTC.CompareIntentID("Story_B_Grotto.Intro.4")
BTC.ClearPossbileSpeechIntents()
// TODO: Jump point definieren
BTC.FadeOut("FadeScene.XRInteractionHandsSetup.Black")
BTC.Run("LoadScene.NEXT.10SBB")
}
}
}
// -- 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.BlendImage("StereoSlideshow.XRInteractionHandsSetup.19099", 4, 5)
// Bild 5b
BTC.Wait(4)
BTC.Run("AudioSource.AUDIO.5b8511voice1")
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.3") // TODO: Update Speech Intent
BTC.AddPossbileSpeechIntent("Story_B_Grotto.Intro.4") // TODO: Update Speech Intent
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
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.Run("AudioSource.AUDIO.5b8511voice2")
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
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()
}
}
}
}
}
}

View File

@ -362,6 +362,30 @@ public class BTC : MonoBehaviour {
Task.SetSucceeded();
}
}
[Task]
public void LoadImage(string objectName, int index)
{
List<ComponentHandler> handlers = GetHandlers(objectName);
handlers.ForEach(handler => handler.LoadImage(Task.getState, index));
if (handlers.Count == 0)
{
Debug.LogWarning($"BTC.LoadImage: no components under the name '{objectName}'");
Task.SetSucceeded();
}
}
[Task]
public void BlendImage(string objectName, int srcIndex, int dstIndex)
{
List<ComponentHandler> handlers = GetHandlers(objectName);
handlers.ForEach(handler => handler.BlendImage(Task.getState, srcIndex, dstIndex));
if (handlers.Count == 0)
{
Debug.LogWarning($"BTC.StopSound: no components under the name '{objectName}'");
Task.SetSucceeded();
}
}
#endregion
#region video & sound tasks

View File

@ -261,6 +261,22 @@ public class ComponentHandler : MonoBehaviour {
}
}
public virtual void LoadImage(MyBT.NodeState nodeState, int index)
{
if (Task.isDebugging)
{
Debug.LogWarning($"ComponentHandler.StopSound: not implemented for {this.GetType()}");
}
}
public virtual void BlendImage(MyBT.NodeState nodeState, int srcIndex, int dstIndex)
{
if (Task.isDebugging)
{
Debug.LogWarning($"ComponentHandler.StopSound: not implemented for {this.GetType()}");
}
}
protected float sourceAlpha;
protected float targetAlpha;
protected float timeSum;

View File

@ -54,7 +54,9 @@ public class NamedStereoscopicSlideshow : ComponentHandler {
case NodeState.FirstRun:
photoTransition.Reset();
_timeLeft = totalTime;
StartCoroutine(photoTransition.SetUp());
string path = photoTransition.imgPathList[0];
photoTransition.ImageLoader(path);
photoTransition.SetUp();
break;
case NodeState.Running:
_timeLeft -= Time.deltaTime;
@ -75,4 +77,35 @@ public class NamedStereoscopicSlideshow : ComponentHandler {
break;
}
}
public override void BlendImage(NodeState nodeState, int srcIndex, int dstIndex)
{
if (nodeState == NodeState.FirstRun)
{
StartCoroutine(photoTransition.BlendImage(srcIndex, dstIndex));
Task.SetSucceeded();
}
}
public override void LoadImage(NodeState nodeState, int index)
{
// LoadImage(0): 1. bild laden im hintergrund
// Show: Setup srctxt (1. bild einblenden) + im hintergrund loadImage(1)
// (Sprachinput): blendimage(2)
if (nodeState == NodeState.FirstRun)
{
string path = photoTransition.imgPathList[index];
StartCoroutine(photoTransition.ImageLoader(path));
Task.SetSucceeded();
}
}
public override void Show(NodeState nodeState)
{
if (nodeState == NodeState.FirstRun)
{
photoTransition.SetUp();
Task.SetSucceeded();
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -37,6 +37,17 @@ public class PhotoTransition : MonoBehaviour
yield return new WaitForSeconds(2);
}
public IEnumerator BlendImage(int srcIndex, int dstIndex)
{
_panorama180View.SetSrcTexture(_imgList[srcIndex]);
_panorama180View.SetDestTexture(_imgList[dstIndex]);
_panorama180View.SetTransitionInterval(2.0f);
_panorama180View.SetStateTransition(Panorama180View.Panorama180View.StateTransitionType.Blend);
yield return new WaitForSeconds(2);
}
public IEnumerator LoadNextImage()
{
if (_state < imgPathList.Count - 1)
@ -71,14 +82,8 @@ public class PhotoTransition : MonoBehaviour
_state = 0;
}
public IEnumerator SetUp()
public void SetUp()
{
// Load first two images
for (int i = 0; i < 2; i++)
{
yield return StartCoroutine(ImageLoader(imgPathList[i]));
}
_panorama180View = this.GetComponent<Panorama180View.Panorama180View>();
_panorama180View.SetSrcTexture(_imgList[0]);
@ -87,7 +92,7 @@ public class PhotoTransition : MonoBehaviour
_panorama180View.SetStateTransition(Panorama180View.Panorama180View.StateTransitionType.FadeIn);
}
IEnumerator ImageLoader(string path)
public IEnumerator ImageLoader(string path)
{
string imgPath = Path.Combine(Application.persistentDataPath, path);
imgPath = "file://" + imgPath;