LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 【幕后花絮:Salmonomicon】Salmonomicon创作者的提示、技巧和秘密

【幕后花絮:Salmonomicon】Salmonomicon创作者的提示、技巧和秘密

2020-06-25 Decentraland 来源:区块链网络



欢迎来到我们系列中有关创作者的作品、技巧和秘密的第二篇文章,我们积极制作使Decentraland栩栩如生的游戏和体验。


在这篇文章中,我们来看看游戏Salmonomicon。

尽管该游戏在Decentraland发行活动中引起了人们的广泛关注,但实际上是在去年9月创建的(在Decentraland的时间就像一年前一样)。它是由Decentraland开发人员团队(Pravus、Mauricio和Nico)作为内部黑客马拉松的一部分而构建的,并利用了一些我们想分享的巧妙技巧。

您可以在我们的公共GitHub存储库中找到该场景的完整代码。随意接受想法并将其用于您自己的项目:https://github.com/pravusjif/salmonomicon

如果您不熟悉该场景,则也可以跳入世界并进行游戏:play.decentraland.org/?position=-56,1

或观看此演示视频:https://www.youtube.com/watch?v=H78Mv_u-wJk

但是,关于我们如何构建Salmonomicon的细节!

射线广播


光线投射是游戏开发中的常用工具。它基本上包括在空间(“射线”)中追踪线并检查该线是否与任何其他对象相交。通常用于模拟AI的视野或计算子弹的轨迹。

在开发Salmonomicon时,仅在Decentraland SDK中添加了射线广播,因此我们围绕着开发利用此功能的游戏的想法开始了集思广益。

在游戏中,怪物经历两个不同的阶段。在每个阶段中,它以不同的方式使用射线广播。

在这些阶段的第一个阶段,怪物出没了你,并一直朝着玩家缓慢移动。如果玩家注视着怪物,那么它移动的速度甚至更快。击败怪物的方法是始终远离它-这与我们的本能背道而驰,使我们感到不安,不知道我们处于何种危险之中。这是制作恐怖游戏体验的完美要素!

为了使这个机制参与我们的游戏,我们做了以下工作:

?在每一帧中,我们在两点之间绘制了一条光线:玩家的位置和怪物的位置,然后检查该线是否击中了其他任何物体

?如果玩家和怪物之间有东西,例如树或墙,我们认为玩家不在怪物的视野内并且安全
?我们还计算了所追踪的光线与玩家观看方向之间的角度。当玩家面对更接近怪物的方向时,角度变得更小。因此,发生这种情况时,怪物开始移动得更快。

在游戏的第二阶段,一旦收集了所有页面,怪物就旋转到位,从其眼睛射出激光(当然!)。在这里,我们以不同的方式使用光线投射。我们想检测玩家是否被激光击中,但是不幸的是,我们没有一个可以被射线击中的“玩家”物体(目前还没有……有趣的项目需要继续研究)。因此,解决此问题的方法是跟踪两条不同的光线:

?玩家的位置和怪物的位置之间有一束光线。在每一帧上,我们检查它们之间是否有任何物体,如果有,则将播放器屏蔽激光。
?第二缕朝着怪物看的方向走去。如果在怪物旋转时射线碰到任何障碍物,那么我们会缩短发光的红色光束以使其匹配,以使激光看起来不会刺穿树木。

我们最终比较了这两条射线的方向。它们很难完全相等,因为一帧必须完全正确地着陆才能发生,因此我们测量了两条射线之间的角度并考虑了误差范围。如果它们之间的角度足够小,则可以确定怪物正面对玩家。一旦我们确认怪物正面对玩家,并且中间没有障碍物,那么可以肯定地说玩家被激光击中了。

是否想在自己的项目中使用光线投射?在我们的文档中了解有关如何使用它的更多信息:https://docs.decentraland.org/development-guide/raycasting/

UI手


在玩游戏时,您会带着Mika的断头随身携带;米卡(Mika)是布宜诺斯艾利斯Decentraland总部的厨师。他很友善,不知道我们将这些图片用于什么奇怪的事情,因此可以为他拍照。

我们选择在UI上将他的头部显示为2D图像,而不是3D对象。 3D对象与播放器一起移动看起来不那么顺畅,因为对象的位置调整不完全与每一帧保持同步,从而导致分散注意力。 2D还使我们能够纪念《毁灭战士》等经典游戏的遗产。

当您寻找书中丢失的页面时,Mika的眼睛会引导您朝着最近的页面方向前进。为此,我们使用了Mika朝不同方向看的几张不同图片。我们没有将所有这些图片都使用单独的图像,而是将它们全部放置在一张Sprite表中。我们一次只显示图像的一部分,而只是从一个图像映射切换到另一个。事实证明,这比拥有单独的图像要有效得多,因为我们不必在播放过程中将图像加载和卸载到内存中。


一件奇怪而出乎意料的事情:在制作游戏时,迪森特拉兰没有第三人称摄影机。当我们稍后使用第三人称摄影机测试游戏时,看起来就像是在追逐自己。



在我们的文档中了解有关如何在场景中使用UI的更多信息:https://docs.decentraland.org/development-guide/onscreen-ui/

天空盒

我们团队中的画家Mauricio尝试了一个非常不错的技巧,为我们的游戏增添了怪异的另一面。

天空环绕着场景,增添了夜空和幽灵般的森林背景。这样做的创新之处在于,模型的法线有意只面向内,这意味着,如果从外部观看场景,则只会看到背景,而没有任何东西挡住场景内部的视野。进入屋内后,您将完全沉浸在森林中。



这个Skybox网格还包括仅具有法线朝内的对撞机,因此,您可以轻松地走进去,但是那样就不能离开……直到击败Salmonomicon的诅咒。赢得比赛后,天空盒将被移除,您可以自由走开。移开天空盒也使其恢复了白天,这对场景的外观和完美地伴随着胜利的音乐产生了戏剧性的影响。

在文档中阅读有关Decentraland的3D建模的更多信息:https://docs.decentraland.org/3d-modeling/3d-models/

请与Decentraland的更多现场明星保持联系,以留意未来的帖子,其中包括幕后观看诸如Block Runner,Dragon Race等项目。您也可以查看我们在The Infinity Engine的文章。


选择您常用的频道加入与我们联系,关注Decentraland(MANA)的最新动态

官方中文社区:

官网

电报

微博

视频

QQ群:817651399

官方全球社区:

Official Website

Telegram

Medium

Twitter

Discord

Global Developers

Get Started with SDK

官方微信群

官方公众号

—-

编译者/作者:Decentraland

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...