Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: krpano.com Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

Thomas220

Anfänger

  • »Thomas220« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Callenberg

Beruf: Disponent

  • Nachricht senden

1

Sonntag, 8. Mai 2011, 08:34

Autotour in Autotour

Hallo zusammen, das Ausführen einer Autotour, so wie das Klaus von krpano beschrieb, funktioniert soweit ganz gut. Nun möchte ich innerhalb der aufgerufenen Panoramas auch so eine Art Autotour laufen lassen. Der Code der Autotour, die die einzelnen Panoramas lädt lautet so:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<krpano onstart="setuptour();"> 
<action name="setuptour"> 
set(step,1); 
set(idletime,4); 
set(events.onidle, autotour() ); 
</action> 

<action name="autotour"> 
oninterrupt(break); 
if (step == 1, wait(1);inc(step);); 
if (step == 2, loadpano(Augustusburg.xml);inc(step);); 
if (step == 3, wait(60); inc(step);); 
if (step == 4, wait(blend); inc(step);); 
if (step == 5, loadpano(Johanneskirchplatz_HDR_Auto.xml,null,MERGE,BLEND(2),action(ausblenden));inc(step);); 
if (step == 6, wait(30);inc(step);); 
if (step == 7, tourdone(autotour1.xml);set(step,1);); 
</action> 
...




Im aufgerufenen Panorama 'Augustusburg.xml' steht nun das hier:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<krpano version="1.0.8" > 
<include url="skin/defaultskin.xml" /> 
<action name="setuptour"> 
set(step,1); 
set(idletime,4); 
set(events.onidle, autotour1() ); 
</action> 

<action name="autotour1"> 
oninterrupt(break); 
if (step == 1, wait(5);inc(step);); 
if (step == 2, tween(view.hlookat, 220,4);inc(step);); 
if (step == 3, wait(1); inc(step);); 
if (step == 4, wait(blend); inc(step);); 
if (step == 5, tween(view.vlookat,-5,2);inc(step);); 
if (step == 6, wait(2);inc(step);); 
if (step == 7, tween(view.fov, 15,6);inc(step);); 
if (step == 8, wait(180); set(step,1);); 
</action> 
...




Rufe ich das Panorama 'Augustusburg.xml' allein auf, so wird gezoomt und geschwenkt. Alles palletti. Wenn ich es aber über die Autotour aufrufe passiert da nichts davon. Ich hatt im Kopf des Panoramas auch schon 'onstart...' stehen. Ändert sich nichts und ich glaube, dass Klaus schrieb, man kann ein 'onstart' nur einmal aufrufen.

Gibt es eine Möglichkeit das so hinzukriegen, wie ich es möchte?

(Bitte nicht an den unmöglichen Wait-Zeiten etc. stören. Die sind nur zum Testen so kurz.)

Vielen Dank für Hilfe.

Thomas

2

Mittwoch, 11. Mai 2011, 10:20

Hi,

das "setuptour" müsste in dem Fall in der jeder XML neu aufgerufen werden,
dort wird jeweils das "onidle" Event für die Automatische Tour gesetzt,

dazu wäre eventuell das "onxmlcomplete" Event geeignet, das wird nach
dem Laden jeder neuen Panorama XML oder neuen Szene aufgerufen,

z.B. in jeder XML diesen Code hinzufügen:

Quellcode

1
<events onxmlcomplete="setuptour();" />


der Aufruf im onstart muss dann aber natürlich weg,

Schöne Grüße,
Klaus

Thomas220

Anfänger

  • »Thomas220« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Callenberg

Beruf: Disponent

  • Nachricht senden

3

Donnerstag, 12. Mai 2011, 20:31

Hallo Klaus, vielen Dank für die Hilfe. Leider geht das nicht so wie gewollt. Ich habe die beiden xml nun so geändert:



Erste:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<krpano > 
<events onxmlcomplete="setuptour();" /> 

<action name="setuptour"> 
set(step,1); 
set(idletime,4); 
set(events.onidle, autotour() ); 
</action> 

<action name="autotour"> 
oninterrupt(break); 
if (step == 1, wait(1);inc(step);); 
if (step == 2, loadpano(Augustusburg.xml);inc(step);); 
if (step == 3, wait(60); inc(step);); 
if (step == 4, wait(blend); inc(step);); 
if (step == 5, loadpano(Johanneskirchplatz_HDR_Auto.xml,null,MERGE,BLEND(2),action(ausblenden));inc(step);); 
if (step == 6, wait(30);inc(step);); 
if (step == 7, tourdone(autotour1.xml);set(step,1);); 
</action> 
...




Und das zweite:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<krpano > 
<events onxmlcomplete="setuptour();" /> 

<action name="setuptour"> 
set(step,1); 
set(idletime,2); 
set(events.onidle, autotour()); 
</action> 


