虚幻引擎实操(3)《原神,启动!》(传送锚点)

 介绍 

这个文章会带大家用虚幻引擎粗略的实现原()神中的一些功能,当然啦不是做一个完整的原神出来,主要面向对象为没有编程基础或者刚刚入门的同学

前言

好像对于大部分0基础的同学来说虚幻引擎的学习比较抽象(做游戏本身就挺抽象的,没有狠活挣不出来qwq)。比如虚幻的界面,数百个接口,而且有些不当的操作会导致界面发生变动,对于萌新来说都不知道去哪找功能了,所以这篇文章在于带领没有基础的同学从实操的角度一点一点理解引擎,毕竟能自己做一个游戏还是比较有成就感的,也有学习下去的动力。

传送锚点的搭建

上篇文章已经讲了该如何在引擎内拖拉场景,但仅仅只是放奇怪的方块并不能满足我们对这个丰富多彩の二次元世界的搭建,接下来我们一起看看怎么在场景中放置其它各式各样的物块。

接下来我们给这些物块先起一个比较计算机术语的名字:网格体。

虚幻引擎中一切有实体的,能看得见的有碰撞的物体都是网格体(先这么理解)

其中像石头啊,墙啊这种不会变化(没有动画)的叫做静态网格体。

而像人物,门,宝箱这种会变化(可以播放动画)的,叫做骨骼网格体。

那该怎么使用这些网格体呢?

在引擎界面最底层有个这个选项叫内容侧滑菜单,拉开后,就可以看到项目文件了。我们制作游戏所有的素材,都是存放在这里的。(下图画红圈的)

然后点击过滤器,就是那个跟wifi信号很像的符号

在过滤器里限制住静态网格体

这样子,就把所有的静态网格体呈现出来了,只要在菜单里点住它,把它拖到场景里来,就可以放置了,现在看看怎么搭这个传送锚点比较合适

长这样()👆

在这里找个比较合适的emmmm,就这些吧

绷()

先凑合吧~

传送锚点的应用

ok呀,现在已经有传送锚点的模型了(一坨),那该怎么实现传送锚点的逻辑呢。

在原神里,当激活传送锚点后,冒险家可以向这个地方传送。

那么现在引入一个计算机图形学中的概念:世界坐标系

除此之外还有诸多复杂的坐标系,感兴趣的同学可以看以下链接https://zhuanlan.zhihu.com/p/281967460,这里就简单介绍下世界坐标系,其它的目前也用不着。

对于一张地图来说,如何表达各个物体之间的矢量数据(矢量坐标,速度,加速度等)至为关键,那么需要一个绝对于(不会因任何物体的改变而随之变化)所有物体的一个坐标系来统一它们的数据。这个时候,世界坐标系的概念就逐渐诞生了。

这张图就是一个比较简单的世界坐标系,在这里有一个世界原点,它就代表着这个地图(0,0,0)的坐标,之后其他所有物体的坐标都是根据这个世界原点建立的,只要世界原点不改变,其他物体的坐标都是绝对于世界坐标系的。而图上这个小人和这个房子,它们之间的距离什么的也都可以用坐标计算出来。

那么在传送锚点的作用是什么呢,当然就是更改当前玩家的世界坐标位置了,这样就可以实现传送了,现在来看在虚幻引擎当中该如何实现。

打开侧滑菜单,把刚才打开的过滤器关闭,就是把这个√再按一下

然后在左侧的文件夹里依次寻找all->内容->ThirdPerson->Blueprints。然后就可以看见一个小人和一个显示器的图标了

它们其实就是一个蓝图类,这里不去解释蓝图类是什么意思,以后会慢慢解释,现在只要知道蓝图类是实现一些功能逻辑的东西就行。

那么现在点开这个小人(BP_ThirdPersonCharacter),我们就可以进入到它内部的结构里了

比较复杂,这里先慢慢解释下这些面板,记不住也没关系,以后用多了就记住了

这里,是这个蓝图类中存储的一些数据,就比如c++编程时定义的变量,还有一些功能性的组件。目前用不上。

这里,是拿蓝图编写逻辑的面板,是一种替代c++编程的方案,写起来有点像连连看()

这里是这个蓝图类的一些细节,包括模型呀动画呀之类的,目前用不上。

这里是编辑器常用的一些小技巧,目前用不上。

这个就是打印一些报错信息的,希望永远用不上()。

现在放心了吧,大部分东西都用不上,现在我们只看我们用得上的蓝图面板👇

在面板中,按住鼠标右键就可以拖动面板移动了,滑动滚轮可以控制缩放。

首先,观察上边的这些规律,这些线条都是从一个红色的模块出发,连接了某些其它的模块

这个红色的模块我们叫做事件(event),它是这些线条的起点,这个线条可以理解为一个线程,它会按线程上各个模块的顺序依次应用这些模块。

现在,让我们自己写一下传送锚点的逻辑。

在面板中空白的区域单点鼠标右键

会出现一个这么个东西,它的作用是让你选择模块。

在上边的输入框中输入keyboard f(键盘F)

然后点击这个蓝色背景的F就可以引入一个模块了

长这样,发红色,一看就是一个事件。我们先不管它,继续创建另外的一个模块

搜索set actor location(设置对象位置)

点击第一个选项,创建了个这么个东西,然后按住那个红色的当中叫pressed的引脚,把它拉到这个蓝色的最左边的引脚后松开鼠标,这样就能把两个模块连接起来了,表示可以从这个事件F触发Set Actor Location了。

然后这个Set Actor Location下边有一个接口叫New Location,它表示玩家传送后的位置。

可以拿鼠标点击后输入自己想输入的数值,这里我们就把刚才搭建的传送锚点附近的坐标输进去(注意不要直接输入传送锚点的坐标,这样的话会把玩家卡入到传送锚点内部)

还记得怎么查坐标吧,点击网格体,右边的细节会弹出来坐标

我现在已经输入好了,这个事件F的意思其实就是当f键按下后会触发什么什么,当这个蓝图都编写好后,记得点击左上角的编译,这是告诉虚幻引擎你已经可以开始理解我的代码了(傲娇)

赶紧进入游戏试一下

好啦,文章到这里就结束了,这篇内容有点多,记得好好消化哈,下节课会讲切换角色。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值