You are not logged in.

1

Monday, January 24th 2022, 9:39am

little planet intro only for certain scenes in tour

Hello everyone, I hope someone can direct me onto the right path here.

I am having a tour with multiple 360 Panos as well as flat images and deep linking enabled for easy sharing of scenes.
In the skin settings, I enabled the littleplanetintro option (working as intended).

I am searching for a solution to disable the littleplanetintro on certain scenes, so when someone is entering the tour on for example a flat image the intro does not play (as that doesn't work too well for flat images).

Preferably, I would solve this inside each scene rather than over an url parameter.

Thanks in advance for your ideas.

2

Monday, January 24th 2022, 10:04am

Hi,

there are multiple ways for doing such, here a simple one:

Just define a 'auto-running' action within the particular scene with some code for a little-planet-intro:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<scene ...>

    ...

    <action autorun="onstart">
        set(view, hlookat=calc(xml.view.hlookat+180), vlookat=90.0, fisheye=1.0, fov=150.0);
        wait(BLEND);
        delayedcall(0.25,
            tween(view.hlookat, get(xml.view.hlookat), 3.0, easeOutQuad);
            tween(view.vlookat, get(xml.view.vlookat), 3.0, easeOutQuad);
            tween(view.fov, get(xml.view.fov), 3.0, easeOutQuad);
            tween(view.fisheye, 0.0, 3.0, easeOutQuad);
        );
    </action>
    
</scene>

...


Best regards,
Klaus

3

Monday, January 24th 2022, 10:24am

Thanks a lot Klaus

This looks very promising!
Do you by any chance also have a solution ready to make sure this action only runs once when entering the tour, rather than every time entering the scene?

Thanks a lot

4

Monday, January 24th 2022, 10:50am

Once more that are multiple solutions, e.g. by using a custom variable for state-checking:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
<action autorun="onstart">
    if(intro1 != 'done',
        set(intro1, 'done');
        set(view, hlookat=calc(xml.view.hlookat+180), vlookat=90.0, fisheye=1.0, fov=150.0);
        delayedcall(0.5,
            tween(view.hlookat, get(xml.view.hlookat), 3.0, easeOutQuad);
            tween(view.vlookat, get(xml.view.vlookat), 3.0, easeOutQuad);
            tween(view.fov, get(xml.view.fov), 3.0, easeOutQuad);
            tween(view.fisheye, 0.0, 3.0, easeOutQuad);
        );
    );
</action>


Or here another solution - just give the <action> in each scene an individual name:

Source code

1
<action name="intro1" autorun="onstart">

An 'autorun=onstart' action will be only executed once and when it has a given name, that state is tracked automatically. Without given name, an automatic name will be used and this name will be different each time, so also the action gets executed each time.

5

Monday, January 24th 2022, 11:29am

Perfect, thanks a lot for the help and also explanations.

With this I, will be able to make it work *thumbsup*


SOLVED