<action name="autotour"> 
oninterrupt(break); 
if (step == 1, wait(1);inc(step);); 
if (step == 2, tween(view.hlookat, 220,4);inc(step);); 
if (step == 3, wait(1); inc(step);); 
if (step == 4, wait(blend); inc(step);); 
if (step == 5, tween(view.vlookat,-5,2);inc(step);); 
if (step == 6, wait(2);inc(step);); 
if (step == 7, tween(view.fov, 15,6);inc(step);); 
if (step == 8, wait(180); set(step,1);); 
</action> 
...




Im ersten xml funktioniert es. Nach einigen Sekunden wird das Pano 'Augustusburg' aufgerufen. Aber da passiert gar nichts. Es steht einfach 'nur so rum'. Nach einigen Sekunden wird das Panorama 'Johanneskirchplatz' gstartet. Ende.



Was mache ich blos falsch?

Viele Grüße.

Thomas

4

Donnerstag, 12. Mai 2011, 21:50

Hi,

okay, stimmt, bei genauerer Überlegung kann das ganze ja eigentlich so nicht funkionieren,

die Aufrufe nach dem loadpano(), also die Aufrufe in der ersten "autotour" laufen natürlich weiter,
d.h. zwei verschachtelte "autotouren" sind in der Form nicht möglich...

Schöne Grüße,
Klaus

Thomas220

Anfänger

  • »Thomas220« ist der Autor dieses Themas

Beiträge: 29

Wohnort: Callenberg

Beruf: Disponent

  • Nachricht senden

5

Samstag, 14. Mai 2011, 22:18

Heureka (na ja, fast)

Hallo Klaus, vielen Dank für die ehrliche Antwort. KRPANO ist halt keine eierlegende Wollmilchsau.

Habe es jetzt so gelöst. Im ersten Pano werden alle Parameter für die folgenden gesetzt. Zusätzlich habe ich noch für jedes Panorama eine eigene 'defaultskin.xml' geschrieben, in der man mit ein paar Plugins noch etwas Einfluss auf die jeweiligen Panoramas nehmen kann.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<krpano > 
<events onxmlcomplete="setuptour();" /> 

<action name="setuptour"> 
set(step,1); 
set(idletime,4); 
set(events.onidle, autotour() ); 
</action> 

<action name="autotour"> 
oninterrupt(break); 
if (step == 1, wait(1);inc(step);); 
if (step == 2, loadpano(Augustusburg.xml);inc(step);); 
if (step == 3, wait(10); inc(step);); 
if (step == 4, tween(view.hlookat, 215,8);inc(step);); 
if (step == 5, wait(1); inc(step);); 
if (step == 6, tween(view.vlookat,-5,2);inc(step);); 
if (step == 7, wait(2);inc(step);); 
if (step == 8, tween(view.fov, 15,6);inc(step);); 
if (step == 9, wait(60); inc(step);); 
if (step == 10, wait(blend); inc(step);); 
if (step == 11, loadpano(wolkenstein.xml);inc(step);); 
if (step == 12, wait(60);set(step,1);); 
</action> 

</krpano>




Und hier z. Bsp. ein Teil der 'defaultskin_augustus.xml'

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<krpano version="1.0.8" logkey="false" > 


<!-- default quality settings --> 
<display flash10="on" movequality="HIGH" stillquality="HIGH" movequality10="HIGH" stillquality10="HIGH" /> 
<!-- den view festlegen --> 
<view hlookat="0" vlookat="0" maxpixelzoom="5.0" fovmax="130" /> 

<!-- events: set the custom cursor on start and fullscreen events for button changes --> 
<events onxmlcomplete="setuppano();" 
onenterfullscreen="set(plugin[openfs].visible,false); 
set(plugin[closefs].visible,true); 
if(isandroid, set(plugin[android_openfs].visible,false); set(plugin[android_closefs].visible,true); ); 
" 
onexitfullscreen ="set(plugin[openfs].visible,true); 
set(plugin[closefs].visible,false); 
if(isandroid, set(plugin[android_openfs].visible,true); set(plugin[android_closefs].visible,false); ); 
" 
/> 
<!-- autorotate am 28.04.2011 eingefügt--> 
<autorotate enabled="true" 
waittime="2.0" 
accel="0.5" 
speed="5" 
horizon="0" 
tofov="100" 
/> 

<plugin name="logo_alt" 
url="../Schriftzug_Augustusburg_32x6cm.png" 
align="centerbottom" 
x="10" 
y="10" 
/> 
...




In der 'Autorotate' kann man dann z. Bsp. das Panorama mal links mal rechts, mal schnell mal langsam drehen lassen.

Diese Autotour stellt sicher nicht das non-plus-ultra der Programmierung dar. Es ist auch lediglich als 'Rahmenprogramm' für eine Fotoausstellung gedacht, um etwas Bewegung in die Sache zu bringen.



