移花接木(16)- 小行星开场

更新于 2022.3.7 krpano 1.20.11

krpano 1.19 pr3之后版本的默认皮肤有小行星功能,就是在skin_settings中可以设置是否启用小行星开场,如下:

开场场景实现小行星

下面以默认皮肤tour.xml为例,

点击代码窗口最右侧按钮,在新窗口打开后复制代码

点击代码窗口最右侧按钮,在新窗口打开后复制代码

false设为true

则项目打开时的第一个场景会有小行星开场的效果。

 

实际上控制小行星开场的动作代码在skin文件夹的vtourskin.xml文件中,用Ctrl+F找到skin_setup_littleplanetintro这个action

下面分1.20.9、1.19 pr14-pr16和pr13之前的代码进行讲解

1.20版本的代码方法

点击代码窗口最右侧按钮,在新窗口打开后复制代码

首先找到delayedcall(0.5, 这里将0.5改为其它数字,这是小行星效果持续的时间。这里默认是0.5秒,你如果希望效果持续时间长点,可以改为3秒,如果要短点,可以改得更小。

另外我们需要处理以下问题:

保证热点hotspot不会在小行星视图中出现,等到小行星结束后再出现。

因此我们找到上面skin_setup_littleplanetintro这段action,整体替换为:

点击代码窗口最右侧按钮,在新窗口打开后复制代码

 

1.19 pr14-pr15的代码方法

点击代码窗口最右侧按钮,在新窗口打开后复制代码

首先找到delayedcall(0.5, 这里将0.5改为其它数字,这是小行星效果持续的时间。这里默认是0.5秒,你如果希望效果持续时间长点,可以改为3秒,如果要短点,可以改得更小。

另外我们需要处理两个细节

第一个细节,只显示小行星而不显示任何皮肤,包括官方模版的皮肤,只待小行星结束以后,恢复正常视图时我们才让皮肤显示。

第二个细节,保证在HTML5以及Flash下热点hotspot都不会在小行星视图中出现。

因此我们找到上面skin_setup_littleplanetintro这段action,替换为:

点击代码窗口最右侧按钮,在新窗口打开后复制代码

1.19 pr13之前的代码方法

点击代码窗口最右侧按钮,在新窗口打开后复制代码

 

首先找到delayedcall(0.5, 这里将0.5改为其它数字,这是小行星效果持续的时间。这里默认是0.5秒,你如果希望效果持续时间长点,可以改为3秒,如果要短点,可以改得更小。

另外我们在krpano 1.19 pr3之后版本 需要处理两个细节

第一个细节,只显示小行星而不显示任何皮肤,包括官方模版的皮肤,只待小行星结束以后,恢复正常视图时我们才让皮肤显示。

第二个细节,保证在HTML5以及Flash下热点hotspot都不会在小行星视图中出现。

因此我们找到上面skin_setup_littleplanetintro这段action,替换为:

点击代码窗口最右侧按钮,在新窗口打开后复制代码

如果你是自定义的皮肤,那么注意参考代码中类似的位置

点击代码窗口最右侧按钮,在新窗口打开后复制代码

复制一行新的,替换一下你自定义的layer的name,例如你有个logo的layer,保证隐藏掉自定义的皮肤。直接放在上面代码的下面开新一行即可。

点击代码窗口最右侧按钮,在新窗口打开后复制代码

 

同理,找到

点击代码窗口最右侧按钮,在新窗口打开后复制代码

复制一行, 新的替换一下layer的name,保证重新显示自定义的皮肤。

点击代码窗口最右侧按钮,在新窗口打开后复制代码

下面的action是控制热点的隐藏和显示的。

点击代码窗口最右侧按钮,在新窗口打开后复制代码

该代码实现避免了VR光标的出现。

 

只在个别场景中实现小行星

分两种情况:

如果第一个打开的场景(可以是任意一个场景)不需要小行星:

设置skin_settings中的

点击代码窗口最右侧按钮,在新窗口打开后复制代码

然后在tour.xml的scene标签外找个位置写:

点击代码窗口最右侧按钮,在新窗口打开后复制代码

index是场景序号,1是第2个场景,4是第五个场景,也就是在第二个和第五个场景执行小行星,如果有更多的场景需要小行星,则继续OR,例如第三个场景也需要小行星。

点击代码窗口最右侧按钮,在新窗口打开后复制代码

 

如果第一个打开的场景(可以是任意一个场景)需要小行星:

设置skin_settings中设置为true!

点击代码窗口最右侧按钮,在新窗口打开后复制代码

然后在tour.xml的scene标签外找个位置写:

点击代码窗口最右侧按钮,在新窗口打开后复制代码

index是场景序号,0是第2个场景,4是第五个场景,也就是在第二个和第五个场景执行小行星,如果有更多的场景需要小行星,则继续OR,方法同上:

 

1.19-1.20自定义皮肤的小行星开场

简单方法

在你需要进行小行星开场的scene里面放入下面代码

每次进入场景都有小行星:

只是第一次进入场景时才有小行星

注意,“autorun=onstart”操作将只执行一次,因为这里action有一个给定的name时,该状态将被自动跟踪。如果没有给定的name,将使用一个自动的name,并且这个name每次都会不同,因此每次都会执行该操作。

 

复杂方法

默认皮肤请勿使用下面代码,必须是自定义皮肤时使用,在scene外加入以下代码

小行星细节修改

对自定义皮肤和默认皮肤都是一样的,因为使用的都是同一个方法。

小行星结束后的视角

在tour.xml的第一个scene的view元素中修改,小行星结束后都会恢复到该view标签设置的视角

设置小行星的视角大小

找到action下面一行

修改150。

设置小行星的旋转方向

找到下面一行

修改减号为加号,可改变旋转方向。

自定义小行星结束的时机

只有执行lp_complete()才会结束小行星。例如通过鼠标点击某个按钮。
 

1.18及1.17的小行星实现

小行星使用方法

点击代码窗口最右侧按钮,在新窗口打开后复制代码

  1. 将下载的littleplanet.xml放在根目录下,也就是与tour.xml同一目录。
  2. 在自己的第一个scene的代码中增加一个 firsttime=”true”,如上面第一行代码。
  3. 在自己的第一个scene的代码中增加 <include url=”littleplanet.xml” />,如上面第12行代码。

 

源码分析

点击代码窗口最右侧按钮,在新窗口打开后复制代码

小行星文件下载地址

1.17用户可使用下面的小行星文件

链接:http://pan.baidu.com/s/1pWqgI 密码:uyia

1.18用户可使用下面的小行星文件

链接:http://pan.baidu.com/s/1vxrh8 密码:stbf

 

发表评论