经过改建的Genesis Plaza(创世纪广场)以多种不同的方式让玩家赞叹不已,其中之一就是通过开创先河,这在Decentraland中是不可能的。该系列的第二篇文章将重点介绍在Genesis Plaza首次亮相的闪亮新功能,以及如何在自己的场景中使用它们。
可以在此公共仓库中找到Genesis Plaza的整个代码,因此可以随时探索并采纳您想要的任何想法:https://github.com/decentraland-scenes/Genesis-Plaza
瞬移
传送使玩家从一个场景跳到另一个场景。我们在广场的不同部分提供了一些传送装置,以传送到Decentraland中一些最受欢迎的场景。第一次进入Decentraland时,许多人想知道该怎么做。瞬移传送提供了一种方法,可以帮助玩家找到他们喜欢的内容的方式。
现在,您可以将传送端口添加到场景中,无论是与其他场景建立联盟,还是将自己拥有的单独场景连接起来,共同讲述一个完整的故事。您现在可以将玩家发送到地图上的任何地方。
将瞬移添加到场景中只需一行代码!只需添加以下功能,即可指示玩家要传送到的坐标。
___________________________________________
teleportTo(‘-51,1’)
___________________________________________
调用此命令后,玩家将看到一个确认屏幕,其中包含有关他们被提供去哪里旅行的信息,他们可以拒绝它并停留在原处。该确认UI从该场景的元数据中显示有关目标场景的信息。因此,如果要使传送用户界面尽可能吸引人,请确保目标场景的scene.json文件中包含名称,描述和屏幕截图。有关如何执行此操作的更多详细信息,请参阅文档中的此页面:https://docs.decentraland.org/development-guide/scene-metadata/
传送也可以将玩家带到创世纪之城最拥挤的地方-使用/ goto magic到达策展名单中的随机位置。有关更多详细信息,请参阅文档。
外部链接
外部链接使玩家可以前往Decentraland以外的站点。在Genesis Plaza中,我们添加了其中一些功能,以将玩家定向到Builder,Discord,Docs,我们的Blog和Twitter。您也可以将外部链接添加到自己的场景。
添加外部链接就像传送一样容易。它需要一行代码:
___________________________________________
`openExternalURL(‘docs.decentraland.org’)`
___________________________________________
在添加此类功能时,我们始终非常谨慎,以保护我们的玩家免受可能损害他们在Decentraland的体验的伤害。这就是为什么我们在给玩家带走之前向其展示可取消的确认屏幕的原因,以确保他们知道自己将离开以及前往何处。我们还仅允许将外部链接功能用作玩家执行按钮动作的直接结果。这是为了防止垃圾邮件行为,例如每隔几秒钟或每次玩家进入场景时打开链接,这可能会变得很烦人。
在文档中阅读有关外部链接的更多信息。
流音频
如果您走到创世纪广场的西南角,就会遇到“Artichoke”(朝鲜蓟)大楼,我们在其中传输音频。
音频流功能是在新广场开放之前不久推出的一项功能,社区开始对其进行试验-将播客,现场音乐甚至现实世界事件流传输到不同的场景和区域。
流音频所需的代码非常简单,您所需要做的就是:
___________________________________________
const streamSource = new Entity()
engine.addEntity(streamSource)
streamSource.addComponent(
new AudioStream(
\”https://icecast.ravepartyradio.org/ravepartyradio-192.mp3\”
)
)
___________________________________________
您添加AudioStream组件的实体不需要放置,因为在整个场景中,音频流的声音可以均匀地听到。在Genesis Plaza中,我们使用触发区域(使用Utils库)仅在您位于建筑物区域内时才有意播放流,这样就不会干扰您可能要在Plaza中做的其他事情。 。
这样做的代码非常简单,但是获取正确的URL流具有其技巧。该URL必须是https,并且必须具有允许从其他站点访问其内容的CORS策略,因为并非所有流服务都允许这样做。
如果您想托管自己的流服务器,例如将自己的播客或现场音乐流传输到场景中,则可能要使用几种不同的工具,但是我们建议您使用AzuraCast,它相对简单。如果您需要将音频从计算机上运行的不同程序路由到流,我们还建议使用Audio Hijack;例如,如果您想从正在运行的音乐软件中输出声音。
流媒体视频
如果您走到创世纪广场的对角,即东北,您将遇到观众席,我们通常会在该观众席上保持视频流的运行。该视频展示了Decentraland不同地点和游戏的画面。该屏幕还将用于流式传输特殊事件,例如5月30日现场流式传输的SpaceX火箭发射。
在这种封闭的时代,许多著名的事件都被迁移到虚拟世界,这确实有助于在虚拟世界中以更加具体的方式体验它们。已经有好几次活动都使用Decentraland作为场地,我们希望更多的活动能尽快跟随这一趋势!
将视频流添加到场景只需几行简单的代码。首先,创建使用VideoTexture和流URL的材质,然后在平面或立方体等原始形状上使用该材质。
请记住,播放视频会浪费一些资源。我们建议不要持续播放它-仅当播放器足够接近以欣赏它时。正如我们在上一篇文章中讨论的那样,在创世纪广场中,观众席上的视频流仅在玩家走进触发区域时才开始播放。
与音频流一样,用于流式传输视频的源需要使用HTTPS并具有允许的CORS策略。不幸的是,许多最受欢迎的视频服务(例如YouTube)不允许其内容在其他地方播放,或要求它们通过无法在Decentraland内部呈现的特殊专有小部件播放。但是,仍有一些服务对内容共享更加开放。
如果您想托管自己的视频流服务器,我们建议使用Node-Media-Server或Nginx RTMP模块。 Node Media Server的设置稍微简单一些,因为它已经包含了必要的CORS策略。
在配置流时,应保持流的轻量,以便在工作中更流畅。我们建议以下设置:
?MP4格式
?图像尺寸为1280×720像素
?每秒24~30帧
?1000~1500 kbps
本文总结了创世记广场系列的第2部分,请继续关注下一系列的帖子,这些帖子详细介绍了Decentraland的一些标志性景点是如何创建的。
选择您常用的频道加入与我们联系,关注Decentraland(MANA)的最新动态
官方中文社区:
官网
电报
微博
视频
QQ群:817651399
官方全球社区:
Official Website
Telegram
Medium
Discord
Global Developers
Get Started with SDK
官方微信群
官方公众号