Viele Grüße.

Thomas

JPC

Anfänger

Beiträge: 40

Wohnort: Paris

Beruf: Photographies and media

  • Nachricht senden

6

Dienstag, 19. Juli 2011, 00:09

hi, i have a problem with an autotour, after one tour aproximatively the "oninterrupt" doesn't break anymore.

Indiferently with an "<events onxmlcomplete="setuptour();" /> or an "onstart" <krpano version="1.0.8.12"

I dont understand why.

you can have a look to the project. this one use some "lookto", but the problem is similar with some tween.
http://www.camus.pro/guerlainpdlb/Guerlainpdlb.html

klaus wrotte that the "oninterrupt changed with the 1.0.8 of KR pano, maybe is it the explaination.

Thank you for your help

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<krpano version="1.0.8.12" logkey="false" onstart="setuptour()">
        <!--autotour-->
		<action name="setuptour">
  set(step,1);
  set(idletime,3);
  set(events.onidle, autotour() );
</action>

	
	
<action name="autotour">
oninterrupt(breakall());
if(step == 1, wait(2); inc(step); );
 if(step == 2, lookto(-12,3,20,smooth(5,-5,5)); wait(2);inc(step); );
  if(step == 3, loadpano(Guerlainpdlb0.xml,null,KEEPBASSE,BLEND(1)); lookat(20,0,70); wait(3); inc(step); );
  if(step == 4, lookto(-35,0,55,smooth(5,-5,5)); wait(2);inc(step); );
  if(step == 5,	loadpano(Guerlainpdlb1.xml,null,KEEPBASSE,BLEND(1));lookat(10,0,30); wait(3); inc(step); );
  if(step == 6, lookto(0,0,80,smooth(5,-5,5)); wait(2);inc(step); );
  if(step == 7, lookto(-15,3,20,smooth(5,-5,5)); wait(2);inc(step); );
  if(step == 8, loadpano(Guerlainpdlb2.xml,null,KEEPBASSE,BLEND(1)); lookat(-2,0,80);  wait(3); inc(step); );
  if(step == 9, lookto(-3,15,10,smooth(10,-10,5)); wait(1); inc(step); );
if(step == 10, loadpano(Guerlainpdlb9.xml,null,KEEPBASSE,BLEND(1)); lookat(147,0,90); wait(3); inc(step); );
 if(step == 11, lookto(320,15,25,smooth(10,-10,5)); wait(1); inc(step); );
if(step == 12, loadpano(Guerlainpdlb4.xml,null,KEEPBASSE,BLEND(1)); lookat(-2,12,48); wait(3); inc(step); );
if(step == 13, lookto(-4,0,100,smooth(5,-5,5)); wait(3); inc(step); );
if(step == 14, lookto(20,0,100,smooth(5,-5,5)); wait(3); inc(step); );
if(step == 15,  loadpano(Guerlainpdlb5.xml,null,KEEPBASSE,BLEND(1)); lookat(0,-2,90); wait(3); inc(step); );
if(step == 16, lookto(-35,0,50,smooth(5,-5,5)); wait(3); inc(step); );
if(step == 17, loadpano(Guerlainpdlb8.xml,null,KEEPBASSE,BLEND(1)); lookat(-60,5,80); wait(2); inc(step); );
if(step == 18, lookto(60,-5,90,smooth(5,-5,5)); wait(2);inc(step); );
if(step == 19, lookto(150,10,40,smooth(5,-5,5)); wait(2);inc(step); );

if(step == 20, loadpano(Guerlainpdlb10.xml,null,KEEPBASSE,BLEND(1)); lookat(130,10,60); wait(2); inc(step); );
if(step == 21, lookto(220,0,70,smooth(5,-5,5)); wait(2);inc(step); );
if(step == 22, loadpano(Guerlainpdlb7.xml,null,KEEPBASSE,BLEND(1)); lookat(10,5,20); wait(2); inc(step); );
if(step == 23, lookto(3,-3,80,smooth(5,-5,5)); wait(2);inc(step); );
if(step == 24, loadpano(Guerlainpdlb3.xml,null,KEEPBASSE,BLEND(1)); lookat(10,0,50); wait(3); setuptour(); );

</action>



An other question do somebody know how to get a "lookat" with a smooth effect like a blend but in the same panorama ?

JPC

Anfänger

Beiträge: 40

Wohnort: Paris

Beruf: Photographies and media

  • Nachricht senden

7

Dienstag, 19. Juli 2011, 13:13

I have found the solution i duplicate the setup and the autotour with the oninterrupt in each panorama with the corresponding steps only. and it works perfectly.

If somebody know how to have a lookat with smooth effect, thanks to tell me.

Jean-Philippe